具有自定义数据广播功能的 BLE Beacon

Hal*_*ark 0 android bluetooth bluetooth-lowenergy beacon

在应用程序中,我期待 Beacon 中的蓝牙是非常好的选择,因为我想从不同来源收集 PH 到应用程序,所以我无法一次将我的 Android 设备与所有 BLE 设备配对,因为它大约是 20- 30.

但我可以看到,如果有 Beacon,那么 Android 可以扫描所有设备,并且还可以获取所有设备的 RSSI,而无需与它们配对。

那么我们是否可以添加一些其他参数,例如 PH、温度、湿度和 3-4 个其他参数,以便 Beacon 将与 RSSI 一起广播所有这些参数,并且在 Android 应用程序中我可以收集所有信息?

  • 我不确定这是否是可行的解决方案,如果是,那么如何在信标中实现这一目标?

dav*_*ung 6

蓝牙信标通常依靠广告数据包来发送数据,而可用字节数有限。对于制造商广告,您基本上有 24 个可用字节可供使用,尽管您需要保留其中一些作为标志以表明它是您的信标格式,而不是其他人的信标格式。

您可以查看AltBeacon 规范作为示例。该格式使用两个字节来标识自身(“信标代码”)、20 个字节的信标标识符、一个字节的数据和一个用于参考 RSSI 的字节。您可能仍然需要每个信标有一个唯一的标识符,以便您知道哪个信标向您发送了信息。但是您可以根据您的目的将其减少到四个字节,这将允许您有 2^32 个不同的信标发送此信息。

Android Beacon 库允许您使用任意格式传输和接收信标,您可以使用BeaconParser类定义。使用四字节标识符的信标格式,其中 PH、温度和湿度数据字段各两个字节,其他五个数据字段各两个字节,可能如下所示:

m:2-3=abcd,i:4-7,d:8-9,d:10-11,d:12-13,d:14-15,d:16-17,d:18-19,d:20-21,d:22-23,p:24-24
Run Code Online (Sandbox Code Playgroud)