微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BLE温度计的返回值是什么意思?

如何解决BLE温度计的返回值是什么意思?

我正在使用小米 LYWSD03MMC,我通过 BLE 特性获得了该设备的温度,它显示21 0a 17 7e 0b,但是我知道这是十六进制值,但不幸的是我无法理解什么意思。我只知道数字17,是湿度的量,是十六进制的,当我把它转换成十进制时,它返回23。

解决方法

您正在阅读的特征的 UUID 是什么?

如果它是 0000xxxx-0000-1000-8000-00805F9B34FB 格式,那么它应该记录在 https://www.bluetooth.com/

您可以在 16-bit UUID Numbers Document 中找到特征 UUID 到名称的映射: https://www.bluetooth.com/specifications/assigned-numbers/

然后可以使用名称在 GATT Specification Supplement 中查找字段的更详细说明。

,

根据 github 的 this 脚本,前两个值描述了温度,需要转换为小端。这将导致十六进制值为 0a21,十进制为 2539。这需要除以 100 才能得到 25.39 度的温度。

如您所说,第三个值是湿度,最后两个值描述电池电压。转换为小端(0b7e)和十进制(2942),这个值需要除以1000得到2.942的电压

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。