【问题标题】:iOS Swift Mi Scale 2 Bluetooth Get WeightiOS Swift Mi Scale 2 蓝牙 称重
【发布时间】:2020-03-25 20:38:22
【问题描述】:

我正在编写一个可以从小米米秤 2 获取体重测量的应用程序。在读取所有可用的 uuid 后,只有“181B”连接,特别是“2A9C”特性(蓝牙 gatt 中的体重测量)会收到通知。

数值数据为 [2, 164, 178, 7, 1, 1, 2, 58, 56, 253, 255, 240, 60]。只有最后两个值不同,其余的是时间和日期,目前没有设置巫婆(253、255 是零,当体重在秤上变化直到稳定为止)。

有人可以帮我只获取人的体重吗,我是否应该以不同的方式获取数据,与其他 uuid 不同(如自定义的:00001530-0000-3512-2118-0009AF100700、00001542-0000-3512-2118-0009AF100700 ),以及如何检索它们。

Paulw11 的正确答案:您需要查看第一个字节的第 0 位来确定重量是英制还是 SI;该位为 0,因此数据为 SI。要获得重量,将最后两个字节转换为 16 位整数(60*256+240 = 15,600)并乘以 0.005 = 78kg

【问题讨论】:

  • 由于某种原因,Bluetooth.com 网站似乎没有以前具有的良好的人类可读规范。您可以在此处bluetooth.com/specifications/gatt/characteristics 获取 XML 格式的重量规范。您需要查看第一个字节的位 0 以确定重量是英制还是 SI;该位为 0,因此数据为 SI。要获得重量,将最后两个字节转换为 16 位整数(60*256+240 = 15,600)并乘以 0.005 = 78kg
  • 这是我需要的答案,我感激不尽。祝你好运和最良好的祝愿@Paulw11
  • @Paulw11 我不知道该多谢你。

标签: ios swift scale uuid xiaomi


【解决方案1】:

就我而言,情况有点不同:

我得到这样的数据 [207, 0, 0, 178, 2, 0, 0, 0, 0, 0, 127] (6.9 KG),解决方法是:

let bytesArray = [207, 0, 0, 178, 2, 0, 0, 0, 0, 0, 127]
let weight = (( bytesArray[4] * 256 + bytesArray[3] ) * 10.0) / 1000

现在我有 6.9 公斤了。

【讨论】:

  • 如何从此类数据中识别阻抗?我的位是: [207, 242, 28, 0, 20, 95, 87, 75, 0, 0, 118] 根据上面的公式,重量 51.2 是正确的。
猜你喜欢
  • 2018-05-05
  • 2015-11-23
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 2019-02-11
  • 1970-01-01
相关资源
最近更新 更多