BLE 传感器网关和 RaspPi 项目

物联网 树莓派 蓝牙
2021-06-28 13:45:36

目标:

使用 RaspPi 4 构建网关,该网关将从传感器接收 BLE 数据,并能够在我的移动设备上随时随地远程查看。

传感器:

温度和湿度 BLE (T201),您使用名为“SensorsPro”的应用程序在范围内从传感器接收数据,您可以同步数据以生成记录数据的最新图表。传感器本身有大约 20 天的内存,您可以在其中打开应用程序并同步数据。当您打开应用程序时,数据需要几秒钟才能重新开始流动,并带有实时温度和湿度读数。该应用程序还可以连接和读取多个传感器,每个传感器都有一个以 [A4:C1:38: : :**]开头的唯一 MAC 地址

原因:我用这些来监控里面有生物的饲养箱,每个饲养箱都需要在温度和湿度范围内,我希望能够远程监控并在温度范围飙升或湿度下降时收到警报,以便我可以激活适当的冷却风扇、喷雾系统、在炎热天气下关灯等。

我需要什么帮助:

  1. 我已经能够将旧的 Galaxy s6 置于开发模式并使用制造商提供的应用程序并接收数据并通过 btsnoop_hci.log 文件记录并导出到 Wireshark 但我似乎无法在搜索数小时后翻译这些数据我正在努力读取数据,以便能够将其转换为温度和湿度读数以及设备电池电量。

  2. T201 传感器总是在做广告,但通过移动 ble 扫描仪或 gatttool 连接经常断开连接而无法做更多事情,我需要找到一种方法通过 RPi 模拟应用程序并将数据发送到我的 pi,然后我可以使用/ 转换一旦我知道我正在接收什么数据并使用 python(优化)然后转发到 Mosquitto / Node Red / MQTT 仪表板以读取数据,然后制定 IFTTT 或 Telegram 通知以提醒我温度/湿度用完了

任何帮助将不胜感激,我是 linux 和 python 的初学者,所以肯定会有挑战。

我也研究了 OpenHab,但没有来自传感器的数据,我觉得目前也不行。

预先感谢您对我的项目的任何贡献。

21 年 5 月 18 日:

https://easyupload.io/kdc6gp - 30 秒的 BLE 数据

https://streamable.com/bgqo5v - 30 秒的视频,用于查看温度、湿度、电池电量在 30 秒内的实时变化情况。

[A4:C1:38:3A:07:3A] - 顶部读数,[A4:C1:38:C0:01:E1] - 底部读数

1个回答

制造商广告数据如下所示:

01 01 a4 c1 38 3a 07 3a 01 07 08 ce 25 89 62 00 01
?? ?? ---MAC address--- ?? ?? Temp- -Hum- Ba ?? ??
  • 字节 3-8 是 MAC 地址(它存在于帧的其他地方,但 iOS 不会将该信息提供给应用程序,而它会提供完整的广告数据,这就是为什么在这里重复)

  • 字节 11-12 是温度(0x08ce = 2254 -> 22.54°)

  • 字节 13-14 是湿度(0x2589 = 9609 -> 96.09%)

  • 字节 15 是电池电量(0x62 = 98 -> 98%)

这给我们留下了 6 个未知字节,但其余的(我相信包括您需要的所有信息)都非常清楚。

您必须捕获更多流量才能查看这些剩余值是否发生变化。