我可以使用Arduino读取iBeacon数据吗?

问题描述 投票:1回答:3

我正在使用HM-10模块和Arduino UNO。

我的要求是使用Arduino从我附近的ibeacons读取数据。可能吗?我还没有找到任何关于此的文章。所有文章都谈到将你的Android手机与arduino连接起来。任何的想法?

arduino ibeacon hm-10
3个回答
3
投票

对的,这是可能的。我正在使用HM-10作为iBeacon检测器(linksprite.com BLE 4.0屏蔽),它成功检测到在iBeacon模式下运行的RadBeacon。 HM-10上的固件是540版。

在它检测到RadBeacon之前,我必须向HM-10发送以下命令:

AT+ROLE1
AT+IMME1
AT+RESET

然后我用了AT-DISI?命令,并且串行监视器显示从RadBeacon(和另一个信标)接收的广播,如下所示(例如):

OK DISISOK + + DISC:4C000215:2G234454CF6D5A0FADF2F4911BA9FFA7:00000001AC:0CF3EE041CCE:-052OK + DISC:00000000:00000000000000000000000000000000:0000000000:B9782E08068C:-071OK + DISCE

在这个例子中,HM-10正在检测我的RadBeacon,其UUID为2G234454 ......信号强度为-052。它还检测到另一个BLE信标(我的AppleTV楼下),UUID为B9782E08068C,信号强度为-071。

我对这些东西肯定不是很了解,但到目前为止它似乎对我有用。我的下一个挑战是弄清楚如何解析收到的文本数据。我最感兴趣的是距离/信号强度数据,以便在RadBeacon非常接近HM-10时触发动作。

[完全披露:我混淆了上面的一些UUID号码,因为我不确定这些信息是否属于私人或黑客或其他任何信息]

[顺便说一句,nRF8001 BLE Shield不会这样做,因为它只能在外围模式下运行。


0
投票

在HM-10的固件版本V539中,它添加了一个AT命令来列出附近的iBeacons。命令是AT+DISI?。您只需要设置Arduion以通过串行端口发送该命令并解析它返回的数据。


0
投票

是的,您可以获得附近iBeacons的最小和最大数量。您需要将hm-10附加到Arduino Uno。

尝试使用此库:https://github.com/dinosd/BLE_PROXIMITY如果要配置它,可以配置合适的AT命令。但它也应该与默认设置一起使用。

使用SoftwareSerial访问HM-10。

© www.soinside.com 2019 - 2024. All rights reserved.