0

我尝试使用信标(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 分钟,然后它不起作用并且无法发送任何 at 命令。有人可以帮我解决这个问题吗?

4

1 回答 1

0

Ibeacon 无法实现您所尝试的。您所要做的就是使用传感器数据一遍又一遍地在您的 HM-10 设备中设置主要数量的 Ibeacon 数据。主要数字是 Ibeacon 数据规范的一部分:(来源:https ://developer.mbed.org/blog/entry/BLE-Beacons-URIBeacon-AltBeacons-iBeacon/ )

数据规格:

IBeacons 广播四条信息:

  • 标识信标的 UUID。
  • 一个主要编号,用于标识一个大组中的信标子集。
  • 标识特定信标的次要编号。
  • 2 的补码中的 TX 功率电平,表示距离设备一米的信号强度。用户或制造商必须为每个设备校准此数字。

    扫描应用程序读取 UUID、主要编号和次要编号,并将它们与数据库进行引用以获取有关信标的信息;信标本身不携带任何描述性信息——它需要这个外部数据库才有用。TX 功率场与测量的信号强度一起使用,以确定信标与智能手机的距离。请注意,用户必须逐个信标校准 TxPower 才能准确。

在此处输入图像描述

对于 HM-10 设备,AT 命令通常仅用于设置设备,而不用于发送数据。谷歌一些示例并了解如何设置 BLE 设备之间的通信。

于 2017-08-02T18:39:13.257 回答