我尝试使用beacon(HM-10)来广播我的传感器数据,但是有一个问题是我使用循环来编写AT命令,过了一会儿,它没有响应任何东西。
以下是代码的一部分:
String pre = "AT+MARJ0x";
int sensorData = 0;
loop () {
sensorData = getSensorData(); // always returns 100 ~180
String atCommand = pre + sensorData; // ex: AT+MARJ0x100
BTSerial.print (atCommand);
delay (200);
}
它最初成功运行大约3分钟,然后它不起作用,无法通过命令发送。 有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
使用Ibeacon无法实现您所尝试的功能。 您所做的就是使用传感器数据一遍又一遍地设置HM-10设备中的主要Ibeacon数据。 主要编号是Ibeacon数据规范的一部分: (来源:https://developer.mbed.org/blog/entry/BLE-Beacons-URIBeacon-AltBeacons-iBeacon/)
数据规范:
IBeacons播放了四条信息:
2补码中的TX功率电平,表示距离设备一米的信号强度。 必须由用户或制造商为每个设备校准此编号。
扫描应用程序读取UUID,主要编号和次要编号,并针对数据库引用它们 获取有关信标的信息; 信标本身不包含描述性信息 - 它需要这个外部数据库才有用。 TX功率字段与测量的信号强度一起使用以确定信标离智能手机有多远。 请注意,TxPower必须在信标的基础上进行校准才能准确。
对于HM-10设备,AT命令通常仅用于设置设备,而不用于发送数据。 谷歌的一些例子,并学习如何在BLE设备之间建立通信。