具有自定义数据广播的BLE信标



在应用程序中,我期待蓝牙在Beacon是一个非常好的选择,因为我想从不同的来源收集PH值到应用程序,所以我不能一次将我的android设备与所有BLE设备配对,因为它将在20-30左右。

但是我可以看到,如果有Beacon,那么Android可以扫描所有设备,也可以在不与它们配对的情况下获得所有设备的RSSI。

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

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

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

你可以看看AltBeacon规范作为一个例子。这种格式使用两个字节来标识自身("信标代码")、20个字节的信标标识符、一个字节的数据和一个字节的参考RSSI。您可能仍然需要每个信标的唯一标识符,以便知道哪个信标向您发送了信息。但是你也许可以把它减少到4个字节,这将允许你有2^32个不同的信标发送这个信息。

Android信标库允许你使用任意格式发送和接收信标,你可以使用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

最新更新