沈陽航空航天大學電子信息工程學院 景光錚 王若桐 李 軒 趙 飛
在社會積極倡導“互聯(lián)網+”、“智能家居”等概念,以及智能手機的普及、微信受眾越來越大的大背景之下[1],為了解決傳統(tǒng)門禁鑰匙丟失、遺忘、密碼門禁忘記密碼、生物門禁生物特征發(fā)生變化無法開鎖的問題,開發(fā)了基于微信公眾平臺二維碼身份識別的門禁系統(tǒng)。首先,手機被遺忘的頻率極低,基本均安裝了微信,移動通信已經基本普及,這為智能門禁提供了基礎條件[2]。其次,技術上,在國外,日本、韓國、美國均將二維碼技術應用在圖書館管理上,通過手機掃描二維碼,可以快速登陸圖書館的手機端,這樣省去了在手機端輸入URL(網址)的繁瑣過程,實現(xiàn)了一鍵登錄[3]。門禁系統(tǒng)的服務端包括門禁控制服務器(提供下位機與服務端的交互)和用戶身份識別服務器(負責微信用戶身份的識別),這為智能門禁系統(tǒng)提供了服務器的支持。控制終端,STM32F103、樹莓派均可以作為門禁系統(tǒng)的下位機終端,本方案選取樹莓派。樹莓派基于Linux的嵌入式系統(tǒng),在與服務器的數據交換上更加方便、快捷。
通過基于微信公眾號二維碼身份識別的門禁系統(tǒng)可以將當下新興的二維碼技術與即時通信的微信相結合,利用掃碼實現(xiàn)開鎖功能,將二維碼儲存信息量大、云端識別保密性好的特點應用在智能門禁上,安全、快捷,使門禁管理員可以遠程授權[6]。
智能門禁系統(tǒng)由基于Linux嵌入式系統(tǒng)的樹莓派控制模塊、LCD12864顯示模塊、電磁鎖模塊、門禁控制服務模塊、身份識別服務模塊、用戶手機微信客戶端六部分組成,其系統(tǒng)的結構方框圖如圖1所示:

圖1 系統(tǒng)結構方框圖

圖2 系統(tǒng)工作流程圖

圖3 公眾號交互信息截圖

圖4 二維碼智能門禁實物圖
二維碼是微信接口生成的,而且是隨機生成的,在用戶掃描以后都會對二維碼進行更新。二維碼里面儲存的是一條URL連接,用戶使用微信客戶端掃描二維碼后,微信客戶端會將掃描信息發(fā)送至微信API服務器(應用程序編程接口),微信API服務器再將用戶信息(包括openid(用戶唯一標識符))及掃描二維碼信息發(fā)送至門禁的系統(tǒng)服務器,用戶身份識別服務器通過openid和二維碼的信息進行用戶身份的識別,判斷此用戶是否獲得了門禁開鎖的權限,若該用戶已經獲得了門禁的開鎖權限則服務器會向樹莓派發(fā)送一條開鎖的指令,公眾號會以文字信息的形式提醒用戶開鎖成功,否則服務器不會向樹莓派發(fā)送任何指令,公眾號會以文字信息的形式提示用戶未獲得門禁權限,請等待管理員處理。此時,服務器也會將申請授權的用戶的信息及門禁的信息以模板消息的形式發(fā)送給該門禁所對應的管理員,如果管理員同意該用戶進入,服務器會向樹莓派發(fā)送開鎖指令,用戶可以打開門禁,整個授權過程是在服務器中完成的。門禁系統(tǒng)中使用的門鎖為500KG的拉力電磁鎖,使用樹莓派的GPIO口對其進行控制。具體的流程圖2、公眾號界面信息交互如圖3,實物如圖4所示。
顯示模塊使用的是LCD12864,LCD12864是128*64的點陣型液晶顯示模塊,可顯示各種字符及圖形,可與CPU直接接口,具有8位標準數據總線、6條控制線及電源線。采用KS0107控制IC。LCD12864可以用樹莓派的GPIO口進行控制,從而實現(xiàn)對二維碼的顯示,其分辨率高、功耗低的特性能夠滿足門禁系統(tǒng)的顯示要求。二維碼顯示的效果見圖5。

圖5 顯示模塊實物圖
Raspberry Pi中文名為“樹莓派”,簡寫為RPI,體型很小,運行Linux嵌入式操作系統(tǒng)。樹莓派的處理器型號為BroadcomBCM2835,基于ARM1176JZF-S核心,主頻為700MHz,高主頻的樹莓派具有強大的計算能力,而且樹莓派具有512MB的系統(tǒng)可編程RAM,支持SD卡擴展,最高支持1080P的視頻輸出等強大功能,具有對圖象的強大處理能力[7]、WIFI適配器可以滿足與服務器的信息交互,以及極低的功耗要求,使其尤其適合智能門禁系統(tǒng)的控制系統(tǒng)設計。
微信平臺可以生成許多帶參數的二維碼,可以滿足智能門禁系統(tǒng)的使用。通過appid(手機應用程序軟件編號)和secret(密鑰)來換取微信公眾號的Access Token(調用接口憑證),從而調用生成帶參數二維碼的API,獲取二維碼。使用HTTP(超文本傳輸協(xié)議)協(xié)議請求方式將JSON數據包發(fā)送給微信公眾平臺的Access Token獲取接口。通過解析返回的JSON數據包取得Access Token字符串。獲得Access Token后,可通過微信公眾平臺接口生成帶參數二維碼[4]。 每個二維碼的生成都要通過Ticket(二維碼的唯一標識碼)。
首先是門禁控制服務器,負責與樹莓派的交互通訊,提供二維碼的刷新,門禁的開關控制等功能。其次是身份識別服務器,負責對用戶身份的識別和授權處理,并與門禁控制服務器配合完成對門禁的開關控制。
用戶掃描二維碼后,首先微信會判斷用戶是否已經關注了該門禁系統(tǒng)對應的微信公眾號,如果沒有關注,會先彈出關注頁面,提示用戶需要先進行關注才能夠繼續(xù)操作。如果用戶已經關注過該門禁系統(tǒng)對應的公眾號,那么,首先微信會將用戶掃描二維碼的相關信息推送至微信的服務器,隨后微信服務器會將信息推送至門禁服務器的用戶身份識別服務器,門禁系統(tǒng)的用戶身份識別服務器便會對該用戶的操作進行判斷,如果該用戶有對該門禁的操作權限,則會開啟門禁,否則會將授權申請發(fā)送至該門禁對應的管理員,并等待管理員的審核。
樹莓派是基于ARM框架運行的基于Linux嵌入式系統(tǒng)的控制終端,因此,可通過FTP或SFTP(文件傳輸協(xié)議)等方式,將python程序上傳至樹莓派。FTP中文簡稱“文傳協(xié)議”。它用于Internet上控制文件的雙向傳輸,上傳與下載,同時也是應用程序(Application)。雖然不同的操作系統(tǒng)有不同的FTP應用程序,但所有的這些應用程序都遵守同一種協(xié)議以傳輸文件。SFTP中文簡稱為“安全文件傳送協(xié)議”,因為其為SSH(安全外殼協(xié)議)的一部分,所以通過SSH的方式即可完成文件的上傳與下載[5]。
在對系統(tǒng)評測過程中,首先測試了手機距LCD12864顯示的二維碼的距離與二維碼掃描成功率之間的關系,用MATLAB擬合曲線以后,可以看出在20-30cm時成功率最高(圖7)。新用戶掃描二維碼后會推送關注該門禁公眾號的界面,關注以后,要等待管理權限才可以開門,已經授權的用戶,可以開門進門,而且收到開門成功的微信信息,所以經過測試,智能門禁可以快速開門,而且具有良好的安全性。
微信平臺二維碼身份識別的門禁系統(tǒng),經過理論分析與實踐證明是可行的。二維碼智能門禁系統(tǒng)消除了密碼式門禁易忘記密碼,密碼易被竊取,IC卡門禁磁卡消磁帶來的信息丟失,以及傳統(tǒng)門禁鑰匙易丟失、遺忘,以及以上所有門禁無法遠距離授權的弊端。此門禁在帶來便捷的同時,也存在缺點,例如:停電以后電磁鎖無法工作、在無移動信號情況下無法打開門禁。但是,缺點可以在后期研究中進行改正,缺點無法掩蓋此研究融合了最近熱門的物聯(lián)網技術、嵌入式、二維碼、微信公眾號的前沿技術的科技感。
[1]李建華.二維條碼圖像處理算法及其VLSI設計研究[D].成都:電子科技大學,2013,1-10.
[2]中國物品編碼中心.條碼技術與應用[M].北京:清華大學出版社,2003,1-20.
[3]程裕強,劉愛民,周國軍.二維碼生成算法研究[J].玉林師范學院學報(自然科學),2014,35(5):1-2.
[4]孫曉瑜,王榮宗,國外二維碼技術在圖書館的應用啟示[J].圖書館學研究(應用版),2013:23-25.
[5]馬鳴,李海波.基于Android的二維碼的生成與識別系統(tǒng)的設計與實現(xiàn)[J].電腦知識與技術,2012,8(26):6353-6356.
[6]韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社(第一版),2008.
[7]董曉宇,房秉毅,張云勇.物聯(lián)網智能家居發(fā)展分析[J].移動通信,2010,09:16-20.
[8]胡孝鵬.基于圖像處理的嵌入式QR碼識別系統(tǒng)的研究與實現(xiàn)[D].青島大學,2007.