如何让 Ibeacon 设备可以检测到其他设备
Posted
技术标签:
【中文标题】如何让 Ibeacon 设备可以检测到其他设备【英文标题】:How to make Ibeacon device can detect other devices 【发布时间】:2014-06-02 09:33:38 【问题描述】:我有几件来自网上卖家的Ibeacon信号发送器(都是小企业,没有品牌),它们很便宜而且很小,并且可以支持我的iPad mini配置,其中包括“设备名称”, 'Proximity UUID'、'Broadcasting interval' 等等。现在它甚至可以在我的安卓手机中使用:
我的问题是:是否可以让这些 Ibeacon 设备检测周围的其他 BLE4.0 设备并发送数据?因为据我了解,Ibeacon 本身是一个完整的 BLE4.0 支持设备,似乎人们出于某种目的删除了一些基本功能。
我的目的是将这些 ibeacon 设备嵌入到我的 ARDUINO 板上,通过连接它们的串口,它不仅可以用作 Ibeacon 发送器,还可以检测周围的其他 BLE4.0 设备并发送它们的广告数据到 ARDUINO 板以进一步处理。
【问题讨论】:
【参考方案1】:Radius Networks 发布了tutorial 和howto,介绍了如何使 Raspberry Pi iBeacon 发射器也扫描其他 iBeacon 并向系统报告其标识符以打开和关闭灯。虽然这是在不同的平台上,但它与您描述的内容非常匹配,并且可能包含有助于 Arduino 实现的概念。
全面披露:我是 Radius Networks 的首席工程师。
【讨论】:
我注意到 Turn on a Lamp with an iBeacon 帖子说我们需要在进行测试时关闭树莓派中的 ibeacon 广播,所以这是否意味着当工作为 ' ibeacon 传感器”,本身不能处于“ibacon 发送器”模式?但为什么不呢,对我来说看起来是一个非常基本的功能。 如果您不同时进行扫描和广告,Bluez 会更稳定。但没有什么绝对禁止他们一起做。 咨询了卖家,他们很确定BLE设备不能同时支持'sensor'和'broadcaster'模式当时,他们说它在核心蓝牙协议的某些地方被禁止。而我只好退后一步,只在ARDUINO中请求支持'sensor mode',他们说需要修改蓝牙模块的固件,看起来很复杂。选择ARDUINO是个错误?? 有了 Pi,您可以使用两个 BLE 加密狗(每个 13 美元)来解决这个问题。我确实认为它对于最一般的 sensdoe 用例来说是一个更好的平台,因为它更容易编程。【参考方案2】:iBeacon 只是 BLE 广告的特定实现。它的目的只是为了宣传 UUID、主要和次要号码。
正如您所说,这些设备是围绕 BLE 4.0 芯片组构建的,并且许多设备确实实现了其他 BLE 外围服务以进行配置。没有什么可以阻止您为设备创建自定义固件以与 Arduino 等设备进行通信,但是在任何给定硬件上执行此操作的能力将取决于他们使用的芯片以及您连接到设备以上传的能力新固件并访问适当的引脚以使用串行端口或 SPI 与您的 Arduino 进行通信。
【讨论】:
以上是关于如何让 Ibeacon 设备可以检测到其他设备的主要内容,如果未能解决你的问题,请参考以下文章
iPhone 休眠时无法检测到 Beacon 设备。(进入后台)
如何自动连接 CBPeripheral(带有 iBeacon + 蓝牙芯片的 BLE 设备)并且应用程序未运行
iBeacon - 可以使用 startRangingBeacons 进行检测,但不能用于 didEnterRegion