重慶理工大學遠程測試與控制技術研究所 余成波 閆亞恒 錢澤文
基于BLE技術和Arduino的門禁系統(tǒng)設計
重慶理工大學遠程測試與控制技術研究所 余成波 閆亞恒 錢澤文
本文針對目前市場上的門禁系統(tǒng)因采用密碼式存在安全性低、易破壞,采用IC卡式存在“認卡不認人”,采用生物識別存在造價昂貴、易損傷等問題,設計了基于BLE技術和Arduino控制板的門禁系統(tǒng)。該系統(tǒng)由BLE門鎖、智能終端和云服務器三部分組成,采用用戶ID和門鎖秘鑰雙重驗證方式,在控制門禁系統(tǒng)成本的同時保證了門禁系統(tǒng)的安全性和便捷性。
門禁系統(tǒng);BLE;Arduino
隨著物聯(lián)網技術的迅速發(fā)展和移動互聯(lián)網時代的到來,人們對門禁系統(tǒng)的安全性、可靠性和便捷性的要求也越來越高。傳統(tǒng)密碼式門禁設計簡單、成本較低,但安全性不高,存在較大的被破解風險且無法記錄門禁使用信息,尤其對于老幼人群,容易遺忘秘鑰,增加使用不便;IC卡式門禁是當今使用比較廣泛的門禁,該類型門禁雖然克服了密碼式門禁的上述不足,但因其采用電磁耦合方式與讀取設備通信,故存在安裝復雜、易受外界磁場干擾出現(xiàn)信息丟失、補卡麻煩、卡片信息易被盜取等缺點。因此人們已經漸漸不滿足于傳統(tǒng)門禁系統(tǒng),智能門禁系統(tǒng)是近幾年發(fā)展起來的一種新型門禁系統(tǒng),它通過在出入口安裝集成了控制板、電子鎖、無線通信模塊、傳感器、報警器等模塊的門禁設備[1],將用戶提供的身份信息與服務器存放的數(shù)據(jù)進行比對,從而對用戶進行授權開鎖。智能門禁系統(tǒng)可以對進出人員進行記錄、查詢、授權、報警等操作,大大提高了管理區(qū)域的安全性。測試表明BLE智能門禁系統(tǒng)制造、安裝成本低,實用性強,具有很好的市場前景。
圖1 系統(tǒng)整體結構框圖
圖2 門禁設備結構框圖
該設計由門禁設備、智能終端、云服務器三大部分組成,系統(tǒng)整體結構如圖1所示,其中門禁設備主要包含:BLE藍牙模塊、Arduino控制模塊、執(zhí)行模塊、電源模塊等部分,門禁設備結構框圖如圖2所示。智能終端APP使用Android Studio平臺進行開發(fā)。系統(tǒng)所產生的數(shù)據(jù)和使用的接口文件存放在新浪SAE云應用平臺。本系統(tǒng)具有以下功能和特點:⑴支持在移動智能終端完成身份的登記和認證;支持數(shù)字秘鑰,用戶可以通過手機或平板電腦應用程序方便和安全的訪問門禁[2];⑵支持網絡以及云端服務和資源的綜合安全訪問;支持移動端的門禁監(jiān)控以及人員管理;支持移動端對門禁權限的分配及管理;⑶使用BLE(藍牙低功耗技術)來解決智能終端和門禁設備控制模塊之間的無線通信問題,用戶無需擔心因停電和干擾信號導致的門鎖無法開啟問題。
2.1Arduino控制模塊
Arduino是一種近幾年非常流行的一個開源硬件控制平臺,具有自己的集成開發(fā)環(huán)境(IDE)。該IDE是基于C語言開發(fā)的,完全免費,使用方便[4]。本系統(tǒng)使用的 Arduino單元為Arduino UNO R3,是Arduino USB接口系列的最新版本,核心處理器是ATmega328,具有14路數(shù)字輸入/輸出口(6路可作為PWM 輸出)、6 路模擬輸入,支持 I2C和SPI通信協(xié)議[5]。本文實驗所采用的Arduino UNO R3控制板各管腳說明如表1所示。
本設計硬件系統(tǒng)中,BLE藍牙模塊與控制板通過TX/RX管腳連接,進行串口通信;固態(tài)繼電器控制的執(zhí)行部件與Arduino控制板的D8管腳連接;蜂鳴器與Arduino控制板的D13管腳連接;指示燈LED1、LED2、LED3分別與控制板的D4、D5、D6管腳連接,硬件電路原理圖如圖3所示。
表1 Arduino UNO R3各管腳
圖3 硬件電路原理圖
2.2BLE藍牙模塊
對于無線通信而言,由于電磁波在傳輸過程中容易受到很多因素的干擾,例如障礙物的阻擋、天氣狀況等。藍牙技術聯(lián)盟(SIG)在制定藍牙4.0(BLE技術)規(guī)范時已經考慮到了這種數(shù)據(jù)傳輸過程中的內在不確定性,在射頻、基帶協(xié)議、鏈路管理協(xié)議(LMP)中采用可靠性措施,包括:差錯檢測和校正、進行數(shù)據(jù)編解碼、差錯控制、數(shù)據(jù)加噪等,極大地提高了藍牙無線數(shù)據(jù)傳輸?shù)目煽啃?。另外,使用自適應跳頻技術,最大程度地減少和其他2.4GHZ ISM頻段無線電波的串擾。
BLE技術支持兩種部署方式:雙模式和單模式。雙模式中,低功耗藍牙功能集成在現(xiàn)有經典藍牙控制器中個,或在現(xiàn)有經典藍牙技術(2.1+EDR/3.0+HS)芯片上增加低功耗堆棧,整體架構基本不變,因此成本增加有限。BLE技術設計了用深度睡眠狀態(tài)來替換傳統(tǒng)藍牙的空閑狀態(tài)且采用3個廣播通道進行廣播,強化了藍牙在數(shù)據(jù)傳輸上的低功耗性能,功耗較傳統(tǒng)藍牙降低了90%。并且設備的啟動時間僅需3ms,傳輸距離可達60-100m,完全能滿足門禁系統(tǒng)的需求[6]。
本系統(tǒng)采用的藍牙模塊主芯片為美國TI公司CC2541,該模塊為主從一體模塊,具有透傳、遠控、PIO采集三種功能,可通過AT指令集進行切換和設置,CC2541實物圖如圖4所示。
圖4 CC2541芯片圖
2.3執(zhí)行模塊
根據(jù)門禁系統(tǒng)實際使用需要,本設計選用固態(tài)繼電器控制電磁鐵的方式作為門禁系統(tǒng)的執(zhí)行模塊[3]。固態(tài)繼電器是SSR(solid state relays)是一種由微電子電路、分立電子器件、電力電子功率器件組成的無觸點開關元件,用隔離器件實現(xiàn)了控制端與負載端的隔離以達到使用微小的控制信號直接驅動大電流負載。相比于其他繼電器,SSR具有以下特點:①控制功率小,控制電流一般為5-20mA。而本設計采用的Arduino引腳電流官方指標不超過40mA,SSR滿足設計需要。②可靠性高,由于是固態(tài)電子器件組成,其構成的系統(tǒng)工作可靠性高。③抗干擾能力強,SSR不僅自身抗干擾能力強,而且對系統(tǒng)的干擾小。④響應快,響應時間為幾十毫秒,是繼電器種類中響應速度最快的。⑤壽命長,SSR是永久性或半永久性電子器件。
由于Arduino引腳輸出的為弱開關信號,當用戶輸入的開鎖秘鑰驗證成功時,系統(tǒng)通過串口控制輸出高電平,SSR采用NPN晶體管驅動方式加強系統(tǒng)輸出的驅動能力。
圖5 控制板主程序流程圖
3.1控制模塊程序設計
Arduino控制模塊程序設計采用官方提供的IDE集成開發(fā)環(huán)境,該環(huán)境基于C語言開發(fā),大部分參數(shù)設置函數(shù)化,操作便捷[7]。本系統(tǒng)主控程序主要完成驗證開鎖、修改秘鑰和設備重置三個操作。操作指令由智能終端APP通過藍牙模塊發(fā)送給Arduino,串口通信波特率設置為9600,主控程序通過識別串口接收數(shù)據(jù),執(zhí)行對應操作,用戶使用智能終端通過BLE藍牙模塊向控制板發(fā)送控制指令并接收控制板返回的狀態(tài)信息,控制板通過固態(tài)繼電器控制電磁鎖開關。實驗所設計的電路使用綠、紅、黃三種顏色的小燈分別對應開鎖、修改秘鑰、設備重置三種操作,小燈長亮表示操作成功,閃爍表示操作失敗。若秘鑰連續(xù)輸入錯誤5次以上則蜂鳴器發(fā)出警報響聲。系統(tǒng)對執(zhí)行模塊、蜂鳴器、LED燈的控制采用主程序調用子函數(shù)的方式??刂瓢逯鞒绦蛄鞒虉D如圖5所示。
相比于其他微處理器,Arduino的編程語言更為簡單和人性化,類C語言的風格和精簡的函數(shù)體系,大大減少了系統(tǒng)開發(fā)時間,Arduino程序由三個主要部分組成:(1)聲明變量和接口;(2)setup()函數(shù)進行初始化、接口模式、啟用庫等操作;(3)loop()函數(shù)執(zhí)行程序循環(huán)。控制模塊程序編譯界面如圖6所示。
圖6 Arduino程序編譯界面
3.2系統(tǒng)遠程控制端設計
系統(tǒng)遠程控制端由智能終端和云服務器兩部分組成,智能終端開發(fā),選擇目前較為廣泛使用的安卓操作系統(tǒng)。開發(fā)平臺使用Android Studio,它是一個集成度較高的Android開發(fā)平臺,使用Java語言進行代碼編寫,開發(fā)周期短,效率高。本系統(tǒng)開發(fā)的安卓APP,主要完成以下三個功能:⑴與門鎖設備通過藍牙模塊進行通信,按照指定格式發(fā)送操作指令。⑵與云服務器進行交互,驗證用戶身份、獲取門禁權限同時將用戶信息上傳至服務器進行保存。⑶從服務器和門鎖設備獲取門禁實時信息,供門禁設備管理員進行遠程監(jiān)控。本系統(tǒng)開發(fā)的安卓APP如圖7所示。
圖7 安卓APP主界面截圖
系統(tǒng)服務器代碼使用用PHP語言進行編寫,數(shù)據(jù)庫采用MySQL,數(shù)據(jù)庫文件名為BLElock.mdb 包含了用戶信息表、門禁設備表、設備使用信息表。服務器代碼、數(shù)據(jù)庫和接口程序部署在新浪SAE云端。Sina App Engine(簡稱SAE)是新浪研發(fā)中心于2009年8月開始內部開發(fā),并在2009年11月3日正式推出第一個Alpha版本的國內首個公有App Engine,SAE是新浪云計算戰(zhàn)略的核心組成部分。SAE選擇在國內流行最廣的Web開發(fā)語言PHP作為首選的支持語言,Web開發(fā)者可以在Linux/Mac/Windows上通過SVN或者Web版在線代碼編輯器進行開發(fā)、部署、調試,團隊開發(fā)時還可以進行成員協(xié)作,不同的角色將對代碼、項目擁有不同的權限;SAE提供了一系列分布式計算、存儲服務供開發(fā)者使用,包括分布式文件存儲、分布式數(shù)據(jù)庫集群、分布式緩存、分布式定時服務等,這些服務將大大降低開發(fā)者的開發(fā)成本。同時又由于SAE整體架構的高可靠性和新浪的品牌保證,大大降低了開發(fā)者的運營風險[8]。服務器結構功能圖如圖8所示。
圖8 服務器結構功能框圖
本文設計了一種基于BLE技術和Arduino單片機的門禁系統(tǒng)及其控制方法。通過安裝在智能終端的APP與門鎖藍牙模塊連接,用戶可以向Arduino發(fā)送開鎖、修改秘鑰、重置設備等信息;同時還使用新浪SAE云平臺為門禁系統(tǒng)設計了后臺服務器以存放用戶注冊信息、設備注冊信息、進行用戶身份識別,并對用戶通過門鎖APP反饋回來的信息進行處理。采用用戶識別和門鎖密鑰的雙重驗證方式達到最大可能地為藍牙門鎖用戶提供安全保障。同時通過網絡服務器提供的網絡服務,普通用戶可以向管理員申請開鎖認證,通過開鎖認證的用戶使用門鎖密鑰打開門鎖,簡化了公共場合有關門鎖的開鎖程序。
[1]俞萍,劉輝,郭有環(huán).智能家居門禁系統(tǒng)的設計與研究[J].哈爾濱師范大學自然科學學報,2015,06:91-94.
[2]趙建邦.基于云端、桌面登錄和門禁的安全身份識別解決方案[J].中國公共安全,2013,20:195-196.
[3]譚俊.手指靜脈身份識別門禁系統(tǒng)的研制[D].重慶理工大學,2013.
[4]蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,16:155-157.
[5]班茲.愛上Arduino[M].北京:人民郵電出版社,2012.
[6]鄭昊,鐘志峰,郭昊,許駿.基于Arduino/Android的藍牙通信系統(tǒng)設計[J]. 物聯(lián)網技術,2012,05:50-51.
[7]渠淼,牛國鋒,冒張霄,孫丹丹.基于Arduino的智能環(huán)境監(jiān)控系統(tǒng)設計[J].微型機與應用,2014,20:83-85.
[8]李景輝,余有靈.基于SAE的云計算原型服務平臺的架構與應用[J].信息技術與信息化,2015,11:84-87.
余成波(1965—),男,江西人,博士,研究生導師,主要研究方向:無線傳感器網絡。