如何在小范围内准确区分距离最近的蓝牙设备?

How to distinguish the nearest bluetooth deivce in a small area accurately?

在我的应用程序中,我使用 ble(低功耗蓝牙) 扫描并连接到最近的蓝牙设备(附近有两个类似的蓝牙设备)。我使用 RSSI 以确保哪个最近并且在大多数情况下有效 fine.But 我发现当距离 short.During 我的测试是 2 米时它不是 100% 正确离我和另一个相距3米,越远的RSSI越大,大约是十分之一times.Is有没有更好的办法取代RSSI?

您的问题众所周知,它出现在任何使用 ble 信标的定位算法中。即使两个设备靠得很近,由于 快衰落 效应,它们也可能具有不同的 RSSI 值。

快速衰落是由多径引起的建设性和破坏性干扰模式的影响引起的。

要缓解此问题,您可以:

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

当然,如果两个距离相差很大,慢衰落 将比任何快速衰落效果都大,您应该不会遇到任何麻烦。