趙永鵬
摘要:本文基于某電子科技公司智能校園項目(某幼兒園項目),從軟件、硬件、接口三個主要方面分別介紹了整個項目的設計與關鍵實現技術,項目實現了教室門禁,學生考勤,教師家長互動,課程信息,學生成績查詢等主要功能。
關鍵詞:智能校園;云數據庫;socket通信;移動物聯網
中圖分類號:TN948.6 文獻標識碼:A 文章編號:1007-9416(2018)09-0106-01
隨著新技術的快速發展,學校開始利用云平臺、移動物聯網技術和互聯網技術等進行智能校園建設,這成為建設校園智能化的一個重要方向。近幾年校企教育越來越受到社會的認可,校企合作越來越深入,校企合作項目也越來越多,尤其是智能校園相關項目逐漸被落實并進入到校園,這些項目的實現提高了學校的管理和教師的幸福感指數,有利于遠程移動辦公,從長遠來看促進了教育事業的發展。
1 軟硬件要點介紹
軟件主要分為四部分:教師版APP、家長版APP、平板APP和云后臺(云服務器)。后臺架構通過.NET和云數據庫SQL Server布局并部署在云端,教師版APP和家長版APP通過http協議和socket與后臺通信。http協議負責與云后臺數據的拉取,socket負責外設、連接設備等與云后臺間的通信。硬件平臺主要是帶安卓系統的開發版(在開發版基礎上開發出平板設備)和IC卡。
2 平板設備上APP源碼架構
平板設備是外掛在教室門口,學生進入教室前需要通過平板進行刷卡(二維碼掃描或刷臉),相關考勤信息會通過平板APP被采集到云后臺。平板APP源碼架構采用MVVM設計(本項目其它APP都采用此架構設計實現)。
3 教師/家長版APP功能
教師可以通過教師版APP進行家長互動,查看學生考勤記錄以及園務通知等操作。家長可以通過家長版APP查詢了解學生成績和課程信息等。
4 硬件平臺和外設介紹
采用帶有安卓7.1.1Nougat系統的基礎開發板包含camera,并在此板子基礎上加刷卡和二維碼掃描外設,制作成平板設備。學生上課前在平板設備上刷卡(二維碼掃描或刷臉),通過gpio控制開教室門后才能進入教室學習,學生上課數據會被采集并上傳到云服務器端。
5 接口通訊規范
智能出入通道終端軟件與中心服務器之間是雙向通訊,中心服務器運行服務端程序,終端軟件作為客戶端程序運行。為保證通訊能夠穩定進行,需要具備如下條件[1-2]:
(1)使用基本的TCP協議,長時間連接的方式運行,中心服務器服務端口定為XXXX,要求中心網管系統開放該端口的TCP通訊。(2)中心服務器應支持多個智能出入通道終端軟件的主動連接,并有效管理連接。(3)心跳機制:智能出入通道終端軟件主動連接中心服務器,連接成功后,每15秒向中心服務器發送心跳命令包,中心服務器收到該心跳命令包后,回應一個心跳數據包。(4)握手通訊過程:認證過程使用類似的Digest過程,為保證安全密碼不在通訊線路中傳送。(5)數據確認機制:每一次會話,有請求,必需有回應,有提交數據時,必需有提交確認,如果數據發送失敗,或者沒有回應,認為網絡斷開,按網絡斷開流程處理。
5.1 數據格式說明
所有數據采用低端在前,高端在后。(1)通訊幀頭數據格式。數據意義:幀頭標志,固定為0x62AD36BE+加密后的數據有效長度n(不含本幀頭長度)+協商的身份標識符Token+加密后的數據;數據長度(字節):4+4+16+n。(2)加密后的數據解密后的原始數據格式。數據意義:CRC16校驗+數據功能命令+命令序號MsgID+有效數據;數據長度(字節):2+2+4+(n-8)。CRC16校驗:除CRC16這兩字節外的后面所有其它數據的CRC16校驗值(即:“數據功能命令+命令序號+有效數據”的CRC16校驗)。數據功能命令:見后面定義。命令序號MsgID:當軟件登錄時給定一個初始序號,可以是0,也可以是其它隨機數,然后每次交互發送命令,該值+1,如果收到的序號小于或等于當前的序號,說明數據重復發送,不需要再處理數據,只需要發回結果。該命令序號由發起者給出,響應者原值送回。(3)數據加密方法。軟件采用MD5混合式簡單處理方式。公式為:MD5(Token+用戶密碼+本次數據長度n) ,得到16字節的MD5值,然后將該16字節與原始數據,依次相異或[3]。
5.2 錯誤信息定義
錯誤碼ErrCode(意義):0(表示正確,無錯誤)、100(表示設備ID不存在)、101(表示該用戶名不存在)、102(表示密碼不正確)、103(表示數據格式不正確)、104(表示不支持的數據功能命令)、105(表示設備未登錄服務器)。
5.3 數據據功能命令定義
數據使用Json格式打包,以便程序好處理。以(數據功能命令+數據意義+發送內容格式+回應數據格式)格式展示3個命令如下所示:
0x0001+智能出入通道終端軟件登錄服務器+{“ParkID”:”設備ID號”,”User”:”登錄的用戶名”,”Pass”:”MD5(請求的Token+登錄密碼)”}+{“ErrCode”:0,”NewToken”:”…”}或者{“ErrCode”:錯誤碼}。
0x0009+更新整個公告信息,舊有的公告信息將自動刪除+{“Update”:[{“ID”:”整數標識編號” ,”Text”:”公告內容” },{“ID”:”整數標識編號”,”Text”:”公告內容”},…]}+服務器主動發送或回應0x0008的請求,接收端回應{“ErrCode”:錯誤碼}。
0x0020+刷卡信息主動上傳+{“DateTime”:”刷卡時間”,"JobID":"學號",“CardID”:”IC卡卡號”,"FinData":"1為IC卡刷卡,2為二維碼,3為刷臉","Img":"實時照片","lockFlag ": "是否有開鎖動作,0=無,1=有"}+終端設備主動上傳,服務器收到后,回應{“ErrCode”:錯誤碼}。注意:需要用數據格式里的MsgID來區分是哪條命令。
所有操作命令的回應數據都必需帶ErrCode指示值。
6 結語
本文以某幼兒園智能校園服務平臺項目為依托,介紹了整個項目的設計與關鍵實現技術,從軟件、硬件、接口三個方面分別做了設計。主要實現了以下功能:教室門禁,學生考勤,教師家長互動,課程信息,學生成績等。后期我們將會在幼兒健康、營養膳食、幼兒圈、智能課程等方面進行平臺的升級。
參考文獻
[1]吳偉生.基于物聯網技術的智慧校園解決方案[J].計算機產品與流通,2018,(5):206.
[2]楊文,賈紅宇,劉立棟.基于云平臺的智慧校園建設與應用研究初探[J].科學技術創新,2018,(23):63-64.
[3]鄧春紅,任海鵬,潘濤.基于移動終端的智慧校園系統設計[J].綏化學院學報,2017,(5):158-160.