摘 ?要: 針對高??记谛实?、課堂互動性手段少、資源共享實時性低等問題,通過對iBeacon定位技術(shù)的分析研究,以微信公眾平臺為依托,實現(xiàn)了集成iBeacon技術(shù)的移動教學(xué)系統(tǒng)的設(shè)計與開發(fā)。系統(tǒng)兼容iBeacon室內(nèi)精確定位和GPS定位兩種方式,使用手機登錄微信公眾號就能完成考勤、信息查詢、教學(xué)互動、實時數(shù)據(jù)統(tǒng)計和報表生成等功能。系統(tǒng)具有建設(shè)成本低、靈活度高和實用性強等特點,已在多個高校順利通過現(xiàn)場測試,效果良好,大大提升了線下課堂教學(xué)的考勤效率和互動性。
關(guān)鍵詞: iBeacon;室內(nèi)定位;移動教學(xué);微信;考勤
中圖分類號: TP391 ? ?文獻標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.04.011
本文著錄格式:彭毅弘. 集成iBeacon技術(shù)的移動教學(xué)系統(tǒng)設(shè)計[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 ?引言
智能手機的全面普及催生了各種移動教學(xué)系 統(tǒng)[1],利用智能手機的定位功能和聯(lián)網(wǎng)功能,系統(tǒng)可以把功能拓展到線下的現(xiàn)場授課管理,更好地克服了現(xiàn)場教學(xué)活動地點隨機性、學(xué)生人數(shù)多和教學(xué)內(nèi)容應(yīng)變性等問題。目前主流的移動教學(xué)系統(tǒng)主要有考勤、實時互動、線上授課、資料分享和數(shù)據(jù)分析五大功能[2],在考勤功能上更多是依賴智能手機的GPS定位功能,但GPS無法在室內(nèi)準(zhǔn)確定位,而且還可以利用軟件篡改位置,為了克服這些缺陷,
本項目在設(shè)計移動教學(xué)系統(tǒng)時引入iBeacon定位技術(shù),同時考慮到微信在學(xué)生群體中具有較高的使用率和黏著度,后續(xù)更容易促進教育普及和平臺多樣化構(gòu)建[3],因此采用微信公眾號平臺進行開發(fā)。
1 ?iBeacon技術(shù)分析
1.1 ?iBeacon的技術(shù)優(yōu)勢
iBeacon是蘋果公司在2013年發(fā)布的一種基于低功耗藍牙(BLE)通信的精確位置感知技術(shù),其工作方式是通過藍牙的廣播頻道向周圍發(fā)送自己特有的ID,但本身無法接收消息,接收到該ID的設(shè)
備會使用應(yīng)用程序APP與后臺系統(tǒng)進行交互,從而實現(xiàn)近場感知和定位等服務(wù)[4]。相對于傳統(tǒng)的WiFi或GPS定位系統(tǒng),基于iBeacon技術(shù)的定位系統(tǒng)有如下幾點優(yōu)勢[5]:
(1)定位更精準(zhǔn)。在拓?fù)浜侠?、算法適當(dāng)?shù)那闆r下,iBeacon定位精度可達到厘米級別,能有效克服GPS無法在室內(nèi)準(zhǔn)確定位的缺點。
(2)部署方便,成本低。iBeacon設(shè)備外圍電路極為簡單,天線多為板載天線形式,配上一粒紐扣電池,體積通常不超過1元硬幣大小,部署起來非常方便。
(3)超低功耗。一粒普通的紐扣電池可供一個iBeacon設(shè)備使用1~2年時間。
(4)強大的編程功能。通過調(diào)用iBeacon技術(shù)提供的API 接口,可實現(xiàn)豐富的應(yīng)用拓展功能。
(5)適用廣泛。所有搭載有BLE4.0以上版本的設(shè)備都可以作為iBeacons技術(shù)的發(fā)射器和接收器。
1.2 ?定位原理
iBeacon是一種基于藍牙的2.4G射頻技術(shù)[6],利用廣播方式,以一定的時間間隔發(fā)送數(shù)據(jù)包,數(shù)據(jù)包格式按如下順序從低到高分別是:
(1)iBeacon prefix(9字節(jié)):02 01 06 1A FF 4C 00 02 15
(2)Proximity UUID(16字節(jié)):iBeacon設(shè)備廠商識別號
(3)Major(2字節(jié)):相當(dāng)于群組號,同一個組里iBeacon設(shè)備有同樣的Major
(4)Minor(2字節(jié)):相當(dāng)于識別群組里單個的iBeacon設(shè)備
(5)TX power(1字節(jié)):發(fā)射功率。
UUID+Major+Minor構(gòu)成了一個唯一的iBeacon設(shè)備識別號,類似于網(wǎng)絡(luò)中的IP地址。當(dāng)iBeacon設(shè)備在一個區(qū)域內(nèi)廣播自己的信號時,通過識別號就完成了對一個特定區(qū)域的標(biāo)記。
TX power是距離iBeacon設(shè)備1米測得的信號強度值,用于計算距離。根據(jù)無線信號空間傳播的能量衰減規(guī)律,藍牙信號的能量強度將隨著傳播距離的增大而衰減[7],計算接收設(shè)備和iBeacon設(shè)備距離的計算公式如式(1)所示。
d=10^((abs(RSSI)A)/(10*n)) (1)
其中,d是收發(fā)設(shè)備間距離,RSSI是接收信號強度,A是接收端和發(fā)射端相隔1米時的信號強度, n是環(huán)境衰減因子,一般取經(jīng)驗值。獲取到RSSI值和A值,便可求得距離d。
2 ?系統(tǒng)設(shè)計
2.1 ?業(yè)務(wù)分析
本系統(tǒng)的主要使用者是學(xué)生和教師,根據(jù)角色的使用需求進行建模,歸納出四大業(yè)務(wù)功能,分別是信息管理、身份認(rèn)證、教學(xué)工具和報表統(tǒng)計。信息管理包括個人資料、學(xué)生名單導(dǎo)入、學(xué)生名單查詢/編輯等功能,身份認(rèn)證包括注冊和登錄,教學(xué)工具包括簽到、課堂互動、課表查看等功能,報表統(tǒng)計主要是考勤報表的展示和導(dǎo)出。在注冊階段,通過選擇學(xué)生或教師的不同角色,得到不同的功能界面。學(xué)生端的主要功能包括簽到、查詢考勤情況、設(shè)置個人信息和查詢課表等,教師端的主要功能包括簽到、設(shè)置課程、導(dǎo)入學(xué)生名單、查詢簽到情況、查詢課表等。其中教師端的簽到功能具有補假助簽、簽到方式設(shè)置和開啟簽到三種功能。針對學(xué)生的請假、補假、手機損壞、忘帶手機或手機無法上網(wǎng)而造成無法通過本系統(tǒng)簽到的情況,可以通過教師端的補假助簽功能完成考勤狀態(tài)的修改。簽到方式有GPS方式和iBeacon方式兩種可以選擇,如果對考勤位置要求不高,或者教師忘記攜帶iBeacon設(shè)備,可以開啟GPS簽到方式,這種方式要求學(xué)生手機也要開啟GPS定位功能,通過計算學(xué)生和教師的距離來判斷是否可以簽到。GPS的位置測算在室內(nèi)誤差較大,所以一般建議采用iBeacon方式進行簽到。系統(tǒng)通過兼容兩種簽到方式,能夠提高系統(tǒng)使用的靈活性,既能低成本的使用GPS方式,也能切換到高精度iBeacon定位從而確??记跀?shù)據(jù)準(zhǔn)確度,對于系統(tǒng)的普及和推廣有很大的幫助。一旦教師開啟簽到功能,系統(tǒng)默認(rèn)學(xué)生簽到時間在5分鐘內(nèi)完成,5分鐘時間一到即關(guān)閉簽到功能,當(dāng)然教師也能設(shè)置一次簽到的時間長度。教師可以在課堂的任何時間,開啟簽到功能多次,最終在課程結(jié)束時間會生成當(dāng)次課程的考勤報表,以供學(xué)生和教師隨時查看或?qū)С鍪褂???记跀?shù)據(jù)實時自動同步至服務(wù)器,從而實現(xiàn)數(shù)據(jù)在各用戶間的無縫共享。
2.2 ?系統(tǒng)拓?fù)湓O(shè)計
系統(tǒng)拓?fù)湓O(shè)計如圖1所示。當(dāng)系統(tǒng)采用iBeacon定位方式時,手機開啟藍牙功能,一旦進入iBeacon基站的信號范圍,手機就能接收到iBeacon的設(shè)備識別號,然后通過4G或Wifi與后臺服務(wù)器進行通信,從而完成簽到、課堂互動等功能。系統(tǒng)會根據(jù)獲取到的學(xué)生手機和教師手機的當(dāng)前位置計算距離,該距離只有在約定范圍內(nèi)的學(xué)生手機才能完成簽到功能。后臺服務(wù)器主要包括負(fù)責(zé)用戶身份認(rèn)證的微信公眾號平臺服務(wù)器、為用戶提供服務(wù)的應(yīng)用服務(wù)器以及存儲數(shù)據(jù)的數(shù)據(jù)服務(wù)器。系統(tǒng)還提供后臺管理功能,統(tǒng)一管理和設(shè)置用戶身份信息、課程信息、簽到數(shù)據(jù)和學(xué)校相關(guān)信息等。
2.3 ?系統(tǒng)總體邏輯架構(gòu)設(shè)計
移動教學(xué)系統(tǒng)包括硬件設(shè)備、數(shù)據(jù)處理、基礎(chǔ)軟件和應(yīng)用軟件,系統(tǒng)的各組成部分劃分成5個邏輯層次[8],如圖2所示。硬件設(shè)備和位置感知層為系統(tǒng)提供硬件基礎(chǔ)設(shè)施,教師可隨身攜帶iBeacon基站,教師手機和學(xué)生手機通過網(wǎng)絡(luò)進行數(shù)據(jù)同步;數(shù)據(jù)處理層負(fù)責(zé)各種數(shù)據(jù)的建模和處理;業(yè)務(wù)邏輯層負(fù)責(zé)實現(xiàn)相關(guān)應(yīng)用的邏輯處理;應(yīng)用層實現(xiàn)了系統(tǒng)的應(yīng)用功能;在表示層,用戶通過手機登錄微信公眾號就能使用系統(tǒng)的功能,無需額外安裝App。
3 ?系統(tǒng)關(guān)鍵技術(shù)實現(xiàn)
3.1 ?開發(fā)和部署環(huán)境
在移動教學(xué)系統(tǒng)的設(shè)計與實現(xiàn)過程中,Web應(yīng)用服務(wù)器采用Tomcat服務(wù)器,框架采用Spring MVC+ Hibernate框架。數(shù)據(jù)庫服務(wù)器選用MySQL數(shù)據(jù)庫以滿足系統(tǒng)的性能要求。開發(fā)環(huán)境采用開源工具Eclipse。手機端結(jié)合微信API技術(shù)進行界面研發(fā)。
iBeacon基站選用北京SENSORO公司自主研發(fā)的云子設(shè)備,其核心采用了Nordic nRF51822芯片,發(fā)射功率30 dBm到+4 dBm可調(diào)節(jié),傳輸距離3米至80米可分檔調(diào)節(jié),廣播頻率100ms至1285ms可分檔調(diào)節(jié)。通過調(diào)節(jié)發(fā)射功率、傳輸距離和廣播頻率,可以優(yōu)化信號覆蓋范圍及信號傳輸效率。
3.2 ?集成iBeacon基站
首先通過在微信公眾號后臺申請iBeacon設(shè)備號,然后通過移動教學(xué)系統(tǒng)的后臺,把該設(shè)備號與提出申領(lǐng)iBeacon設(shè)備的教師ID在數(shù)據(jù)庫中關(guān)聯(lián)起來,此時每個教師對應(yīng)一個唯一的iBeacon設(shè)備號。在使用iBeacon設(shè)備之前,先把綁定的設(shè)備號設(shè)置進該iBeacon設(shè)備中,同時激活設(shè)備。上課時登陸微信公眾號啟動簽到功能,學(xué)生只要進入iBeacon設(shè)備的廣播范圍,通過登陸公眾號學(xué)生端,就能成功簽到。
3.3 ?簽到功能實現(xiàn)
完成簽到的過程中,關(guān)鍵功能是對iBeacon設(shè)備的查找和識別?;谖⑿殴娞柶脚_,可以使用微信JS-SDK來查找iBeacon設(shè)備[9]。具體流程是:
(1)為公眾號綁定域名。
(2)在調(diào)用JS接口的頁面引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.2.0.js 。
(3)通過config接口注入如下權(quán)限驗證配置 信息:
wx.config({
debug: false,
appId: '',
timestamp: ,
nonceStr: '',
signature: '',
Jsapilist:[
'openLocation',
'startSearchBeacons',
'getLocation',
'stopSearchBeacons',
'stopSearchBeacons',
'openLocation' ]
});
appId是公眾號的唯一標(biāo)識,timestamp是生成簽名的時間戳,nonceStr是生成簽名的隨機串,signature是簽名,JsApiList是需要使用的JS接口列表,列表中的startSearchBeacons就是能夠獲取到iBeacon設(shè)備信息的接口函數(shù)。以上的參數(shù)需要在后臺寫一個接口獲取。
(4)獲取權(quán)限驗證配置信息參數(shù)的接口實現(xiàn)方法是[10]:使用AppID和AppSecret獲取access_token,access_token是公眾號的全局唯一票據(jù),通過這個access_token來獲取jsapi_ticket,得到j(luò)sapi_ticket意味著得到了公眾號用于調(diào)用微信JS接口的臨時票據(jù),就可以生成JS-SDK權(quán)限驗證的簽名了。生成前簽名數(shù)據(jù)signature的公式見公式(2)
Signature = sha1(string1) (2)
公式(2)中string1由nonceStr、有效的jsapi_ ticket、timestamp和當(dāng)前網(wǎng)頁的URL按照字段名的ASCII 碼從小到大排序后,使用URL鍵值對的格式拼接而成。對string1進行sha1簽名,便得到signature。
(5)通過正確的簽名,獲得調(diào)用微信JS接口的權(quán)限,就可以直接使用以下函數(shù)搜索到周邊iBeacon設(shè)備:
wx.startSearchBeacons({
complete: function(result) {
});
result為搜索到周邊iBeacon設(shè)備后返回的結(jié)果集,結(jié)果集中包含了周邊iBeacon的設(shè)備號以及距離等信息。距離數(shù)據(jù)就是學(xué)生手機與教師所持iBeacon設(shè)備的距離,通過公式(1)計算所得。
通過匹配學(xué)生當(dāng)前的上課時間,能夠識別出當(dāng)前上課的教師ID,從而得到綁定的iBeacon設(shè)備號,最終得到準(zhǔn)確的距離。當(dāng)該距離超出一定范圍,例如超出50米范圍,則認(rèn)為該學(xué)生不在教室內(nèi),無法進行簽到。如果距離符合要求,則允許學(xué)生將簽到信息提交到服務(wù)器,服務(wù)器將簽到數(shù)據(jù)進行整理分析,從而標(biāo)記此學(xué)生當(dāng)前的上課狀態(tài)。教師端同步刷新簽到數(shù)據(jù),實現(xiàn)簽到數(shù)據(jù)的實時共享。
3.4 ?數(shù)據(jù)處理難點與解決方法
系統(tǒng)數(shù)據(jù)庫采用MySQL數(shù)據(jù)庫,數(shù)據(jù)處理的難點在于數(shù)據(jù)使用的交叉性[11]。例如排課表和簽到數(shù)據(jù)表同時關(guān)聯(lián)到教師和學(xué)生兩個不同角色的操作和查看,在修改數(shù)據(jù)時容易導(dǎo)致數(shù)據(jù)與兩個角色直接關(guān)聯(lián)屬性的丟失,同時會產(chǎn)生較多的冗余數(shù)據(jù)。以考勤數(shù)據(jù)為例,教師添加排課后數(shù)據(jù)庫得到排課表,排課表里有關(guān)聯(lián)的班級,當(dāng)學(xué)生加入對應(yīng)班級后,排課表就會與學(xué)生關(guān)聯(lián)起來,然后系統(tǒng)就能計算出學(xué)生需要簽到的排程數(shù)據(jù)。每天凌晨1點左右,通過系統(tǒng)程序設(shè)定好的定時器,生成當(dāng)天需要簽到
的排程數(shù)據(jù)。在生成排程上使用了性能穩(wěn)定的Quartz開源作業(yè)調(diào)度框架[12]。這種方式會遺留兩個問題:第一,如果學(xué)生在生成當(dāng)天簽到排程之前,沒有完成注冊和加入班級的操作,數(shù)據(jù)庫中將不會有這個學(xué)生的簽到排程;第二,如果教師在生成簽到排程之后對排課表或者班級數(shù)據(jù)進行了調(diào)整,簽到排程將可能會錯誤。以上問題通過添加觸發(fā)器來處理,對于新加入到班級的學(xué)生,當(dāng)學(xué)生加入成功后會產(chǎn)生一個事件,事件觸發(fā)系統(tǒng)去計算當(dāng)天是否有課程,從而決定要不要往數(shù)據(jù)庫添加新的簽到排程。教師對課程表的修改也類似的產(chǎn)生一個修改事件,然后觸發(fā)系統(tǒng)對排程的校驗,從而決定是否需要修改與之相關(guān)的簽到排程。
另外,由于數(shù)據(jù)庫每天會產(chǎn)生很多新的考勤數(shù)據(jù),如果一直累積,數(shù)據(jù)量將會非常龐大。為了提高系統(tǒng)的性能和穩(wěn)定性,將每天新的簽到數(shù)據(jù)和歷史簽到數(shù)據(jù)進行了分離,使得每天簽到的排程里只有當(dāng)天的數(shù)據(jù),極大提高了系統(tǒng)的性能。對于歷史簽到數(shù)據(jù),由于其修改的要求和頻率不高,所以將這些數(shù)據(jù)固化到報表里面,系統(tǒng)會在每天凌晨時生成數(shù)據(jù)報表,供不同角色查詢。
4 ?應(yīng)用成效
本系統(tǒng)在試用階段,注冊教師20人,注冊學(xué)生2043人,涉及8個學(xué)校12個專業(yè),對系統(tǒng)的四大業(yè)務(wù)功能模塊信息管理、身份認(rèn)證、教學(xué)工具和報表統(tǒng)計進行測試和驗證。其中10個教師使用iBeacon定位方式進行考勤,另外10個教師使用GPS定位方式進行考勤。表1列出了主要模塊的實測結(jié)果。
通過實測,驗證了系統(tǒng)軟硬件的可行性和可用性,實現(xiàn)了靈活的線上資源分享功能,大大提高了課堂考勤效率,同時實現(xiàn)了數(shù)據(jù)的實時共享和多渠道獲取。
5 ?結(jié)語
本系統(tǒng)具有課堂互動性強、考勤效率高、資源實時共享、硬件部署成本低等優(yōu)勢,是利用物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)技術(shù)優(yōu)化教學(xué)過程的一種全新實踐。系統(tǒng)后期的功能拓展是多方面的,例如系統(tǒng)中的簽到功能可以進一步應(yīng)用在超百人會議的快速簽到、戶外活動的人員跟蹤等。通過增加慕課模塊,進一步發(fā)展成線上教學(xué)和線下教學(xué)的深度結(jié)合。
參考文獻
[1] 羅春花. 基于云計算+訂閱號的程序教學(xué)系統(tǒng)開發(fā)實現(xiàn)[J]. 軟件, 2018, 39(7): 12-16.
[2] 楊公義, 何山, 王肖群, 等. 北京大學(xué)公開課信息系統(tǒng)的開發(fā)[J]. 軟件, 2018, 39(5): 09-17.
[3] 龔讓聲, 李素桂, 林敏. 基于微信公眾平臺的慕課建設(shè)平臺的設(shè)計與實現(xiàn)[J]. 軟件, 2018, 39(2): 218-222.
[4] 林信川, 游貴榮. 基于iBeacon的課堂自動考勤系統(tǒng)設(shè)計與實現(xiàn)[J]. 重慶科技學(xué)院學(xué)報(自然科學(xué)版), 2017, 19(01): 97-100.
[5] 馬創(chuàng). 基于iBeacon技術(shù)在移動數(shù)字化校園中的應(yīng)用[J]. 科技創(chuàng)新與應(yīng)用, 2017(36): 123+125.
[6] 劉愷, 張仕斌. 基于IBeacon的室內(nèi)定位技術(shù)發(fā)展綜述[J]. 科技風(fēng), 2017(02): 2-3.
[7] 胡偉婭, 陸佳亮, 伍民友. 基于RSSI與慣性測量的室內(nèi)定位系統(tǒng)[J]. 計算機工程, 2013, 39(11): 91-95.
[8] 吳小竹, 陳崇成, 劉先鋒, 李界光, 方莉娜. 集成IBeacon室內(nèi)定位的文化旅游虛擬導(dǎo)覽系統(tǒng)[J]. 計算機工程, 2016, 42(10): 6-11.
[9] 陳恒, 李宏達, 趙曉艷. 基于微信的大學(xué)課堂點名系統(tǒng)的設(shè)計與實現(xiàn)[J]. 軟件, 2018, 39(3): 45-47.
[10] 夏凌云, 龔文濤. 基于微信公眾平臺和iBeacon的智慧校園LBS應(yīng)用設(shè)計[J]. 微型電腦應(yīng)用, 2016, 32(12): 50-53.
[11] 季菁葦. 計算機數(shù)據(jù)庫技術(shù)在信息管理中的應(yīng)用研究探討[J]. 軟件, 2018, 39(6): 160-163.
[12] 劉光明, 朱肖穎. Web應(yīng)用與Quartz的整合研究[J]. 企業(yè)科技與發(fā)展, 2018(03): 114-116.