APP下载

iBeacon技术在智慧校园中的应用研究

2016-12-14吴栋淦

韶关学院学报 2016年8期
关键词:客户端基站服务器

吴栋淦

(福建信息职业技术学院计算机工程系,福建福州350003)

iBeacon技术在智慧校园中的应用研究

吴栋淦

(福建信息职业技术学院计算机工程系,福建福州350003)

传统校园应用体验性不佳.为了增强用户体验,文中介绍了一种基于iBeacon技术的升级应用.通过部署iBeacon基站和应用,用户可以在校园内实现室内定位,接收位置相关的通知.结论表明iBeacon技术的应用能够引导用户快速完成任务,提升用户体验.

智慧校园;iBeacon;室内定位

近几年来,物联网技术逐渐渗透到各个行业,物联网技术与传统的信息化教务系统结合,诞生了智慧校园应用.文中介绍了一种iBeacon技术在智慧校园中的应用,通过该技术的运用,实现了室内定位和基于位置的信息推送.

1 室内定位技术的发展现状

目前常用的室内定位技术有WiFi、红外线、蓝牙、RFID等,但是由于部署困难、定位精度不高等局限性,尚未有一套完善的室内定位解决方案.由于现代智能手机都提供了WiFi和蓝牙接口,用户终端多,因此具有广大的用户基础,可以直接使用用户手机来实现室内定位,无需在客户端额外增加模块,部署灵活性特别好.W iFi定位技术的原理主要是三角定位法,但是由于信号容易受到建筑物和电磁场的干扰,从而出现偏差.iBeacon是2013年美国苹果公司发布的室内定位系统,和其他定位技术相比,iBeacon易于部署,且具有低功耗、低成本的特点[1].iBeacon使用低功耗蓝牙技术(BLE)进行近距离的数据通信,当用户的移动互联网设备靠近iBeacon基站时可以感应到信号并进行相应的操作[2].iBeacon技术通过检测移动设备接收到的信号强度RSSI来分析距离,在参考基站足够的情况下,iBeacon可以获得比较准确的位置信息.目前iBeacon技术已经在国内外零售、旅游、展览、交通等行业得到广泛的应用.梅西百货是全球第一个部署iBeacon的大型零售商,实现了让用户根据精确位置收取优惠券、进行消费建议等功能[3].此外,罗马尼亚首都布加勒斯特的公交车导航服务,意大利动物生态园Torino和日本地铁JR东日本线都先后成功引入iBeacon来提供更精确的定位信息.不少国内外的图书馆也使用iBeacon来提高读者体验性,提供了全新的服务模式[4].

2 iBeacon工作原理

2.1工作模式

iBeacon使用低功耗蓝牙协议进行通信,iBeacon广播数据包包括三部分信息:UUID(16字节)、Major ID(2字节)和Minor ID(2字节)[5].这三部分信息用来标识一个独立的iBeacon基站,其中UUID可以用来表示某一个连锁机构的代号,Major ID可以用来表示不同地区,Major ID可以用来表示不同的房间,开发人员可以根据需要修改这些信息.

iBeacon使用开放的2.4 GHz频率发射接收信号,提供了两种工作模式:区域监测和测距.区域监测是当移动设备向基站靠近时能接收到该基站的信号,称为进入基站的区域范围,反之,如果移动设备向基站方向远离并脱离基站的信号范围,就称为离开基站的区域范围.区域监测只有两种结果:进入和离开.如果在一个百货商店中部署了大量的基站,基站之间存在信号重叠,那么移动设备在接收到第一个基站信号时就算进入区域范围,只有在无法接收到该商店的任何基站信号时才是离开区域范围.测距是通过移动设备接收到的RSSI信号强度来测算到基站的距离,距离值有几种:贴近(Immediate)、附近(Near)、较远(Far)和未知(Unknown).区域监测和测距的工作过程见图1.

2.2Estimote Beacon

Estimote Beacon是遵循iBeacon规范设计的一种小型低功耗无线传感器,部署一次电池寿命可以使用2年,有效传输距离50 m,推荐在10 m内使用,产品提供SDK简化用户部署[6].经过几年的发展,Estimote Beacon已经成为业内成熟的iBeacon解决方案.由于这些特性,文中的设计方案选用了Estimote Beacon作为iBeacon基站.

图1 iBeacon两种工作模式

图2 智慧校园工作流程图

3 iBeacon在智慧校园中的应用规划

3.1应用场景

目前的智慧校园应用没有室内定位的功能,基于位置的推送功能是基于GPS,在教学楼和图书馆使用受到一定的限制.在智慧校园中融合iBeacon技术能更好地提升用户体验,更精准地向用户推送消息.结合iBeacon的两种工作模式,智慧校园可以设计两种不同的应用场景.

(1)应用场景一.当用户进入学校区域时,感应到iBeacon基站,用户手机向特定的服务器发送注册信息,服务器根据用户的注册信息为用户选择性地推送消息.用户离开学校区域时,用户手机向特定的服务器发送注销信息,服务器同样为用户选择性地推送消息.根据iBeacon应用的特性,用户只需要在手机中运行一次智慧校园应用,即使手机在锁屏状态下感知到iBeacon基站也能使用这种模式.

(2)应用场景二.当用户打开手机中智慧校园应用时,手机感应到离自己最近的iBeacon基站,向应用服务器发送注册信息,应用服务器根据手机当前所在位置从数据库中查找符合条件的消息推送给用户手机,用户接收到消息后查看.每次手机感应到新的iBeacon基站都会激活一次上述过程,但是要求智慧校园应用必须在接近iBeacon基站时处于运行状态.

3.2业务流程规划

对学院的所有通知信息按照学院区域和部门进行分类,学院目前有三个校区,全院共享一个全局UUID,只要是移动设备监测到这个UUID就代表进入学院区域,可以针对用户类型推送不同信息,比如对教师和学生用户推送近日全院和本校区的重要通知、用户所在系部的教室调整和调停课安排,对教学管理用户推送会议通知和文件处理通知,对非授权用户(比如学生家长)推送学院宣传和专业介绍.

对全院所有单位进行编号,比如使用Major ID区分不同的校区或者部门,使用Minor ID区分具体场所.一种典型的做法是使用Major ID来划分校区,使用Minor ID来划分办公场地,如计算机工程系的3A实验室的Major ID和Minor ID分别为46598和6043.

应用服务器负责通知信息和数据的管理和存储,同时根据需要将通知信息推送给用户,其工作流程见图2,主要步骤有几个方面.

(1)用户手机初次启动智慧校园应用,向APNS服务器发送注册设备令牌请求,APNS是美国苹果公司提供的推送服务,用于向用户的苹果移动设备(如iPhone、iPad)推送消息[4,7];(2)APNS服务器向用户手机发送注册的设备令牌;(3)智慧校园应用将用户名和获取的设备令牌发送给应用服务器进行注册register,应用服务器将存储这些信息;(4)用户持手机接近iBeacon基站,手机感应到iBeacon基站(智慧校园应用需在使用状态),从所有信号中筛选出离自己最近的一个,读取此基站的UUID、Major ID和Minor ID;(5)智慧校园应用将用户名和基站信息发送到应用服务器进行签到sign in;(6)应用服务器根据策略筛选出将要推送给此用户的消息,加密后发给APNS服务器,由APNS服务器负责推送;(7)APNS服务器将消息推送给用户.

3.3应用服务器接口设计

为了便于智慧校园的数据交互,设计了一套应用服务器接口来处理注册(register)和签到(sign in)信息.注册子接口负责接收注册请求,由于用户数限制,目前注册子接口只有在用户通过教务系统认证成功后才允许使用,该接口会对用户名进行验证,注册子接口主要接收客户端的用户名和设备令牌两个参数进行存储,为了减轻服务器的压力,消息推送策略可以设置为只有在检测到用户注册信息后才进行发送.签到子接口在客户端检测到附近有iBeacon基站时使用,此接口对用户名、基站信息进行处理和存储,如果发现当前有符合策略的消息,则写入推送队列信息表,由其他进程负责处理.

注册子接口和签到子接口不负责推送信息,推送信息由一个专用的服务器进程push来完成,push进程的工作过程很简单,扫描推送队列信息表,把所有符合条件的数据逐一发送到APNS服务器,这个进程每隔一段时间(默认为1 min)执行一次.

4 iBeacon在智慧校园中的应用实现

4.1应用服务器接口实现

智慧校园原有的服务器接口已经实现了场景一的功能,现需要扩展功能实现场景二.服务器接口使用php作为开发语言,服务器注册接口为registerDeviceAndPostMessageApi,重要的函数有几个.

function getUsername():从POST数据中获取用户名;

function getUUID():从POST数据中获取Beacon的UUID;

function getMajorID():从POST数据中获取Beacon的Major ID;

function getMinorID():从POST数据中获取Beacon的Minor ID;

function handleRegister():处理用户的注册请求;

function handleSignin():处理用户的签到请求;

function makeBeaconNotification():在收到用户签到请求后查找符合条件的通知信息;

function makePayload($senderName,$text):构造推送信息;

function addNotification($token,$payload):将推送信息加入到推送队列表.

iBeacon签到和消息推送的处理逻辑集中在handleSignin函数中,此函数的业务流程为:从POST数据中获取相关信息如用户名、UUID等,根据此信息查找系统中60 s内是否存在使用相同用户名、设备令牌、UUID、Major ID和Minor ID签到的数据,检查的目的是为了避免客户端频繁使用相同的iBeacon信息向服务器发送签到信息,如果不能找到60 s内的同类信息,则将iBeacon信息和用户信息写入数据库,接下来从数据库搜索与此iBeacon位置关联的通知信息,找到后构造推送信息并写入推送队列表.

推送进程在原有的系统中已经使用,无需进行更改,该进程负责与APNS服务器通信,将推送队列表中所有没有完成发送的数据逐条发送给APNS服务器,由APNS服务器负责将数据推送给用户设备.

4.2客户端实现

理论上,移动客户端可以是iPhone、iPad(需要网络)和Android,但由于Android无法使用苹果公司的APNS服务,因此Android要使用还需要后续改造.文中以iPhone为例实现客户端,开发环境为Xcode 7.3,iBeacon SDK为Estimote Beacon SDK 4.7.1,开发语言为Objective C.

客户端需要同时支持前文中的两种应用场景,因此iBeacon的处理逻辑需要在AppDelegate中实现.AppDelegate需要从配置文件中读取iBeacon的UUID等信息,使用此信息启动ESTBeacon(Estimote Beacon)的监测和测距功能,在相应的iBeacon的代理方法中处理业务,相关代码如下:

-(void)startESTBeacon;//此函数用于创建ESTBeaconManager实例,从配置文件中读取要监测iBeacon的UUID,并启用监测.

-(void)beaconManager:(id)manager didEnterRegion:(CLBeaconRegion*)region;//当用户手机进入指定UUID的iBeacon信号范围时调用此函数.

-(void)beaconManager:(id)manager didExitRegion:(CLBeaconRegion*)region;//当用户手机离开指定UUID的iBeacon信号范围时调用此函数.

-(void)startRangingBeacon;//此函数启用iBeacon的测距功能,即使用设备对周围的iBeacon进行距离测量.

-(void)stopRangingBeacon;//此函数关闭iBeacon的测距功能,由于开启测距功能会消耗更多电池,因此在无需使用时建议关闭.

-(void)beaconManager:(id)manager didRangeBeacons:(NSArray*)beacons inRegion:(CLBeacon-Region*)region;//当设备接收至少接收到一个iBeacon测距信号时调用此函数,系统将自动将所有iBeacon按照RSSI信号强度排序后放入数组[8].

客户端实现的重点在设备接收到测距信号后的处理部分,这部分需要根据iBeacon的UUID、Major ID和Minor ID读取此iBeacon的位置提示信息并显示,然后使用iBeacon信息和用户信息向应用服务器签到,签到使用HTTP POST方法,签到部分代码如下:

-(void)signinToBeaconServer:(NSDictionary*)inParam

{NSDictionary*new Info=

@{kBeaconUtilityCurrentUUIDStr:(NSString*)[inParam valueForKey:kBeaconUUIDString],

kBeaconUtilityCurrentMajorStr:(NSString*)[inParam valueForKey:kBeaconMajorString],

kBeaconUtilityCurrentMinorStr:(NSString*)[inParam valueForKey:kBeaconMinorString]};//使用iBeacon等信息构造检查参数

BOOL willSend=[self.beaconUtil willSendUpdateInfo:newInfo];//检查是否需要进行签到,只有在60秒内没有检查到同类签到信息时才会真正发送签到数据

if(!willSend)

return;

//下面取出用户ID、用户名、设备令牌deviceToken、UUID、Major ID和Minor ID

NSString*userId=(NSString*)[self.basicInfo valueForKey:kAccountNo];

NSString*userName=(NSString*)[inParam valueForKey:kServerUserNameString];

NSString*deviceToken=(NSString*)[self.basicInfo valueForKey:kServerDeviceTokenString];

NSString*uuid=(NSString*)[inParam valueForKey:kBeaconUUIDString];

NSString*major=(NSString*)[inParam valueForKey:kBeaconMajorString];

NSString*minor=(NSString*)[inParam valueForKey:kBeaconMinorString];

NSDictionary*params=@{kServerCMDString:kServerCMDSignin,kServerUserIDString: userId,kServerUserNameString:userName,

kServerDeviceTokenString:deviceToken,kServerAppTokenString:@"mituTeacherClient",

kBeaconUUIDString:uuid,kBeaconMajorString:major,

kBeaconMinorString:minor};//构造签到的POST参数

MituApiEngine*serverEngine=[[MituApiEngine alloc]initWithHostName:kServerApiEndPointUrl];//准备发送POST数据

self.operation=[serverEngine request:kServerRegisterURL params:params accountType:kTeacherAccount com pletionHandler:^(NSData*data)

{//这里处理POST的返回数据,默认不处理}

errorHandler:^(NSError*error)

{NSLog(@"Register client to server fail:%@",error.description);//出错处理}];}

4.3测试结果

在计算机工程系各办公室和机房部署Estimote Beacon模块,手机中开启智慧校园客户端(需开启蓝牙功能),模拟用户接近办公场所的过程,可以获得消息推送,(见图3).作为对比,GPS在室内无法接收到信号,而WiFi定位需要依赖地标建筑部署的信号发射基站,无法准确定位到具体楼层和办公室.

图3 客户端运行截图

5 结论

经过测试,证明iBeacon技术可以在智慧校园中发挥GPS和WiFi等技术难以替代的作用,特别是在招聘会、新生入学注册等场合,更是可以发挥iBeacon的优势,通过与现代网络技术的结合,快速有效地引导用户完成任务.通过多个基站的配合(4个或4个以上),iBeacon技术还能在室内中完成更加精确的定位,智慧校园将把这点作为今后的研究方向之一.

[1]张倬胜,马方方,薛静远,等.基于iBeacon的精细室内定位方法研究[J].地理信息世界,2015,22(2):26-30.

[2]吴栋淦.基于iBeacon的智能导览系统的设计与实现[J].贵阳学院学报(自然科学版),2014,9(4):9-13.

[3]威锋网.美国老牌零售商梅西率先部署iBeacon技术[EB/OL].[2016-01-08].http://www.feng.com/apple/news/2013-11-21/U.S. _veteran_retailer_Macy_s_first_deployment_iBeacon_technology_569097.shtm l.

[4]邵波,连朝曦,刘啸.基于iBeacon的图书馆智能定位系统构建[J].图书馆学研究,2016,(9):12-17.

[5]Apple Inc.Getting Started with iBeacon[EB/OL].[2014-06-02].https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf.

[6]The Estimote Team Blog.Reality matters[EB/OL].[2015-02-02].http://blog.estimote.com/post/106913675010/how-do-beacons-work-thephysics-of-beacon-tech.

[7]Apple Inc.Local And Remote Notification Programming Guide[EB/OL].[2016-09-20].https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/Introduction.htm l.

[8]Apple Inc.Location And MapsProgramm ing Guide[EB/OL].[2016-03-21].https://developer.apple.com/library/content/documentation/User-Experience/Conceptual/LocationAwarenessPG/Introduction/Introduction.htm l.

Research On App lication O f iBeacon Technology in Intelligent Cam pus

WU Dong-gan
(Computer Engineering Department,Fujian Polytechnic of Information Technology,Fuzhou 350003,Fujian,China)

Traditional campus application has poor experience.In order to improve user experience,this paper introduces an upgraded application based on iBeacon technology.Through the deployment of iBeacon base stations and applications,the user can perform indoor positioning in the campus,and receive location related notification. The conclusion shows that the application of iBeacon technology can guide users to quickly complete the task and promotesuserexperience.

intelligent campus;iBeacon;indoor location

TP393.08

A

1007-5348(2016)08-0026-05

2016-09-01

2015年福建省中青年教师教育科研项目(科技)(JA15678).

吴栋淦(1979-),男,福建浦城人,福建信息职业技术学院计算机工程系讲师,硕士;研究方向:网络与软件.

(责任编辑:欧恺)

猜你喜欢

客户端基站服务器
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于移动通信基站建设自动化探讨
可恶的“伪基站”
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
基于GSM基站ID的高速公路路径识别系统