使用HM-10检测Estimot信标距离
Use HM-10 to detect Estimot beacon distance
我想让我的 Arduino+HM-10 在不使用 phone 连接的情况下检测 Estimote 信标距离,但我不确定是否可行。
我只能用HM-10检测信标吗?
我可以估算我的 Arduino+HM-10 和信标之间的距离吗?我知道 Apple 没有发布该算法,但我已经在 Android.
上使用 Cordova 应用程序估算了到信标的距离
是的,这是可能的。
您必须使用 RSSI 和算法,您必须根据要实现的目标来选择这些算法。
请找到我的答案 here,以获得更多详细信息,尤其是关于距离测量的 BLE 技术限制。
是的,可以使用比 v538 更新的固件(您可以通过命令 "AT-VERS?" 检查您的版本),这也很容易。
SoftwareSerial mySerial(8, 9); // RX, TX
// Connect HM10 Arduino Uno
// Pin 1/TXD Pin 7
// Pin 2/RXD Pin 8
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop(){
String message;
if (Serial.available()) {
c = Serial.read();
mySerial.print(c);
}
if (mySerial.available()) {
message = "";
delay(10);
while (mySerial.available()) {
c = mySerial.read();
message = message + c;
}
Serial.println(message);
}
这是与您的 HM10 建立连接的基本代码 [rx/tx 引脚可能有所不同]。如果您通过串行监视器发送 "AT",HM10 现在应该返回 "OK"。
您可能需要先将 HM10 设置为 BLE 中央设备,然后才能开始扫描信标。这是通过发送:
AT-ROLE1 //设置中心角色
AT-IMME1 //无需事先激活即可工作
AT-RESET //重启HM10
在那之后,如果您通过串行监视器发送 "AT-DISI?",HM10 应该开始寻找 iBeacons 并且(如果它找到一个)返回以下 [P's 是占位符]:
OK+DISC[P0:P1:P2:P3:P4]
此消息包含iBeacon的POWER(发送信号功率)和RSSI(接收信号强度),从中可以推导出到beacon的距离。
P3的最后2位是iBeacon的POWER,P4是RSSI值。
[注意:2个幂位是十六进制值,你需要先将它们转换成十进制值---数字应该在190左右]
最常用的测量 Beacon 之间距离的方法(据我所知)是:
distance = 10 ^ ((POWER-RSSI) / 10n) [n在2到4之间,我用2]
:) 希望对你的项目有所帮助,祝你好运。
我想让我的 Arduino+HM-10 在不使用 phone 连接的情况下检测 Estimote 信标距离,但我不确定是否可行。
我只能用HM-10检测信标吗? 我可以估算我的 Arduino+HM-10 和信标之间的距离吗?我知道 Apple 没有发布该算法,但我已经在 Android.
上使用 Cordova 应用程序估算了到信标的距离是的,这是可能的。
您必须使用 RSSI 和算法,您必须根据要实现的目标来选择这些算法。
请找到我的答案 here,以获得更多详细信息,尤其是关于距离测量的 BLE 技术限制。
是的,可以使用比 v538 更新的固件(您可以通过命令 "AT-VERS?" 检查您的版本),这也很容易。
SoftwareSerial mySerial(8, 9); // RX, TX
// Connect HM10 Arduino Uno
// Pin 1/TXD Pin 7
// Pin 2/RXD Pin 8
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop(){
String message;
if (Serial.available()) {
c = Serial.read();
mySerial.print(c);
}
if (mySerial.available()) {
message = "";
delay(10);
while (mySerial.available()) {
c = mySerial.read();
message = message + c;
}
Serial.println(message);
}
这是与您的 HM10 建立连接的基本代码 [rx/tx 引脚可能有所不同]。如果您通过串行监视器发送 "AT",HM10 现在应该返回 "OK"。
您可能需要先将 HM10 设置为 BLE 中央设备,然后才能开始扫描信标。这是通过发送:
AT-ROLE1 //设置中心角色
AT-IMME1 //无需事先激活即可工作
AT-RESET //重启HM10
在那之后,如果您通过串行监视器发送 "AT-DISI?",HM10 应该开始寻找 iBeacons 并且(如果它找到一个)返回以下 [P's 是占位符]:
OK+DISC[P0:P1:P2:P3:P4]
此消息包含iBeacon的POWER(发送信号功率)和RSSI(接收信号强度),从中可以推导出到beacon的距离。
P3的最后2位是iBeacon的POWER,P4是RSSI值。 [注意:2个幂位是十六进制值,你需要先将它们转换成十进制值---数字应该在190左右]
最常用的测量 Beacon 之间距离的方法(据我所知)是:
distance = 10 ^ ((POWER-RSSI) / 10n) [n在2到4之间,我用2]
:) 希望对你的项目有所帮助,祝你好运。