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

Reading Thermometer Data with Bluez Bluetooth Low Energy

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

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

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

假设您的设备使用采用的温度计配置文件,那么您想要启用温度指示 measurement characteristic。为此,有几个步骤:-

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

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

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

  1. 使用

    查找该句柄处的描述符

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

其中 XX 是您之前记下的字符值句柄。您应该能够在该句柄处看到几个特征描述符。记下 uuid 为 2902 的字符句柄。

  1. 通过使用

    在该句柄处写入“0200”来启用指示

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

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

如果您的设备不使用采用的温度计配置文件,则需要重复上述三个步骤,但在步骤 1 中,不是查找 uuid 2a1c 的特征,而是查找具有 [=71 的特征=] 因为这意味着该特性可以指示。

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

  • How can I connect to the FitBit Zip over Bluetooth 4.0 LE on Linux with bluez?
  • Bluetooth Low Energy: listening for notifications/indications in linux
  • Using Bluetooth low energy in linux command line

希望对您有所帮助。