iBeacon蓝牙定位技术

96
杨杨1314
2018.09.27 16:42 字数 1012

一:iBeacon 介绍

iBeacon 是苹果公司推出的一项室内定位技术,可以让附近的手持电子设备检测到由一个 iBeacon 信号发射器发出的蓝牙信号,通过软件和硬件的结合,从而大大提高室内精度,从原来的几百米,几十米,提高到一米以内的定位精度,它采用了基于蓝牙4.0的低功耗蓝牙技术(Bluetooth Low Energy, BLE),主要是用作辅助室内定位的功能.iBeacon信号覆盖的范围在(50~80米)内,用户可以通过微信或者定制开发的应用程序获取到iBeacon的信息。比如:当iBeacon贴在 商户的门店之内就可以发送优惠券、红包、签到等等;

二:iBeacon中有两个角色

发射者: 一般都是各种硬件
接收者: 一般都是智能终端(手机)

发射者通过广告通信通道,以一定时间间隔向外广播数据包(一般是每秒两三次),接收者可以通过终端提供的功能来接收,达到信息的交互。

三:iBeacon的数据组成

每个信号中要由这几种资讯构成,分别是UUID(通用唯一标识符)、Major、Minor、Rssi、Proximity、Accuracy。

1:UUID 一段32位16进制数,这是将你所有的ibeacon与其他人的ibeacon区别开的id。我们平时做扫码或者签到这种功能的时候,一个设备对应一个uuid就可以。

2:Major 16位的标识符。用于将相关的ibeacon设备标识为一组。例如:一个商店把所有的ibeacon分配到相同的编号。通过这个编号,就能知道顾客位于哪一家商店。

3:Minor 16位的标识符。用于标识特定的ibeacon设备。例如:一个商店为每个ibeacon设备分配了唯一的Minor,这样就能知道顾客位于商店的哪个位置。

4:Rssi: 信号强度

5:Proximity: 发射者到接收者的距离(据说是iOS里面有的 ,是个枚举: Unknow, Immediate, Near, Far)

6:Accuracy: 水平精度,就是ibeacon距离手机设备的距离。

四:影响ibeacon的距离

far.png
距离较近时.png
有障碍物时影响距离.png

其实,发射者也就是硬件向四周不停地广播信号,而信号就像是水波一样像四周扩散,越靠近中心点的水波越高也就是 rssi 信号越强,而一旦有东西阻隔,信号就会减弱甚至消失,而且一旦超过一定值,信号就会消失,这说明 iBeacon 的广播范围是有限的。

五:设备管理

iBeacon设备通过胶水、磁力粘贴,设备技术不成熟,而且电池的是有使用寿命的,某个设备发生故障,是不能够预知的。所以,需要投入的人力以及物资成本是相对较多的。

六:蓝牙机制的本质

iBeacon的精准信息推送其本质上是连接网络的,蓝牙只是充当数据包的发送,从而激活移动端上的APP,通过后台传输蓝牙数据包并解密,最后通过4G网络或者WiFi下载相应内容,所以其本质需要数据网络的连接。

七:小程序关于用iBeacon做一个签到的例子说明

image.png
用到的小程序API

1: 获取网络类型
wx.getNetworkType(Object object)
2:监听网络状态变化
wx.onNetworkStatusChange(function callback)
3:查找蓝牙设备
wx.openBluetoothAdapter(Object object)
4:监听蓝牙状态的改变
wx.onBluetoothAdapterStateChange(function callback)
5:搜索附近的 iBeacon 设备
wx.startBeaconDiscovery(Object object)
6:监听iBeacon 服务的状态变化
wx.onBeaconServiceChange(function callback)
7:停止搜索附近的 iBeacon 设备
wx.stopBeaconDiscovery(Object object)

日记本