基于 RSSI 的蓝牙测距

蓝牙 RSSI 计算距离  https://blog.csdn.net/njchenyi/article/details/46981423

利用 CoreLocation.framework 很容易扫描获得周边蓝牙设备,苹果开源代码 AirLocate 有具体实现,下载地址:

https://developer.apple.com/library/ios/samplecode/AirLocate/Introduction/Intro.html

所获得的 iBeacon 在 CoreLocation 里以 CLBeacon 表示,其中有 RSSI 值(接收信号强度),可以用来计算发射端和接收端间距离。


计算公式:

    d = 10^((abs(RSSI) - A) / (10 * n))

其中:

    d - 计算所得距离

    RSSI - 接收信号强度(负值)

    A - 发射端和接收端相隔 1 米时的信号强度


根据上述公式计算可得到下表(A=-70,n=2.0)


可以看出,距离差不会因为设备 RSSI 基准值的变化而变化。如果基于 1 米距离采集到了设备的 RSSI 基准值,以后需要限制设备只能在 3 米范围内才可以进行交互通讯的话,只需判断设备 RSSI 值与其距离 1 米时测得的 RSSI 基准值的差距是否小于 22,小于 22 即可认为设备在 3 米以内。

你可能感兴趣的:(基于 RSSI 的蓝牙测距)