【米尔-瑞芯微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、测试是否安装成功:
  1. >>> import tkinter
  2. >>> import bleak
没有报错,说明安装成功。
【程序编写】
1、首先使用bleak进行搜索,如果搜索到了服务,打印到列表中:
image.png
2、发现服务成功后,点击列表中的服务,他将连接到蓝牙设备上,如果成功测显示成功状态:
image.png
3、订阅心电设备的服务:
  1.             # 订阅特定的 GATT 特征
  2.             target_uuid = "0000fe42-8e22-4541-9d4c-21edae82ed19"
  3.             if target_uuid in [str(char.uuid) for service in services for char in service.characteristics]:
  4.                 await self.client.start_notify(target_uuid, self.notification_handler)
  5.                 self.update_status(f"Subscribed to characteristic {target_uuid}")
  6.             else:
  7.                 self.update_status(f"Characteristic {target_uuid} not found")

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