如何准确区分小区域内最近的蓝牙设备?

时间:2018-04-20 07:34:37

标签: android bluetooth-lowenergy rssi

在我的应用程序中,我使用 ble(蓝牙低功耗)扫描并连接到最近的蓝牙设备(附近有两个类似的蓝牙设备)。我使用 RSSI 为了确保哪个是最近的,在大多数情况下,它工作正常。但我发现当距离很短时,它不是100%正确。在我的测试中,一个距离我2米,另一个是3米,并且更远的RSSI变得更大,大约十分之一。有更好的想法来取代RSSI吗?

1 个答案:

答案 0 :(得分:1)

你的问题是众所周知的,它出现在使用ble beacon的任何定位算法中。即使两个设备非常靠近,由于快速衰落效果,它们可能具有不同的RSSI值。

快速衰落源于由于多径引起的相长干涉和相消干涉模式的影响。

要解决此问题,您可以:

  • 更长时间期间比较RSSI。特别是如果事物在四处移动,无线电波可能以不同的方式干扰。例如,如果您的接收器是智能手机,则用户不是静态的,而且更多RSSI样本将为您提供更准确的结果。
  • 添加空间多样性。这可以通过添加另一个芯片与另一个也将做广告的天线来完成。如果两个天线不在同一个地方,您将获得更多的RSSI数据,这些数据来自不同的路径,会以不同的方式干扰。通过做两个值的平均值,您应该有更好的结果(理想情况下与更长的采集时间相结合)。但当然,只有在设计广告设备的硬件时才有可能。请注意,这也可以让您的接收者在相同的时间范围内获得更多优惠。
  • 频率多样性。确保您的广告客户已配置为使用3 adv渠道。

当然,如果两个距离非常不同,慢衰落将大于任何快速衰落效果,你不应该有任何麻烦。