蓝牙LE RSSI用于接近检测iOS

时间:2013-03-28 16:35:22

标签: iphone ios ipad core-bluetooth bluetooth-lowenergy

我将从问题开始。

BTLE RSSI是指示两个设备彼此接近的好方法吗?它只适用于像遥控器等小型设备吗?

问题:

我目前正在制作一款将使用BTLE并允许基于邻近度的连接的应用。在这方面,它很像苹果在高级核心蓝牙主题演示中展示的演示应用程序(当两个设备几乎接触它们然后连接时)。

据我所知,当中心发现外围设备时,接近度是根据RSSI值确定的。然而,当我尝试使用两个iPad时,信号看起来太强了,它也太不一致了,因为它没有显示与设备接近度的非常大的相关性,因此在接近处没有准确的刺。

我尝试过Apple示例代码,类似的是设备不必完全关闭,以便信息从一个传递到另一个。

如果只有一种方法可以降低外围设备广告的信号强度....

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:21)

Matthew Griffin的经验与我的相符。但是 - 当我们能够在相当长的一段时间内进行测量时,有两件事情可以帮助我们更好地进行校准。

我们确实必须在天线方向和IMU上包装一个简单的(kalman)滤波器,以获得粗略的运行评论 - 这不是CPU或电池灯。

  • 使用IMU可以很好地了解行程的距离/方向 - 如果这是在很短的时间内 - 我们假设另一个'侧'是静止的。这有助于获得“当前”方向的值和“调用当前环境噪声”。
  • 同样 - 对旋转/位置变化也一样。

我们发现,一般来说,重新定位设备是获得方向的更好方法;并且该距离仅在“移动”校准后大约30至600秒内可靠,并且仅在设备没有旋转太多时才可靠。而在实践中,曾经需要一些4-5个“其他”设备;理想情况下不要太流动,以保持自己动态校准。

然而,相反的是相当可靠的 - 即我们知道什么时候不测量。最终的结果是,人们可以很好地确定诸如“在键盘上”和“重新定位”/通过特定的门/打开或方向移动的东西。同样通过在房间里随机跳舞来测量场地;改变方向很多 - 一旦接收器天线波瓣在静止时间段之后有所改善,它确实可以正常工作。

答案 1 :(得分:14)

你对RSSI疯狂随机跳跃是完全正确的。您应该每两秒检索一次RSSI值(任何更快的速度都会得到一堆错误)。丢弃超过〜-40分贝峰值的RSSI值,并在向用户声明近似范围之前使用过去值的汇总。

至于你的以下陈述,你很幸运。

  

如果只有一种降低信号强度的方法   外围设备广告......

您正在寻找的服务称为TX Power Service。在外围设备上实施此服务可以降低设备的发射功率。这样,您可以减少广告数据可见的范围。但遗憾的是,我们无法在iOS设备上访问此服务。但是,如果您正在为BLE外设编写自己的固件,那么这就是您想要的服务。

答案 2 :(得分:11)

我花了最后一周严格处理RSSI,尝试使用Wifi和蓝牙LE传感器进行位置三角测量和距离转换。

不幸的是,我发现RSSI过于挑剔且不可靠,无法始终如一地用来确定距离。从理论上讲,RSSI和距离的表现符合平方反比定律(距离加倍,RSSI将降低固定数量的分贝),但实际上RSSI受天气等不可控因素的影响(干燥天气允许RF更好的旅行场地和障碍物(从一个传感器到另一个传感器的路径中的任何金属物体或人类都会导致衰减,并且其中一个传感器紧密定位的任何金属物体都会导致信号强度的增加。)

有办法尝试弥补这一点。 This paper是我读到的关于如何获得准确结果的最佳论文之一,但最重要的是,这是一种不可靠的方法,除非您只是想了解设备的位置。

答案 3 :(得分:2)

如果我理解得很好,那么您正在尝试实现类似于WWDC演示中所见的功能以及Bump之类的应用程序。因为RSSI就足够了。测试适当的阈值(例如> -30),你会没事的。