如何实现更准确的设备到 Beacon 的距离?

How to achieve a more accurate distance from device to Beacon?

很抱歉,如果有人以某种方式提出这个问题。我已经开始使用信标,并在 Xcode (Swift) - 使用 CoreLocation。不过,我真的需要在设备和信标之间做出更准确的判断。到目前为止,我一直在使用标准的邻近区域值(远、近和即时),但这根本无法解决问题。对于我正在寻找的解决方案来说,它似乎太不稳定了 - 这充其量只是一个简单的解决方案。

我的场景;

当用户距离信标大约 4 米时,我需要向用户设备显示通知、广告、图像等。这听起来很简单,但当我发现信标唯一真正的解决方案是上述那些邻近区域时,我开始担心,因为我只需要显示到 3-5 米外的设备,而不是更多。

我知道 CLBeacon class 的准确性 属性,但是 Apple 声明它不应该用于信标的准确定位,我相信这是我正在努力实现的目标。

有解决办法吗?感谢您的帮助!

谢谢, 奥利

在使用蓝牙无线电信号估算距离时存在物理限制。无线电噪声、信号反射和障碍物都会影响基于无线电信号估算距离的能力力量。使用信标来估计距离是可以的,但是您必须适当地设置您的期望值。

Apple 在 CoreLocation 中的算法采用 运行 20 秒左右测量信号强度的平均值,然后得出以米为单位的距离估计值,并将其放入 CLBeacon 精度字段中。然后使用该字段的结果得出邻近字段。 (0.5米以下表示近,0.5-3米表示近等)

当 Apple 建议不要使用准确性字段时,它只是想保护您免受不切实际的期望。这永远不是以米为单位的精确估计。最好的结果是 phone 从口袋里拿出来,信标和 phone 之间没有障碍物,并且 phone 相对静止。 在最佳条件下,您可能希望在 3 米或更短的近距离处获得 +/- 1 米的距离估计值。离得越远,变化越大。

您必须决定这是否适合您的用例。如果你能控制信标,你可以做一些事情来使结果尽可能好:

  1. 将信标发射器功率设置得尽可能高。这会给你更高的信噪比,从而更好地估计距离。
  2. 尽可能提高广告率。这会为您提供更多统计样本,从而更好地估计距离。
  3. 将您的信标放置在障碍物尽可能少的位置。
  4. 在进行上述更改后,请始终校准您的信标。校准涉及测量 1 米处的信号电平并将其作为校准常数存储在信标内。有关如何进行此校准的详细信息,请参阅信标制造商说明。