【米尔-瑞芯微RK3576核心板及开发板】板载了wifi、低功耗蓝牙模块。本篇将分享如何使用低功耗蓝牙,并获取远程蓝牙发送过了的心率、血氧传感器数据,展示在GUI上面。
【开发环境】
1、Debian 12。
2、tkinter
3、miniconda
4、python3.9
【实现步步骤】
1、新建conda 环境 conda creat -n python5_pro=python3.9
2、激活环境 conda activate python5_por
3、安装bleak库:pip install bleak
4、安装tkinter库:pip install tkinter
5、测试是否安装成功:
>>> import tkinter
  • >>> import bleak
  • 复制代码
    没有报错,说明安装成功。
    【程序编写】
    1、首先使用bleak进行搜索,如果搜索到了服务,打印到列表中:
    image.png
    2、发现服务成功后,点击列表中的服务,他将连接到蓝牙设备上,如果成功测显示成功状态:
    image.png
    3、订阅心电设备的服务:
                # 订阅特定的 GATT 特征
  •             target_uuid = "0000fe42-8e22-4541-9d4c-21edae82ed19"
  •             if target_uuid in [str(char.uuid) for service in services for char in service.characteristics]:
  •                 await self.client.start_notify(target_uuid, self.notification_handler)
  •                 self.update_status(f"Subscribed to characteristic {target_uuid}")
  •             else:
  •                 self.update_status(f"Characteristic {target_uuid} not found")
  • 复制代码

    4、生成回调函数,如果接收到了数据,则进行解析,并显示到GUI界面。
        def notification_handler(self, sender, data):
  •         print(f"Received data from {sender}: {data}")
  •         # 这里可以根据数据格式解析心率和血氧值
  •         # 示例:假设数据是简单的字节流,前一个字节是心率,后一个字节是血氧
  •         if len(data) == 2:
  •             heart_rate = data[0]  # 前一个字节是心率
  •             oxygen_level = data[1]  # 后一个字节是血氧
  •             self.update_heart_rate(heart_rate)
  •             self.update_oxygen_level(oxygen_level)
  •         else:
  •             print(f"Unexpected data length: {len(data)}")
  • 复制代码
    5、效果如下:
    image.png
    【总结】
    米尔-瑞芯微RK3576核心板及开发板,板载了wifi、蓝牙模块,通过python的bleak库,可以快速的建立基于低功耗蓝牙的应用。在医疗领域大有可为。