0%

小米手环实时采集心率数据

项目地址: https://github.com/mengxin239/miband4-heartrate

目前支持平台:Windows/Linux/MacOS

要求平台必须支持蓝牙(应该都支持BLE设备的)

部署

首先安装bleak库

1
pip install bleak

克隆项目

1
git clone https://github.com/mengxin239/miband4-heartrate

然后查看自己手环的蓝牙地址(手环设置里面有的),替换掉BlueToothAddress,然后更改保存到的文件名,运行即可

原理

小米手环开启运动心率广播后会向外发送心率,使用python监听特定蓝牙地址的通信即可

直接将BLE收到来自手环广播的data打印出来后会发现其中有一个变化的字符(即第四个字符) 把ACSII字符转换为十进制即为此时的心率

因为是使用运动心率广播获取心率,所以本程序仅在运动状态下可用,先随便进入一个运动后即可抓取 (不然的话心率会飙到255

最后

仅测试过小米手环4,理论上小米6以下通吃(6以上可能会不识别)

只要进入运动模式时在附近的跑步机等智能设备(前提是心率不是智能设备自己获取的)上可以获取到自己的心率就可以用(大概)

补充

小米8的支持好像是不可能了mebeats项目(不是我的)用的是心率测试接口,8好像直接砍掉了,只能获取历史心率,所以说最多一秒一次 我就是买了小米8的大聪明