林信川 游貴榮
(1. 福建商學院信息管理工程系, 福州 350012; 2. 福建商學院信息網(wǎng)絡(luò)中心, 福州 350012)
基于iBeacon的課堂自動考勤系統(tǒng)設(shè)計與實現(xiàn)
林信川1游貴榮2
(1. 福建商學院信息管理工程系, 福州 350012; 2. 福建商學院信息網(wǎng)絡(luò)中心, 福州 350012)
針對高??陬^點名效率不高的現(xiàn)狀,設(shè)計了基于iBeacon的課堂自動考勤系統(tǒng)。該系統(tǒng)采用配備DA14850芯片的iBeacon基站完成室內(nèi)精確定位,并使用Android和iOS移動設(shè)備完成自動考勤并上傳考勤信息。云端的考勤信息可通過本地APP和微信公眾號進行共享查詢。本系統(tǒng)具有建設(shè)成本低、實用性強的特點,并可便捷地移植到會議、企事業(yè)單位日常簽到等應(yīng)用場景。該系統(tǒng)已在某高校順利通過現(xiàn)場測試,效果良好。
考勤; iBeacon; 藍牙; 基站
課堂考勤是加強課堂管理、優(yōu)化課堂秩序和形成良好學習氛圍的重要措施,也是高校教師加強師生溝通、輔導(dǎo)員把控學生到課率的主要手段。目前以教師口頭點名、學生口頭應(yīng)答的方式最為常見。該點名方式直接、易操作且準確率高,但在班級學生數(shù)較多的情況下,考勤效率將大大降低,且無法有效防止代點名和早退的情況。
隨著物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)的飛速發(fā)展和各類智能設(shè)備的普及,國內(nèi)出現(xiàn)了一些利用各類新技術(shù)完成課堂考勤的研究成果。唐明偉等人[1]利用USB短信貓,通過在課堂現(xiàn)場公布的短信令牌實現(xiàn)考勤,但該技術(shù)受到短信延遲和短信貓部署難度大的影響,在推廣上存在一定的難度。賀甘芹等人[2]基于APP Inventor構(gòu)建了GPS 課堂點名應(yīng)用系統(tǒng),但在GPS信號不穩(wěn)定的區(qū)域,完成自動考勤的效果不夠理想,同時對學生端登錄和教師端距離判斷的限制較多。謝明華等人[3]提出的基于OpenCV的視頻簽到系統(tǒng),通過預(yù)先對每位學生面部特征進行采樣實現(xiàn),可有效防止替代簽到,但部署視頻捕獲設(shè)備的成本較高,且受簽到秩序及人臉到視頻設(shè)備的距離影響較明顯。郭玲[4]提出的基于iBeacon技術(shù)的微信“搖一搖”考勤系統(tǒng),為高校課堂自動點名提供了一種新的思路,但在iBeacon設(shè)備新增或更新的過程中,申請設(shè)備ID與微信公眾號綁定的過程較為繁瑣,不利于在多iBeacon設(shè)備的環(huán)境下使用;同時若單純通過微信端的“搖一搖”功能,將無法充分利用智能手機上的攝像頭和指紋識別設(shè)備等硬件特性所提供的多種手段為簽到服務(wù)。
基于上述研究成果,考慮到智能手機各項硬件性能的飛速升級,結(jié)合愈加成熟的Bluetooth 4.0技術(shù),特別是低功耗藍牙[5]應(yīng)用的普及,提出并設(shè)計了基于iBeacon的高校課堂自動考勤系統(tǒng)。該系統(tǒng)充分利用低功耗藍牙技術(shù)的iBeacon基站的[6](以下簡稱基站)成本低廉、近場通信(Near Field Communication)[7]準確性高的特點,在基站可覆蓋的區(qū)域內(nèi),通過在學生、教師和輔導(dǎo)員的智能手機端安裝基于Android或者iOS 版的本地APP應(yīng)用,便可便捷、準確、高效地滿足學生課堂簽到、教師課堂助簽和輔導(dǎo)員實時關(guān)注考勤數(shù)據(jù)的業(yè)務(wù)需求。
2010 年7月7日藍牙技術(shù)聯(lián)盟宣布正式采納藍牙 4.0規(guī)范,其中就包括了低功耗藍牙規(guī)范(Bluetooth Low Energy,簡稱BLE)[8],BLE的優(yōu)勢在于功耗超低、連接距離更長、連接速度更快,現(xiàn)已成為多數(shù)智能手機的標配。iOS 7和Android 4.2以上版本的手機操作系統(tǒng)都已無縫支持BLE。
iBeacon 是蘋果公司于 2013 年 9 月發(fā)布的一項基于BLE的技術(shù),可廣泛用于進行室內(nèi)定位的各類應(yīng)用場景。博通、Nordic、德州儀器(TI)等芯片廠商均已發(fā)布支持iBeacon的藍牙芯片,市場上的大部分芯片都允許進行二次開發(fā),以提供對iBeacon技術(shù)的支持。當前大多數(shù)基站設(shè)備的體積和耗電量都很小,使用一枚紐扣電池即可支持一個基站設(shè)備持續(xù)工作幾個月到一年。這提升了基站使用和部署的便捷性,同時也大大降低了部署成本。
基站通過藍牙的廣播頻道傳送信號,即向周圍不斷廣播自身ID,但無法接收消息。接收到該 ID 的客戶端APP(以下簡稱APP)完成消息推送的工作,即根據(jù)接收到的ID并通過與后臺系統(tǒng)進行交互,從而提供近場感知和導(dǎo)覽定位等服務(wù)。iBeacon廣播的數(shù)據(jù)可以解析為4部分: Proximity UUID、Major、Minor和Measured Power。Proximity UUID是標準的32位標識符,系統(tǒng)中定義為項目類型(當前為考勤場景)和使用單位(學校);Major和Minor都是16位可自行設(shè)定的標識符,目前Major用于標識校內(nèi)的具體教學建筑,Minor用于標識教室編號(其中已包含了具體的樓層信息);Measured Power對應(yīng)廣播中的Tx Power的值,表示距離iBeacon設(shè)備1 m測得的信號強度值(Received Signal Strength Indication,簡稱RSSI),以補碼結(jié)果顯示,通過該值可以完成精確到米級的距離測量。以上4部分編碼均可以根據(jù)具體的使用場景(如會議、商場應(yīng)用等場景)進行具體更改。
2.1 業(yè)務(wù)分析
本系統(tǒng)選擇高校課堂考勤這一典型的iBeacon應(yīng)用場景進行系統(tǒng)開發(fā),并在開發(fā)過程中重點關(guān)注系統(tǒng)的通用性與可配置性信息的封裝和提取,以便將來作為一個通用性產(chǎn)品,可高效無縫地移植到其他的應(yīng)用場景。如企事業(yè)單位員工日常簽到和各種會議現(xiàn)場簽到等,提升考勤的靈活性與效率。
本系統(tǒng)的主要使用者分為學生、教師和輔導(dǎo)員3種角色。根據(jù)具體角色的使用需求進行歸納和建模。學生的主要用例包括簽到、查詢簽到情況和查詢課表等;教師的主要用例包括助簽、查詢所任課程簽到情況和查詢課表等;輔導(dǎo)員的主要用例包括助簽、查詢所管理班級的考勤情況和查詢所管理班級的課表等。
為保證簽到信息的準確性,根據(jù)課表安排,要求學生從每節(jié)課上課前10 min到下課前使用簽到系統(tǒng)進行簽到,簽到的狀態(tài)實時提交到服務(wù)器以便查詢和匯總。為了提高點名效率,有別于以往的口頭點名方式,本系統(tǒng)給任課教師和輔導(dǎo)員賦予了“助簽”的權(quán)利。對于任課教師來說,所有已正常簽到的學生將顯示在學生簽到列表的下方,而出現(xiàn)諸如手機損壞、忘帶手機或手機不支持藍牙4.0等情況,造成無法正常簽到的學生,則顯示在列表上方。任課教師大多數(shù)情況下只需要重點關(guān)注簽到異常的學生,并針對其設(shè)置對應(yīng)的考勤狀態(tài)(如正常、遲到、早退、曠課等)即可?!爸灐惫δ苓€支持教師在上課過程中,根據(jù)學生的到課狀況(如早退、臨時請假等)實時修改任意學生的考勤狀態(tài),從而達到靈活而精準的考勤目的。對于輔導(dǎo)員而言,以往都要在批閱學生遞交的紙質(zhì)請假條后,請假事實方可生效,后續(xù)統(tǒng)計考勤還需通過人工合并相關(guān)學生的請假數(shù)據(jù),費時費力且容易遺漏或出錯。通過本系統(tǒng)輔導(dǎo)員可隨時通過類似的“助簽”操作,完成對請假學生的考勤標注。被標注的考勤數(shù)據(jù)將實時自動同步至服務(wù)器端,從而實現(xiàn)數(shù)據(jù)在各角色用戶間的無縫共享,并便捷地實現(xiàn)教師和輔導(dǎo)員對學生日常考勤的匯總統(tǒng)計,方便輔導(dǎo)員對學生出勤情況的實時關(guān)注和日常巡課。
2.2 系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)的架構(gòu)設(shè)計如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
首先在指定的考勤地點(如多媒體教室或機房)部署基站,并在服務(wù)器端完成基礎(chǔ)數(shù)據(jù)初始化。主要包括學生、教師和輔導(dǎo)員的基本信息(手機號與IMEI號)、課程安排信息和基站基本信息。考慮系統(tǒng)的兼容性,學生、教師和輔導(dǎo)員的基本信息以及課程安排的數(shù)據(jù),均可通過接口與現(xiàn)有信息化系統(tǒng)進行數(shù)據(jù)同步,或者通過可定制的中間數(shù)據(jù)接口層同步數(shù)據(jù)?;綢D通過與課程安排信息進行綁定后,用以確定和保證學生在指定的時間和指定的教室完成自動考勤活動。綁定的信息保存在服務(wù)器端,考慮到課表安排的規(guī)律性和基站部署位置的確定性,二者的綁定信息將在APP端進行緩存。
學生進入考勤區(qū)域,打開手機藍牙開關(guān)并運行已下載的APP,系統(tǒng)將會通過已緩存的與當前課程信息對應(yīng)的基站ID,與當前搜索到的所有基站的ID進行比對,從而完成匹配。在通過WiFi或者移動數(shù)據(jù)連接上網(wǎng)絡(luò)后,學生可通過學號或手機號登錄APP便捷完成當前課程的自動簽到。為防止代點名的情況,一臺手機在指定的上課節(jié)次內(nèi),只允許登錄一個學生賬號,手機的藍牙m(xù)ac地址和IMEI碼將隨考勤信息一并推送,同時學生的簽到時間以服務(wù)器端的時間為準,以上數(shù)據(jù)的校驗在上傳至服務(wù)器端的過程中完成。學生的簽到結(jié)果可以立即通過APP端查詢。如需通過微信端查詢簽到結(jié)果,部署該系統(tǒng)的單位必須申請并開通微信公眾號,并通過基于OAuth 2.0機制的微信網(wǎng)頁授權(quán)框架完成用戶鑒權(quán)驗證。
教師在課堂上可隨時查看當前課程的學生自動考勤情況,或通過“助簽”功能針對考勤情況特殊的學生進行管理。輔導(dǎo)員可隨時查看所負責班級學生的實時考勤情況,同時還可以根據(jù)學生假條批復(fù)的情況進行“助簽”,“助簽”后的數(shù)據(jù)將進入完整的信息流閉環(huán)。
3.1 開發(fā)和部署環(huán)境
本系統(tǒng)實現(xiàn)APP端分為Android和iOS版本。服務(wù)端系統(tǒng)采用J2EE Spring MVC架構(gòu)。數(shù)據(jù)庫服務(wù)器選用MySQL。iBeacon基站選用April Beacon EEK設(shè)備,其核心采用了德國DA14850芯片,具有更高的通訊效率和更低的耗電量,并支持便捷的空中升級。
3.2 系統(tǒng)實現(xiàn)關(guān)鍵技術(shù)
3.2.1 客戶端APP
本系統(tǒng)有別于其他課堂考勤系統(tǒng)的實現(xiàn)方式,考勤數(shù)據(jù)的獲取和學生的定位是通過使用iBeacon結(jié)合APP實現(xiàn)的。此舉在快捷完成點名工作的基礎(chǔ)上,還能夠有效防止用戶購買無法安裝APP的廉價藍牙設(shè)備,通過他人攜帶到現(xiàn)場進行代點名的情況。因此,APP如何與基站進行交互和數(shù)據(jù)處理是系統(tǒng)實現(xiàn)的關(guān)鍵之一。以Android客戶端為例進行說明。
基站僅進行廣播,消息的交互需要通過APP端的BluetoothManager 類完成。BluetoothManager 類利用回調(diào)方法對搜索到的iBeacon設(shè)備的信號強度進行排序并將其添加至設(shè)備集合中。BluetoothAdapter類對應(yīng)本地Android設(shè)備的藍牙模塊。在整個系統(tǒng)中BluetoothAdapter是單例的,當獲取其實例之后,就能繼續(xù)完成相關(guān)的藍牙操作。
要完成簽到數(shù)據(jù)處理的任務(wù),必須解決基站匹配與簽到數(shù)據(jù)的生成問題。由于在教學樓的各間教室均部署有基站,學生根據(jù)課程安排應(yīng)進入指定教室上課,因此,必須對可接收到廣播的基站進行篩選。篩選的依據(jù)是在系統(tǒng)初始化過程中,課程安排信息記錄與指定基站ID間的映射關(guān)系。此映射關(guān)系保存在圖1所示的數(shù)據(jù)庫服務(wù)器中,并可以根據(jù)需要通過后臺系統(tǒng)進行維護。在學生第1次登錄APP的過程中,將從服務(wù)器端獲取該數(shù)據(jù)并保存在APP緩存中。若基站設(shè)備有更新或者其他變動時,服務(wù)器端將根據(jù)更新后的映射關(guān)系,在此后登錄的過程中,將新數(shù)據(jù)推送并更新至客戶端緩存。簽到數(shù)據(jù)將生成為標準的JSON格式,如下所示:
{
"ticket": "*…*" ,
"macAddress": "*…*" ,
"uuid": *…*,
"major": *…*,
3)造成此次華東沿海大范圍平流霧的主要原因在于源源不斷的水汽輸送、低層逆溫層維持、動力條件等。在大霧維持期間(16日16時—17日02時),華東沿海及內(nèi)陸大部分地區(qū)為弱的水汽輻合區(qū),水汽源源不斷的持續(xù)輸送,是此次平流霧得以發(fā)展和持續(xù)的重要條件之一。邊界層內(nèi)逆溫層維持,阻止水汽向上輸送,僅在近地面層內(nèi)輻合上升,再加上地面降溫作用,水汽凝結(jié)成霧滴,使能見度不斷降低。動力條件對大霧形成與維持也具有重要作用,100~400 m高度大規(guī)模的輻散下沉運動有利于大氣增溫,配合地面至100 m輻合上升運動,在邊界層內(nèi)形成逆溫層。并且輻合上升運動把水汽向上抬升,在逆溫層的阻擋下,水汽不斷積累達到飽和形成大霧。
"minor": *…*,
"distance": *…*,
"imei": *…*,
}
其中,ticket為自定義的與服務(wù)器端進行交互的憑據(jù),包括用戶信息以及登錄時間等。macAddress為藍牙設(shè)備的mac地址,distance為根據(jù)Tx Power和RSSI計算出的與基站的距離,用于保證簽到時學生位于指定的教室中。
3.2.2 服務(wù)器端
本系統(tǒng)中服務(wù)器端主要完成數(shù)據(jù)驗證、匯總和合并功能。為了能夠順利地通過APP和微信公眾號對考勤數(shù)據(jù)進行查詢和分享,自定義微信公眾平臺的鑒權(quán)框架的實現(xiàn)是系統(tǒng)的另一個關(guān)鍵點。實現(xiàn)該框架的關(guān)鍵是基于OAuth 2.0的鑒權(quán)機制。其工作機制主要分為如下4步:
(1) 用戶在關(guān)注公眾號后,通過輸入學號或者工號及其匹配的登錄密碼進行授權(quán)確認。此步驟主要獲取用戶微信號對應(yīng)的OpenID并與學號或者工號進行綁定,從而獲取code。
(2) 通過獲取的code換取網(wǎng)頁授權(quán)的access_token(訪問令牌),換取的信息均以標準的JSON格式體現(xiàn),如下所示:
{
"access_token":"*…*",
"expires_in": *…*,
"refresh_token":"*…*",
"openid":"*…*",
"scope":"*…*",
"unionid": "*…*"
}
(3) 根據(jù)access_token的有效期是否過期決定是否進行access_token的刷新。
(4) 在網(wǎng)頁授權(quán)作用域為snsapi_userinfo時,通過access_token和Open ID拉取用戶信息從而完成鑒權(quán)過程。
在自定義實現(xiàn)的微信公眾平臺接口包的interceptor(過濾器)層,將對所有用戶的訪問請求進行過濾,從而保證所有進行考勤信息查詢的用戶都是已綁定過學號或工號的用戶實體。
無論用戶是否關(guān)注微信公眾號,當其通過微信公眾號菜單或者外鏈請求查詢考勤數(shù)據(jù)時,過濾器都會根據(jù)其具體請求并結(jié)合請求中的數(shù)據(jù),判斷是否對其訪問請求進行授權(quán)。若會話不包含OpenID和微信用戶信息,則根據(jù)過濾規(guī)則自動跳轉(zhuǎn)到OAuth鑒權(quán)地址,要求用戶進行身份綁定。
利用基于BLE的基站,設(shè)計實現(xiàn)了基于iBeacon的課堂自動考勤系統(tǒng)。在測試過程中,以某高校信息管理工程系 2014級和 2015級共12個專業(yè)班級、學生600余人以及相關(guān)的教師和輔導(dǎo)員20余人作為測試參與者。通過在23間機房部署69個基站,對使用系統(tǒng)自動考勤的測試結(jié)果進行統(tǒng)計。測試中同一教學樓基站的并發(fā)數(shù)最高達到了20個。除個別參與測試的教師和輔導(dǎo)員忘記對特殊狀態(tài)的學生進行標記外,其他考勤數(shù)據(jù)的準確率均達到了 99%以上;同時使用德國DA14850芯片的基站表現(xiàn)出了較好的抗干擾性。上述實際考勤場景驗證了軟硬件系統(tǒng)的可行性和可用性,在提高點名效率的同時實現(xiàn)了考勤數(shù)據(jù)的云端共享和多渠道的實時獲取。
本系統(tǒng)具有考勤過程便捷、結(jié)果精確、效率高、硬件部署成本低、可維護性好等優(yōu)勢,是利用物聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)技術(shù)優(yōu)化考勤過程的一種全新實踐。系統(tǒng)局限性在于手機須配置并支持藍牙 4.0模塊,目前市面上主流的移動設(shè)備90%以上已具備此功能。隨著移動設(shè)備的快速升級和更新?lián)Q代,該系統(tǒng)將具有更加廣闊的應(yīng)用場景。下一階段研究的重點是優(yōu)化基站的部署與學生在考勤時位置的準確定位。
[1] 唐明偉,莊玉良,蔣勛,等.基于短信貓的課堂自動點名系統(tǒng)[J].現(xiàn)代教育技術(shù),2013,23(10):115-120.
[2] 賀甘芹,盧國慶.基于APP Inventor的GPS課堂點名應(yīng)用系統(tǒng)設(shè)計與實現(xiàn)[J].中國教育信息化·基礎(chǔ)教育,2016(4):87-89.
[3] 謝明華,劉輝,王新輝.基于OpenCV的實驗室視頻簽到系統(tǒng)的設(shè)計[J].計算機與現(xiàn)代化,2010(3):78-80.
[4] 郭玲.基于iBeacon技術(shù)的微信"搖一搖"考勤系統(tǒng)的實現(xiàn)[J].深圳職業(yè)技術(shù)學院學報,2016,15(1):19-23.
[5] 王劍鋒,陳燦峰,劉嘉,等.一種基于IPv6和低功耗藍牙的物聯(lián)網(wǎng)體系結(jié)構(gòu)[J].計算機科學,2013,40(5):97-102.
[6] 石志京,徐鐵峰,劉太君,等.基于iBeacon基站的室內(nèi)定位技術(shù)研究[J].移動通信,2015,39(7):88-91.
[7] WANT R.Near field communication[J].IEEE Pervasive Computing,2011,10(3):4-7.
[8] CHO K,PARK W,HONG M, et al.Analysis of latency performance of Bluetooth Low Energy (BLE) networks [J]. Sensors,2014,15(1):59-78.
The Design and Implementation of an Automatic Roll Call System Based on iBeacon
LINXinchuan1YOUGuirong2
(1.Department of Information Management and Engineering, Fujian Commercial College, Fuzhou 350012, China;2.Information Network Center, Fujian Commercial College, Fuzhou 350012, China)
This paper proposed the automatic iBeacon roll call system, to improve low efficiency of university oral roll call. This system completes the indoor positioning work with the iBeacon station equipped with DA14850 chip, Android and iOS mobile devices, which can be used to complete automatic attendance and upload information automatically. The cloud of attendance information can be shared between native APP and WeChat. This system has the characteristics of low cost and strong practicability. It can be easily transplanted to the meeting and daily attendance in enterprises application scenario. It has been smoothly put into practice in a university and received well feedback.
roll call; iBeacon; bluetooth; station
2016-09-02
福建省教育廳A類項目“基于校園社交網(wǎng)絡(luò)平臺的應(yīng)用系統(tǒng)架構(gòu)研究”(JA15730)
林信川(1981 — ),男,碩士,講師,研究方向為物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)。
游貴榮(1974 — ),男,副教授,研究方向為智能信息處理。
TP368.1; TN925
A
1673-1980(2017)01-0097-04