基于beacon定位的学习场景研究
2017-04-25熊维祥
熊维祥
摘要:本文着重研究算法和软件的实现过程,从ibeacon原理出发,分析技术特点,规避技术漏洞。开发研究过程中利用协调关系函数,优化基站模型,有效避免了环境信号干扰,通过循环过滤事件将实时性和准确率最优化。
关键词 :beacon;定位;蓝牙
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)02-0251-02
1 引言
无线传感器网络由于其巨大的应用前景引起国内外众多研究者和工业界的青睐。其集感知、计算、无线通信能力为一体, 通过各类微型传感器对感知目标进行实时监测并产生大量的感知数据[1]。低功耗蓝牙等无线设备也越来越多地运用于感知学习领域,增强了体验式经济发展的前景[2]。
低功耗蓝牙(Bluetooth Low Energy,BLE [3])设备在2013年由苹果公司率先推出,以ibeacon基站为主的蓝牙定位设备也开始应用于人们的日常生活。目前,我国教育领域对于ibeacon的应用开发局限于图书馆、博物馆的定位[4],没有将ibeacon的功能充分挖掘出来。而涉及定位算法、软件开发的研究占少数,其中的算法多为基于二维的三环算法或指纹算法,忽视了现实的空间因素。本文将针对研究领域内教育产品的不足进行手机系统和定位算法进行研究设计。
2 系统设计
2.1 设计目标
1)基于现实搭建ibeacon基站环境,设计区域定位算法和精确点算法实现泛定位和精确定位。
2)设计并制作定位模型,与定位算法相匹配。
3)利用java中Bluetooth_Service接口制作android终端APP,要求能够根据实时环境更新距离数据。
2.2 设计准备
2.2.1 基站选择
本次研究的Beacon基站选用April beacon,测试过程使用2台,Txpower均為-58;其参数信息如表1所示:
其中UUID为唯一标识符,是区分基站最准确的属性,当有同组基站信号干扰时,终端应用只需检测UUID就能排除干扰因素。Beacon利用BLE接近感知技术,终端得以识别UUID及实时RSSI信号强度,将信号衰减量通过数据算法转化为物理距离,从而实现区域定位。
2.2.2 系统层次设计
2.3 算法设计
2.3.1 RSSI模型
本文对于RSSI的模型采用传统对数一常态分布模型,在实验过程中,由于环境变量的因素,本文在传统公式的基础上做了相应改进。RSSI由信标节点发送,由接收到此信号的未知节点测量而得。在不考虑信号增益的条件下,信号接收强度等于信号发射强度减去信号传播损耗。而自由空间信号模型和对数—常态分布模型是信号传播损耗的理论模型中最常用的两种模型[5]。传统对数模常态分布模型在真实情况下受时间片长度影响会出现波动误差,对于RSSI精确读数负面干扰较强
[RSSI=-abs(10*klgPtPodptdpo)] (1)
Pt是空间环境中相距t(m)时信号强度损耗;Po是理想环境下距离为o时的强度损耗
;k为信号强度损耗系数,实验中系数取值在1:1到10:1之间。
2.3.2 双基站定位算法
测距方案采用基于分析RSSI信号强度实现,终端接口层接受BLE信号,根据RA(终端与基站相距1m时的RSSI强度)和实际测量值,计算出相距距离。
测距模型算法如下:
[D=abs(Ri-RA)/n*10] (2)
Ri是RSSI的实际测量值,接收功率的单位是dBm;n为信号衰减因子,与测量环境和干扰因素相关。此模型忽略了高斯分布随机变量,原因在于手机程序在进行指数对数计算时必须取整形,为了提高精确度而未使用随机变量。
设双基站坐标为i1(i1x , i1y),i2(i2x , i2y)。消息弹出区域信号如图:
设置两基站各发出双环,i1内环半径为d1,外环半径为d2;i2内环半径s1,外环半径s2。各半径在应用时可以不相等。区域判定算法如下:
If(get_device(0)&&get_device(1))
{If((get_device(0).RSSI-RA)/n*10>=d1&&(get_device(0).RSSI-RA)/n*10>=d2)
{if((get_device(1).RSSI-RA)/n*10>=s1&&(get_device(1).RSSI-RA)/n*10>=s2)
{Return true;}}}
实际测试中RA为整形常量,取值-43;信号衰减系数n为单精度常量,取值2.5。
触发区域数学计算模型如下:
[0r1d22-x2d2-s21-x2s1] (3)
[0r2s22-x2s2-d21-x2d1]
其中r1为d2环与s1环焦点到y轴长度,r2为s2环与d1环焦点到y轴长度。实际应用时须将s1、s2、d1、d2带入,连立方程求得r1、r2的值。
3 应用设计
3.1 应用背景
目前国内主流的智能导览系统主要分为两种类型: 专用的导览系统和以移动互联网设备为载体的通用导览系统。专用的导览系统是一种软硬件定制的设备,能够自动感应、自动讲解,参观者携带导览系统进入区域后,使用无线射频技术来自动感应,不受到参观路线的限制。以移动互联网设备为载体的通用导览设备以软件形式存在,一般在手机、平板电脑上使用,也可以通过扫描景点的二维码来获得景点的介绍和讲解,该类型的导览系统体验性明显不如专用型的导览系统。[6]
3.2 蓝牙数据包结构
BLE 的数据包结构,前导字符占用 1 个字节,接收方使用前导字符来进行频率同步。访问地址占用 4 个字节,访问地址决定了数据包是在广播信道还是数据信道上发送。用于广播信道的访问地址固定为 0x8E89BED6,数据信道的访问地址在设备初始化状态时随机生成。接下来是长度为 2-39 个字节的协议数据单元,上层数据将被封装在这里。最后是 3 个字节的循环冗余校验码。
3.3 终端开发
IBeacon 作为蓝牙网络中的外围设备LeDeviceListAdapter,设备启动后需要按照顺序对链路层、硬件抽象层、主机控制器接口、操作系统抽象层、逻辑链路控制和适配协议、通用访问配置、通用属性配置、安全管理器等进行初始化。
在主类添加BLE设备函数如下:
public void addDevice(iBeacon device) { //添加函数所传参数为自定义iBeacon类
if(device != null) { //判断设备是否为空
for(int i = 0; i < this.mLeDevices.size(); ++i) { //不为空时进入循环,mLeDevices为当前Arraylist,泛类为iBeacon型。
String btAddress = ((iBeacon)this.mLeDevices.get(i)).bluetoothAddress;
// 将蓝牙设备地址信息转换为string类型并在如下判断语句中进行比对。}}
4 结论
在本次开发研究中,研究者提出了不同于常规双环定位的新颖算法:以单基站的回显数据作为初步参考数据,在给定范围内加入第二基站数据进行综合分析,过滤震荡干扰,使最终定位距离区域稳定。固定基站或移动基站都不干扰终端数据的正常显示,这得力于函数设计中的控制循环,以及设备信号范围判断。本次研究成果可投入到较封闭的室内环境,在限定范围内对情景感知类学习有较好的应用前景。
参考文献:
[1] 李超.基于Beacon技术的儿童游乐项目设计研究[J].设计艺术研究,2015(4).
[2] 陈和康.一种Beacon协助的传感器网络定位方法[J].计算机应用与软件,2009(2).
[3] Wikipedia.Bluetooth Low Energy[DB/OL].https://en.wikipedia.org/wiki/Bluetooth_low_energy
[4] 陈翠琴.基于iBeacon技术的“互联网+”智慧校园应用研究[J].电子技术与软件工程,2015(21).
[5] 谭志.无线传感器网络RSSI定位算法的研究与改进[J].北京邮电大学学报,2013(3).
[6] 吴栋淦.基于iBeacon的智能导览系统的設计与实现[J].贵阳学院学报:自然科学版,2014(4)