使用HM-10检测Estimot信标距离

时间:2016-08-29 11:05:29

标签: arduino bluetooth-lowenergy beacon hm-10

我想让我的Arduino + HM-10在不使用手机连接的情况下检测Estimote信标距离,但我不确定它是否可能。

我是否只能使用HM-10检测信标? 我可以估算一下我的Arduino + HM-10和灯塔之间的距离吗?我知道Apple没有发布算法,但我已经估计了在Android上使用Cordova应用程序与灯塔的距离。

2 个答案:

答案 0 :(得分:1)

是的,有可能。

您必须使用RSSI和算法,您必须根据您想要实现的目标进行选择。

请找到我的答案here,以获取更多详细信息,尤其是关于距离测量的BLE技术限制。

答案 1 :(得分:0)

是的,有可能并且使用比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”。

在开始扫描Beacons之前,您可能需要将HM10设置为BLE中央设备。这是通过发送:

完成的

AT-ROLE1 //设置核心角色

AT-IMME1 //应该在没有事先激活的情况下工作

AT-RESET //重新启动HM10

之后,如果您发送“AT-DISI?”通过串行监视器,HM10应该开始寻找iBeacons并且(它找到一个)回馈以下[P是占位符]:

行+ DISC [P0:P1:P2:P3:P4]

此消息包含iBeacon的POWER(发送信号功率)和RSSI(接收信号强度),从中可以扣除到信标的距离。

P3的最后2位包含iBeacon的POWER,P4是RSSI值。 [注意:2个Power数字是十六进制值,你需要先将它们转换成十进制值---数字应该在190左右)

测量Beacon之间距离的最常用方法(据我所知)是:

距离= 10 ^((POWER-RSSI)/ 10n)[n介于2和4之间,我使用2]

:)我希望你的项目有所帮助,祝你好运。