集成iBeacon技术的移动教学系统设计

2019-10-08 06:52彭毅弘
软件 2019年4期
关键词:移动教学室内定位考勤

摘  要: 针对高校考勤效率低、课堂互动性手段少、资源共享实时性低等问题,通过对iBeacon定位技术的分析研究,以微信公众平台为依托,实现了集成iBeacon技术的移动教学系统的设计与开发。系统兼容iBeacon室内精确定位和GPS定位两种方式,使用手机登录微信公众号就能完成考勤、信息查询、教学互动、实时数据统计和报表生成等功能。系统具有建设成本低、灵活度高和实用性强等特点,已在多个高校顺利通过现场测试,效果良好,大大提升了线下课堂教学的考勤效率和互动性。

关键词: iBeacon;室内定位;移动教学;微信;考勤

中图分类号: TP391    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.04.011

本文著录格式:彭毅弘. 集成iBeacon技术的移动教学系统设计[J]. 软件,2019,40(4):5660

【Abstract】: For the problems of low efficiency in college attendance, less interactive means in the classroom, and low real time sharing of resources, the mobile teaching system integrated with iBeacon technology is completed based on WeChat public platform through the analysis and research of iBeacon positioning technology. This system is compatible with iBeacon indoor positioning and GPS positioning, use mobile phone to login WeChat public number can complete attendance, information inquiry, teaching interaction, real-time data statistics, report generation and other functions. The system has the characteristics of low construction cost, high flexibility and practicability, and have good test results in several universities, greatly improves the attendance efficiency and interaction of offline classroom teaching.

【Key words】: iBeacon; Indoor location; Mobile teaching; WeChat; Attendance

0  引言

智能手机的全面普及催生了各种移动教学系 统[1],利用智能手机的定位功能和联网功能,系统可以把功能拓展到线下的现场授课管理,更好地克服了现场教学活动地点随机性、学生人数多和教学内容应变性等问题。目前主流的移动教学系统主要有考勤、实时互动、线上授课、资料分享和数据分析五大功能[2],在考勤功能上更多是依赖智能手机的GPS定位功能,但GPS无法在室内准确定位,而且还可以利用软件篡改位置,为了克服这些缺陷,

本项目在设计移动教学系统时引入iBeacon定位技术,同时考虑到微信在学生群体中具有较高的使用率和黏着度,后续更容易促进教育普及和平台多样化构建[3],因此采用微信公众号平台进行开发。

1  iBeacon技术分析

1.1  iBeacon的技术优势

iBeacon是蘋果公司在2013年发布的一种基于低功耗蓝牙(BLE)通信的精确位置感知技术,其工作方式是通过蓝牙的广播频道向周围发送自己特有的ID,但本身无法接收消息,接收到该ID的设

备会使用应用程序APP与后台系统进行交互,从而实现近场感知和定位等服务[4]。相对于传统的WiFi或GPS定位系统,基于iBeacon技术的定位系统有如下几点优势[5]:

(1)定位更精准。在拓扑合理、算法适当的情况下,iBeacon定位精度可达到厘米级别,能有效克服GPS无法在室内准确定位的缺点。

(2)部署方便,成本低。iBeacon设备外围电路极为简单,天线多为板载天线形式,配上一粒纽扣电池,体积通常不超过1元硬币大小,部署起来非常方便。

(3)超低功耗。一粒普通的纽扣电池可供一个iBeacon设备使用1~2年时间。

(4)强大的编程功能。通过调用iBeacon技术提供的API 接口,可实现丰富的应用拓展功能。

(5)适用广泛。所有搭载有BLE4.0以上版本的设备都可以作为iBeacons技术的发射器和接收器。

1.2  定位原理

iBeacon是一种基于蓝牙的2.4G射频技术[6],利用广播方式,以一定的时间间隔发送数据包,数据包格式按如下顺序从低到高分别是:

(1)iBeacon prefix(9字节):02 01 06 1A FF 4C 00 02 15

(2)Proximity UUID(16字节):iBeacon设备厂商识别号

(3)Major(2字节):相当于群组号,同一个组里iBeacon设备有同样的Major

(4)Minor(2字节):相当于识别群组里单个的iBeacon设备

(5)TX power(1字节):发射功率。

UUID+Major+Minor构成了一个唯一的iBeacon设备识别号,类似于网络中的IP地址。当iBeacon设备在一个区域内广播自己的信号时,通过识别号就完成了对一个特定区域的标记。

TX power是距离iBeacon设备1米测得的信号强度值,用于计算距离。根据无线信号空间传播的能量衰减规律,蓝牙信号的能量强度将随着传播距离的增大而衰减[7],计算接收设备和iBeacon设备距离的计算公式如式(1)所示。

d=10^((abs(RSSI)A)/(10*n)) (1)

其中,d是收发设备间距离,RSSI是接收信号强度,A是接收端和发射端相隔1米时的信号强度, n是环境衰减因子,一般取经验值。获取到RSSI值和A值,便可求得距离d。

2  系统设计

2.1  业务分析

本系统的主要使用者是学生和教师,根据角色的使用需求进行建模,归纳出四大业务功能,分别是信息管理、身份认证、教学工具和报表统计。信息管理包括个人资料、学生名单导入、学生名单查询/编辑等功能,身份认证包括注册和登录,教学工具包括签到、课堂互动、课表查看等功能,报表统计主要是考勤报表的展示和导出。在注册阶段,通过选择学生或教师的不同角色,得到不同的功能界面。学生端的主要功能包括签到、查询考勤情况、设置个人信息和查询课表等,教师端的主要功能包括签到、设置课程、导入学生名单、查询签到情况、查询课表等。其中教师端的签到功能具有补假助签、签到方式设置和开启签到三种功能。针对学生的请假、补假、手机损坏、忘带手机或手机无法上网而造成无法通过本系统签到的情况,可以通过教师端的补假助签功能完成考勤状态的修改。签到方式有GPS方式和iBeacon方式两种可以选择,如果对考勤位置要求不高,或者教师忘记携带iBeacon设备,可以开启GPS签到方式,这种方式要求学生手机也要开启GPS定位功能,通过计算学生和教师的距离来判断是否可以签到。GPS的位置测算在室内误差较大,所以一般建议采用iBeacon方式进行签到。系统通过兼容两种签到方式,能够提高系统使用的灵活性,既能低成本的使用GPS方式,也能切换到高精度iBeacon定位从而确保考勤数据准确度,对于系统的普及和推广有很大的帮助。一旦教师开启签到功能,系统默认学生签到时间在5分钟内完成,5分钟时间一到即关闭签到功能,当然教师也能设置一次签到的时间长度。教师可以在课堂的任何时间,开启签到功能多次,最终在课程结束时间会生成当次课程的考勤报表,以供学生和教师随时查看或导出使用。考勤数据实时自动同步至服务器,从而实现数据在各用户间的无缝共享。

2.2  系统拓扑设计

系统拓扑设计如图1所示。当系统采用iBeacon定位方式时,手机开启蓝牙功能,一旦进入iBeacon基站的信号范围,手机就能接收到iBeacon的设备识别号,然后通过4G或Wifi与后台服务器进行通信,从而完成签到、课堂互动等功能。系统会根据获取到的学生手机和教师手机的当前位置计算距离,该距离只有在约定范围内的学生手机才能完成签到功能。后台服务器主要包括负责用户身份认证的微信公众号平台服务器、为用户提供服务的应用服务器以及存储数据的数据服务器。系统还提供后台管理功能,统一管理和设置用户身份信息、课程信息、签到数据和学校相关信息等。

2.3  系统总体逻辑架构设计

移动教学系统包括硬件设备、数据处理、基础软件和应用软件,系统的各组成部分划分成5个逻辑层次[8],如图2所示。硬件设备和位置感知层为系统提供硬件基础设施,教师可随身携带iBeacon基站,教师手机和学生手机通过网络进行数据同步;数据处理层负责各种数据的建模和处理;业务逻辑层负责实现相关应用的逻辑处理;应用层实现了系统的应用功能;在表示层,用户通过手机登录微信公众号就能使用系统的功能,无需额外安装App。

3  系統关键技术实现

3.1  开发和部署环境

在移动教学系统的设计与实现过程中,Web应用服务器采用Tomcat服务器,框架采用Spring MVC+ Hibernate框架。数据库服务器选用MySQL数据库以满足系统的性能要求。开发环境采用开源工具Eclipse。手机端结合微信API技术进行界面研发。

iBeacon基站选用北京SENSORO公司自主研发的云子设备,其核心采用了Nordic nRF51822芯片,发射功率30 dBm到+4 dBm可调节,传输距离3米至80米可分档调节,广播频率100ms至1285ms可分档调节。通过调节发射功率、传输距离和广播频率,可以优化信号覆盖范围及信号传输效率。

3.2  集成iBeacon基站

首先通过在微信公众号后台申请iBeacon设备号,然后通过移动教学系统的后台,把该设备号与提出申领iBeacon设备的教师ID在数据库中关联起来,此时每个教师对应一个唯一的iBeacon设备号。在使用iBeacon设备之前,先把绑定的设备号设置进该iBeacon设备中,同时激活设备。上课时登陆微信公众号启动签到功能,学生只要进入iBeacon设备的广播范围,通过登陆公众号学生端,就能成功签到。

3.3  签到功能实现

完成签到的过程中,关键功能是对iBeacon设备的查找和识别。基于微信公众号平台,可以使用微信JS-SDK来查找iBeacon设备[9]。具体流程是:

(1)为公众号绑定域名。

(2)在调用JS接口的页面引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.2.0.js 。

(3)通过config接口注入如下权限验证配置 信息:

wx.config({

debug: false,

appId: '',

timestamp: ,

nonceStr: '',

signature: '',

Jsapilist:[

'openLocation',

'startSearchBeacons',

'getLocation',

'stopSearchBeacons',

'stopSearchBeacons',

'openLocation' ]

});

appId是公众号的唯一标识,timestamp是生成签名的时间戳,nonceStr是生成签名的随机串,signature是签名,JsApiList是需要使用的JS接口列表,列表中的startSearchBeacons就是能够获取到iBeacon设备信息的接口函数。以上的参数需要在后台写一个接口获取。

(4)获取权限验证配置信息参数的接口实现方法是[10]:使用AppID和AppSecret获取access_token,access_token是公众号的全局唯一票据,通过这个access_token来获取jsapi_ticket,得到jsapi_ticket意味着得到了公众号用于调用微信JS接口的临时票据,就可以生成JS-SDK权限验证的签名了。生成前签名数据signature的公式见公式(2)

Signature = sha1(string1) (2)

公式(2)中string1由nonceStr、有效的jsapi_ ticket、timestamp和当前网页的URL按照字段名的ASCII 码从小到大排序后,使用URL键值对的格式拼接而成。对string1进行sha1签名,便得到signature。

(5)通过正确的签名,获得调用微信JS接口的权限,就可以直接使用以下函数搜索到周边iBeacon设备:

wx.startSearchBeacons({

complete: function(result) {

});

result为搜索到周边iBeacon设备后返回的结果集,结果集中包含了周边iBeacon的设备号以及距离等信息。距离数据就是学生手机与教师所持iBeacon设备的距离,通过公式(1)计算所得。

通过匹配学生当前的上课时间,能够识别出当前上课的教师ID,从而得到绑定的iBeacon设备号,最终得到准确的距离。当该距离超出一定范围,例如超出50米范围,则认为该学生不在教室内,无法进行签到。如果距离符合要求,则允许学生将签到信息提交到服务器,服务器将签到数据进行整理分析,从而标记此学生当前的上课状态。教师端同步刷新签到数据,实现签到数据的实时共享。

3.4  数据处理难点与解决方法

系统数据库采用MySQL数据库,数据处理的难点在于数据使用的交叉性[11]。例如排课表和签到数据表同时关联到教师和学生两个不同角色的操作和查看,在修改数据时容易导致数据与两个角色直接关联属性的丢失,同时会产生较多的冗余数据。以考勤数据为例,教师添加排课后数据库得到排课表,排课表里有关联的班级,当学生加入对应班级后,排课表就会与学生关联起来,然后系统就能计算出学生需要签到的排程数据。每天凌晨1点左右,通过系统程序设定好的定时器,生成当天需要签到

的排程数据。在生成排程上使用了性能稳定的Quartz开源作业调度框架[12]。这种方式会遗留两个问题:第一,如果学生在生成当天签到排程之前,没有完成注册和加入班级的操作,数据库中将不会有这个学生的签到排程;第二,如果教师在生成签到排程之后对排课表或者班级数据进行了调整,签到排程将可能会错误。以上问题通过添加触发器来处理,对于新加入到班级的学生,当学生加入成功后会产生一个事件,事件触发系统去计算当天是否有课程,从而决定要不要往数据库添加新的签到排程。教师对课程表的修改也类似的产生一个修改事件,然后触发系统对排程的校验,从而决定是否需要修改与之相关的签到排程。

另外,由于数据库每天会产生很多新的考勤数据,如果一直累积,数据量将会非常庞大。为了提高系统的性能和稳定性,将每天新的签到数据和历史签到数据进行了分离,使得每天签到的排程里只有当天的数据,极大提高了系统的性能。对于历史签到数据,由于其修改的要求和频率不高,所以将这些数据固化到报表里面,系统会在每天凌晨时生成数据报表,供不同角色查询。

4  应用成效

本系统在试用阶段,注册教师20人,注册学生2043人,涉及8个学校12个专业,对系统的四大业务功能模块信息管理、身份认证、教学工具和报表统计进行测试和验证。其中10个教师使用iBeacon定位方式进行考勤,另外10个教师使用GPS定位方式进行考勤。表1列出了主要模块的实测结果。

通过实测,验证了系统软硬件的可行性和可用性,实现了灵活的线上资源分享功能,大大提高了课堂考勤效率,同时实现了数据的实时共享和多渠道获取。

5  结语

本系统具有课堂互动性强、考勤效率高、资源实时共享、硬件部署成本低等优势,是利用物联网和移动互联网技术优化教学过程的一种全新实践。系统后期的功能拓展是多方面的,例如系统中的签到功能可以进一步应用在超百人会议的快速签到、户外活动的人员跟踪等。通过增加慕课模块,进一步发展成线上教学和线下教学的深度结合。

参考文献

[1] 罗春花. 基于云计算+订阅号的程序教学系统开发实现[J]. 软件, 2018, 39(7): 12-16.

[2] 杨公义, 何山, 王肖群, 等. 北京大学公开课信息系统的开发[J]. 软件, 2018, 39(5): 09-17.

[3] 龚让声, 李素桂, 林敏. 基于微信公众平台的慕课建设平台的设计与实现[J]. 软件, 2018, 39(2): 218-222.

[4] 林信川, 游贵荣. 基于iBeacon的课堂自动考勤系统设计与实现[J]. 重庆科技学院学报(自然科学版), 2017, 19(01): 97-100.

[5] 马创. 基于iBeacon技术在移动数字化校园中的应用[J]. 科技创新与应用, 2017(36): 123+125.

[6] 刘恺, 张仕斌. 基于IBeacon的室内定位技术发展综述[J]. 科技风, 2017(02): 2-3.

[7] 胡偉娅, 陆佳亮, 伍民友. 基于RSSI与惯性测量的室内定位系统[J]. 计算机工程, 2013, 39(11): 91-95.

[8] 吴小竹, 陈崇成, 刘先锋, 李界光, 方莉娜. 集成IBeacon室内定位的文化旅游虚拟导览系统[J]. 计算机工程, 2016, 42(10): 6-11.

[9] 陈恒, 李宏达, 赵晓艳. 基于微信的大学课堂点名系统的设计与实现[J]. 软件, 2018, 39(3): 45-47.

[10] 夏凌云, 龚文涛. 基于微信公众平台和iBeacon的智慧校园LBS应用设计[J]. 微型电脑应用, 2016, 32(12): 50-53.

[11] 季菁苇. 计算机数据库技术在信息管理中的应用研究探讨[J]. 软件, 2018, 39(6): 160-163.

[12] 刘光明, 朱肖颖. Web应用与Quartz的整合研究[J]. 企业科技与发展, 2018(03): 114-116.

猜你喜欢
移动教学室内定位考勤
基于人脸识别技术的考勤应用研究
智能人脸识别考勤系统
便携式指纹考勤信息管理系统设计
移动教学在生物信息学课程改革中的应用
“最严考勤”难留学生心