33

我将从这个问题开始。

BTLE RSSI 是指示两个设备彼此接近与否的好方法吗?它是否仅适用于 fobs 等小型设备?

问题:

我目前正在考虑制作一个使用 BTLE 并允许基于接近度的连接的应用程序。在这方面,它很像苹果在 Advanced Core Bluetooth 主题演讲中展示的演示应用程序(当两个设备几乎接触时,它们就会连接)。

据我了解,当中央发现外围设备时,接近度是根据 RSSI 值确定的。然而,当我用两台 iPad 尝试这个时,信号似乎太强了,因为它与设备的接近度没有太大的相关性,所以它也太不一致,无法在附近进行准确的刺伤。

我已经尝试过 Apple 示例代码,这与设备的相似之处在于,这些设备根本不必靠近,信息就可以从一个设备传递到另一个设备。

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

提前感谢您的帮助。

4

4 回答 4

21

马修·格里芬的经历与我相匹配。然而——当我们可以测量一段相当长的时间时,有两件事帮助我们更好地校准它。

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

  • 使用 IMU,您可以清楚地了解行进的距离/方向——如果这是在很短的时间内——我们假设另一“边”是静止的。这有助于获得“当前”方向和“校准当前环境噪声”的值。
  • 同样 - 对旋转/位置变化做同样的事情。

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

然而,反过来是相当可靠的 - 即我们知道什么时候不测量。最终结果是人们可以很好地确定诸如“在键盘上”和“重新定位”/通过特定的门/开口或方向移开之类的事情。同样通过在房间中随机跳舞来测量场地;改变方向很多 - 一旦接收器天线波瓣在静止期后得到一定程度的解决,效果就会很好。

于 2013-06-10T10:22:51.463 回答
15

您对 RSSI 的疯狂和随机跳跃是完全正确的。您应该每两秒检索一次 RSSI 值(再快一点,就会出现一堆错误)。在向用户声明您的大致范围之前,丢弃超过 ~-40 分贝峰值的 RSSI 值并使用过去值的聚合。

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

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

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

于 2013-06-10T17:12:01.287 回答
11

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

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

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

于 2013-06-04T20:56:32.587 回答
3

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

于 2013-06-10T14:56:22.187 回答