使用Bluez蓝牙低功耗读取温度计数据

时间:2018-01-16 06:07:25

标签: bluetooth bluetooth-lowenergy bluez pybluez

我想知道是否有人愿意引导我一点。我正在尝试使用gatttool读取蓝牙温度计的温度,但我不知道如何使用指示属性。

我能够连接到设备,获取设备名称等,但事实证明获取实际温度数据更具挑战性。

有人有想法吗?如果您有更多问题,请告诉我。

1 个答案:

答案 0 :(得分:3)

假设您的设备使用采用的温度计配置文件,则需要启用温度measurement characteristic的指示。要做到这一点,有几个步骤: -

  1. 使用找到温度特性的句柄: -

    gatttool -b 00:11:22:33:44:55 --characteristics

  2. 将00:11:22:33:44:55替换为您设备的蓝牙地址。你基本上想要找到包含2a1c的uuid并记下它对应的' char值句柄'。

    1. 使用

      在该句柄处查找描述符

      gatttool -b 00:11:22:33:44:55 char-desc --handle=0xXX

    2. 其中XX是您之前记下的char值句柄。您应该能够在该句柄上看到几个特征描述符。使用uuid 2902记下char句柄。

      1. 通过撰写' 0200'来启用指示在该句柄使用

        gatttool -b 00:11:22:33:44:55 --sec-level=high --char-write --handle=0xYYYY --value=0200

      2. 其中0xYYYY是您在步骤2中记下的CCCD描述符的句柄。一旦发生这种情况,您应该开始获取指示数据,您可以使用here找到的温度数据结构进行解密。

        如果您的设备没有使用采用的温度计配置文件,那么您需要重复上述三个步骤,但是在步骤1中,不要使用uuid 2a1c查找特征,而是寻找具有“char”字符的特征properties = 0x20'因为这意味着特征可以表明。

        您可以在以下链接中找到有关使用BlueZ命令的更多信息: -

        我希望这会有所帮助。