android - 确定信标的距离精度

标签 android ibeacon proximity ibeacon-android android-ibeacon

我有几个关于 Radius 网络 Beacon 的问题。

  1. 我们如何才能获得 Android 设备和设备之间的准确距离 灯塔?到目前为止我们正在经历的距离 “android-beacon-library”在波动。
  2. 我们如何限制信标的传输半径,比如允许 信标仅传输 5 米或 20 厘米?

Please find the image with beacon distance reading for various devices (Moto g , Nexus 5 , Nexus 4 and iPhone 5s)

最佳答案

您总是会看到信标距离估算的波动,因此您必须适本地设置您的期望值。信标距离估算的工作原理是从使用移动设备上的蓝牙 radio 测量 radio 信号强度开始设备。信号越强意味着信标越近,信号越弱意味着信标越远。信标在 1 米处传输其预期信号强度的引用值,实际上是说“如果你在一米外,你应该看到我的信号电平为 -56 dBm”。然后,手机内部的一个公式会尝试根据任何给定时间的信号水平来猜测它距离多远。如果信号比 -56dBm 稍弱一点,例如 -65dBm,则该公式可能会估计距离为 2.5 米。

这种技术并不完善,波动的原因有几个:

  1. 总是存在背景 radio 噪声(例如旧式 AM radio 上的静电噪声),这会导致各个信号强度测量值发生变化。
  2. 蓝牙 radio 内部的模数转换器存在错误,这也会导致各个信号强度测量值发生变化。
  3. 蓝牙 radio 波从一些物体反射并被其他物体吸收,使得实际信号强度在相同距离的不同位置发生变化,并且当附近的其他物体四处移动时。
  4. 发射器和接收器上的天线方向图都不是完美的球形。这意味着当您旋转手机或信标时,您会看到略有不同的信号电平。

您可以采取一些措施来最大程度地减少错误:

  1. 使用尽可能频繁传输的信标,最好以 10Hz 或更高的频率传输。更多的传输意味着更多的信号电平统计样本,当它们一起平均时有助于减少来自上述来源 1 和 2 的错误。

  2. 在您的信标上使用尽可能高的发射器功率设置。信号越强,来自上述来源 1 的噪声水平(相对而言)就越低。

  3. 如果可能,请将信标放置在接收设备视线清晰的地方。开销通常效果最好。

但是,您能做的最好的事情就是尽可能减少变化。你无法消除它。出于这个原因,您必须设计您的应用程序,以便可以接受这种变化。如果对您的用例有帮助,您还可以降低信标发射器功率,以便设备仅在相对较近时检测到信标。

使用 Radius Networks 的 RadBeacon USB 和 RadBeacon Tag 型号,您可以使用免费的 RadBeacon configuration app 调整发射器功率适用于 iOS 和 OSX。这些应用程序有一个 slider 控件来增加和减少发射器功率。

但是,您应该注意,通过降低发射器功率,您也会增加距离估计的变化量。这是因为信噪比会更低。

全面披露:我是 Radius Networks 的总工程师。

关于android - 确定信标的距离精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26253996/

相关文章:

android - 在android中如何清除CharSequence中的元素?

iOS iBeacon 读数不一致

ios - 我可以在 IOS 收到 iBeacon 广告包之前预先生成 CoreBluetooth UUID 吗?

ios - CoreBluetooth 上的最大外围设备数量?

java - Android 具有多个 POI 的接近警报

java - 如何更彻底地访问 Android 传感器?

java - 获取另一个 Activity 的 EditText 数据 - android

Android Camera2 捕捉图像倾斜

启动新 Activity 后 Android 服务连接泄漏

ios - 如何在 IOS 中扫描信标?