【ESPHome】蓝牙体重秤/体脂秤接入思路:云麦好轻mini 2S为例

您所在的位置:网站首页 小米运动客户端体脂称显示公斤 【ESPHome】蓝牙体重秤/体脂秤接入思路:云麦好轻mini 2S为例

【ESPHome】蓝牙体重秤/体脂秤接入思路:云麦好轻mini 2S为例

2023-08-10 11:22| 来源: 网络整理| 查看: 265

本帖最后由 XCray 于 2023-5-10 10:27 编辑

esphome内置了小米两代体重秤的支持,其实我感觉绝大多数蓝牙秤应该都可以很方便地利用esphome接入,这里以手上的这款为例,详细介绍分析和实现的思路。

云麦这家公司好像也属于小米生态链,米家app添加设备时可以搜到这款产品,但添加不了(小米的豆腐渣工程?)。

使用厂家提供的“好轻”app,打开app、站到秤上、读数稳定后app收到数据,无需配对,所以推测也是用蓝牙广播实现的。没试过“小米运动”app,不知道是否兼容。

消息分析过程如下:

1. 仅使用esp32_ble_tracker,称重后发现设备,没有name,按电平推测应该就是: [09:28:23][D][esp32_ble_tracker:620]: Found device AA:BB:CC:XX:YY:ZZ RSSI=-66 [09:28:23][D][esp32_ble_tracker:641]:   Address Type: PUBLIC

2. 增加on_ble_advertise自动化,再次称重: [09:35:43][D][ble_adv:034]: New BLE device [09:35:43][D][ble_adv:035]:   address: AA:BB:CC:XX:YY:ZZ [09:35:43][D][ble_adv:037]:   Advertised service UUIDs: [09:35:43][D][ble_adv:039]:     - 0x1320 [09:35:43][D][ble_adv:045]:   Advertised manufacturer data: [09:35:43][D][ble_adv:047]:     - 0xYYZZ: (length 14)

值得注意的是,广播数据所用的UUID,为MAC地址的后两个字节YYZZ。

3. 打印出这个广播数据,消息内容有变化,部分消息有重复,最多看到过8次:

Advertised manufacturer data:   - 0xYYZZ: XX.CC.BB.AA.02.32.1C.VV.KK.WW.WW.RR.RR.xx (14) 很明显,UUID和数据的前4个字节拼到一起就是完整的MAC地址AABBCCXXYYZZ。

其后的3个字节02.32.1C固定不变,可能是是厂家标识或序列号之类的。 再其后一个字节VV很可能是累计称重次数,每次称重+1。 最后的6个字节为体重和体脂(阻抗)数据,观察到有几种

4. 体重体脂数据猜解: 几次称重(光脚),提取出类似如下数据: 01.04.7E.00.00.A2 01.1A.3A.00.00.F9 02.1B.2F.00.00.E8 03.1B.2F.01.CC.24 00.00.00.00.00.VV

猜测:首字节KK为数据可信度标识,3为最稳定读数、00为称重结束 确认:其后两个字节WW.WW(即1B.2F)为体重,精确到0.01公斤(10克);与屏幕及app显示结果一致。           每次称重最后一条连续5个字节00为称重结束,最后一个字节VV为累计称重次数; 确认:可信度为03的体重之后的两个字节RR.RR(即01.CC)为阻抗值;           参考:esphome的miscale2组件代码显示,阻抗值应



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3