项目地址: 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的大聪明