我这几天在研究beacon,有一个问题。
在我的javascript广告ibeacon程序中,我可以设置measurePower值,如下所示:
var Bleacon = require('bleacon');
var uuid = 'E2C56DB5-DFFB-48D2-B060-D0F5A71096E0';
var major = 1;
var minor = 2;
var measuredPower = -50;
console.log('starting advertising ...');
Bleacon.startAdvertising(uuid, major, minor, measuredPower);
当我启动此程序时,在 iOS“Locate Beacon”应用程序中检测到 ibeacon。
但是此应用程序中出现的 rssi 值与我设置的值不同。
这是我的想法:varmeasuredPower = -50;
是如果我测量距离信标发射器1米远的信标RSSI值,我会得到的RSSI值。
但即使距离它一米,数值看起来也不太接近......
请您解释一下吗?
最佳答案
测量功率字段在信标初始配置期间设置,然后由信标在每个数据包中传输。它应该设置为接收设备在一米外测量到的 RSSI 值。通过将传输中接收到的测量功率值与接收器测量的实际 RSSI 进行比较,接收器可以判断信标距离是否大于或小于一米,甚至可以使用公式粗略估计距离。
您在一米处看到明显不同的 RSSI 值这一事实可能意味着您的发射器的 -50 measuredPower
字段不正确。您可以使用 Locate 应用程序进行“校准”,该应用程序将在大约 30 秒内对一米处的 RSSI 测量值进行平均,然后您可以在代码中使用该值。
需要注意的几点:
如果您更改信标的发射功率(如果发射器允许),您将需要重新校准并设置
measuredPower
由于天线增益差异,每种设备类型测量 RSSI 的方式略有不同。通常使用较新型号的 iPhone 作为标准引用。
关于javascript - 'detected rssi value' 和 'rssi that I set' 和有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35102881/