iPhone和Android模拟beacon在相同距离下RSSI差异较大

问题描述

我编写了一个应用程序来检测信标并通过 RSSI 计算距离。 当我使用 iPhone/android 进行模拟时,因为信标会导致 RSSI 的巨大差异。 比如我把 iPhone 放在距离 BLEscanner 3M 的地方,RSSI 是 -65。但同时,Android 设备的RSSI 将是-80 或更多。 有谁知道如何调整RSSI的差异?

解决方法

如您所见,每个手机型号的蓝牙传输功率略有不同。同样,每个手机型号的接收器灵敏度也略有不同。更改用于传输和接收的手机型号会影响您接收的 RSSI。

由于两个主要原因,您无法完全纠正这些差异:

  1. 还有许多其他因素会影响 RSSI,而这些因素与手机型号无关(信号反射、空气或障碍物的衰减、手机壳的影响、附近拿着手机的手)或其他人体部位。)
  2. 关于手机之间在蓝牙发射器功率和接收器灵敏度方面差异的数据有限。

考虑到这些警告,谷歌确实创建了一个有限的校正因子数据集,作为其与 Apple 的冠状病毒接触者追踪工作的一部分。

您可以阅读它的工作原理here

并查看完整的校正数据集here

基本思想是:

  1. 从上面的 CSV 数据集中取两个值用于您的测试设置:

在下面的等式中使用发送电话型号的“tx”列值作为其“TX_Power”。对接收电话使用“RSSI_correction”列值。

  1. 然后将它们代入这个等式:

Attenuation = TX_power - (RSSI_measured + RSSI_correction)

  1. 产生的衰减值是您的发射器和接收器之间的校正信号损耗(以 dB 为单位测量,类似于 RSSI),可用作距离公式的输入。