Android 如何连续的扫描蓝牙的RSSI来测距离,实现三点定位

Android 如何连续的扫描蓝牙的RSSI来测距离,实现三点定位 


背景:

接到一个小伙伴求助,要实现用蓝牙来测算距离,并用三点计算出蓝牙设备方位,通过以往的经验最终帮这位小伙伴实现了他的需求,下面总结下实现步骤,希望能帮到你。

 

分析:

要获得蓝牙的RSSI无外乎两种方法:

第一种:就是基于扫瞄的方法,优点是Android本身支持,缺点是scan的时间比较长,并且中间过程不受控制,为了连续的测量,需要不断的scan;

第二种:就是基于连接的方法,前提是要建立两个蓝牙设备的连接后,再测量RSSI,优点是后期测量比较方便,间隔时间也较短。

 

三点定位实现原理:

      这里的方位其实是一个相对方位的概念,我们需要三个蓝牙模块,三个蓝牙模块之间的距离是固定已知的,比如把这三个蓝牙模块围成一个等边三角形,一个顶点作为正北方,对边当做正南边,如图所示:

Android 如何连续的扫描蓝牙的RSSI来测距离,实现三点定位_第1张图片

只要分别计算出到三个顶点的距离,然后对比三条距离,按如图比较大小,即可得出目标方位,这里需要注意的是

你可能感兴趣的:(Android的必修课)