【发布时间】:2021-02-02 07:46:21
【问题描述】:
我正在使用小米 LYWSD03MMC,我通过 BLE 特性获得了此设备的温度,它显示:21 0a 17 7e 0b,但是我知道这是十六进制值但不幸的是我无法理解什么意思。我只知道17这个数字,就是湿度,是十六进制,当我把它转换成十进制时,它返回23。
【问题讨论】:
标签: bluetooth-lowenergy iot temperature xiaomi
我正在使用小米 LYWSD03MMC,我通过 BLE 特性获得了此设备的温度,它显示:21 0a 17 7e 0b,但是我知道这是十六进制值但不幸的是我无法理解什么意思。我只知道17这个数字,就是湿度,是十六进制,当我把它转换成十进制时,它返回23。
【问题讨论】:
标签: bluetooth-lowenergy iot temperature xiaomi
您正在阅读的特征的 UUID 是什么?
如果格式为0000xxxx-0000-1000-8000-00805F9B34FB,则应记录在https://www.bluetooth.com/
您可以在 16-bit UUID Numbers Document 中找到 Characteristic UUID 到名称的映射: https://www.bluetooth.com/specifications/assigned-numbers/
然后可以使用该名称在GATT Specification Supplement 中查找字段的更详细说明。
【讨论】:
根据来自 github 的 this 脚本,前两个值描述了温度,需要转换为小端。这将导致 0a21 的十六进制值,十进制为 2539。这需要除以 100 才能得到 25.39 度的温度。
如您所说,第三个值是湿度,最后两个值描述电池电压。转换为小端 (0b7e) 和十进制 (2942),这个值需要除以 1000,得到的电压为 2.942
【讨论】: