蓝牙如何定位,简易蓝牙定位系统的实现方法(蓝牙定位)

蓝牙 定位系统 简易 定位 方法| 2022-12-18

1.准备设备

所需硬件设备:

(1)低功率蓝牙定位器若干(如:10个),网上有卖(单价从几十到几百都有)

(2)android设备一台,系统版本4.2以上(SDK版本大于17)

(3)iOS设备一台,支持蓝牙4.0 BLE

2.设置蓝牙定位器

移动设备扫描周边低功率蓝牙设备,可以获得蓝牙设备对应的Proximity UUID、Major、Minor等属性信息。而刚采购来的蓝牙设备属性可能都相同,互相区别不开,所以我们需要设置每台设备的属性。

设备厂商都会提供相关手机应用,共用户设置属性信息。给蓝牙设备装上电池,打开手机应用,靠近蓝牙设备就能发现,然后就可以设置其属性值了,其中:

UUID是一个32位的16进制数,表示设备厂商,该字段可以沿用出厂设置

Major表示不同区域(比如:某一楼层、某一地区),取值范围0到6万多

Minor表示不同的设备,取值范围0到6万多

样例:UUID = e2c56db5-dffb-48d2-b060-d0f5a71096e0, Major = 1001, Minor = 10001

每台设备设置完属性后准备一个标签,填上属性信息,贴到设备上,方便以后部署。

3.部署蓝牙设备

首先,准备目标场地地图数据,可以是基于经纬度坐标,也可以是简单图片坐标,看具体使用情况。

接下来,将蓝牙设备挨个部署到场地指定位置上,顺便记录每个设备地理坐标或图片坐标。

最后,得到一张表格信息,记录着每台蓝牙设备属性和位置信息。这张表就是整个定位系统的指纹库,为定位算法使用。

4.客户端App开发

客户端app主要功能就是扫描周围蓝牙设备,将设备列表信息上传定位服务器,从而获得定位效果,并展现给终端用户。

4.1 Android应用开发

工程所需SDK版本大于17。

1. App所需权限(AndroidManifest.xml文件)

2. 创建beacon数据项类

public class IBeaconRecord {

public String address; // 设备地址(Mac)

public String uuid; // Proximity UUID

public int major; // Major

public int minor; // Minor

public int rssi; // 场强

}

其中,address属性可以不要,因为iOS设备获取不到该属性!