使用 iBeacon RSSI 检测房间 entry/exit

Room entry/exit detection using iBeacon RSSI

我正在使用 iBeacon 检测是否有人进入或离开房间。实现如下:
1. 每个房间放置两个信标。一个在门口,另一个在里面靠近门的地方。
2. 要检测进入,用户必须先通过门信标,然后再通过房间内的信标。对于退出,则相反。

问题:
万一房间之间太过相邻,会出现重叠导致检测错误

计划的解决方案:
当检测到内部房间时,使用 RSSI 检测哪个是最后一个最近的信标。我正在考虑在给定时间检查 RSSI 分布的偏度,比如自用户检测到内部信标后大约 1 到 2 秒。

是否有其他统计分析或任何数据分析可用于确定或检查用户进入哪个房间的概率?

除非房间很大(这听起来不是基于你遇到的麻烦)我认为你找到的任何技术都会有很高的错误率。通过识别您根本无法做出决定并在这些情况下拒绝这样做以避免错误决定的情况,您可能能够将此错误率降低到可以接受的程度。

最好的办法是从不同的信标数据包中采样多个 RSSI 测量值(至少 10 个以滤除噪声),然后对它们取平均值,也许在这样做之前丢弃最高值和最低值。如果这个平均 RSSI 足够强,比如说 < -80 dB(这是你从所有信标看到的最强信号),你很可能在信标指示的房间里。

如果您远离房间中的信标,RSSI 可能会下降,因此仅仅因为不满足上述条件并不意味着您不在房间里。

请记住,如果所有信号都很弱,则无法确定哪个信标最近 - 噪声变得比信号更重要。因此,除非一个信标的 RSSI 强于 -85 dBm,否则不要下结论。

确保您的信标的传输强度尽可能高,并且广告频率尽可能高。后者将确保您在短时间内获得足够的RSSI样本。

最后,请记住,不同的 Android 手机具有不同的蓝牙天线,并或多或少地接收相同的信标数据包。华为 P9 Lite 检测到的 BLE 信号的 RSSI 比同样放置​​的 Moto G4+ 弱 20 dB。尽管如此,电话通常不会检测到比 -100 dBm 更弱的信标信号,而低于 -90 dBm 的测量值太弱,以至于几乎无法确定相对距离。