傅浩桐 杜宇上



摘要 提出了一種供學生進行科技制作的智能門禁系統設計方案。智能門禁系統是通過Wi-Fi實現手機與門控鎖的交互,即把esp8266模塊設置為自動透傳模式,當成一個tcp的服務端連接到室內的Wi-Fi上,再用手機連接室內Wi-Fi監聽服務端的端口號,實現與Wi-Fi模塊的交互,進而通過Arduino開發板控制電控鎖,從而實現智能門禁系統。
【關鍵詞】Arduino物聯網電控鎖Wi-Fi tcp
市場上具備指紋識別或者刷卡識別等功能的門禁系統成本昂貴,不利于學生進行有關門禁系統的制作與設計嘗試。
物聯網技術一般是借助Wi-Fi,紅外,zigbee等無線載體實現物體之間的通訊。據統計,2012年我國家用Wi-Fi的普及率已達21.80%,表明國內大部分城市居民都接入了家用Wi-Fi。隨著我國社會經濟的飛速發展,居民對生活品質等方面的要求越來越高,家居智能化已漸漸成為必然的發展趨勢。
為了研發出一套結構簡單,設計合理,安全性高的門禁管理系統,為大學生進行電子科技制作提供案例,本選題擬采用Wi-Fi作為無線通訊載體,結合物聯網技術,利用手機app為操作終端,在門上嵌入電控鎖,通過手機向Wi-Fi接收模塊發送對應指令,經單片機處理后控制電控鎖開關,實現手機開關,加密解鎖,提醒關門等核心功能。相比較傳統方式,內嵌的電控鎖無需鑰匙孔,既減小鎖頭被撬的風險,又保證了門的外觀整潔。通過手機與門鎖的數據交互,用戶可及時通過手機監控門的開關狀態。
1 系統結構
本系統采用Wi-Fi技術,以智能手機作為控制端,設計出應用于門禁管理的定時開關控制系統。通過智能手機實現開關電路的開啟和關斷,并且有加密系統,實現門禁。如圖1系統結構圖所示,智能門禁系統主要結構由三部分組成,由電源管理部分供電,電控鎖模塊跟無線模塊進行數據的采集,再將采集到的數據提供給Arduino開發板,Arduino開發板再通過無線模塊,與智能手機客戶端進行數據的交互,實現無線開關,關門提醒,指令加密,狀態監控四個基本功能。
2 有關原理
2.1 Arduino
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。主要包含兩個主要的部分:硬件部分是可以用來做電路連接的Arduino電路板;Arduino IDE部分可以做計算機中的程序開發環境。Arduino能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是通過Arduino編程語言(基于Wiring)和Arduino開發環境(基于Processing)來實現的。
2.2 esp8266模塊
esp8266是樂鑫公司生產的低功耗Wi-Fi芯片,內置32位CPU,能夠獨立運行,也可以作為從機搭載于其他主機MCU運行,可以廣泛應用于智能家居、工業無線控制、無線傳感器等領域。esp8266芯片使用了3.3V的直流電源,體積小,功耗低,支持透傳,丟包現象不嚴重,而且價格不貴。esp8266官方提供的rom主要有兩個,一個是支持at命令修改參數的at系列rom,使用此rom時,可以使用at命令來設置芯片的大部分參數,同時也可將芯片設置為透傳模式,這樣esp8266就相當于在互聯網和UART之間架起了一座橋梁。
另一個就是物聯網的rom了,此rom可以通過命令來控制esp的部分GPIO,而且esp8266也可以采集一些溫濕度傳感器的數據,然后發送到互聯網上。
2.3 繼電器
繼電器是一種電子控制器件,它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。
2.4 TCP
TCP (Transmission Control Protocol傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由IETF的RFC793定義。在簡化的計算機網絡OSI模型中,它完成第四層傳輸層所指定的功能,用戶數據報協議(UDP)是同一層內另一個重要的傳輸協議。在因特網協議族(Intemet protocolsuite)中,TCP層是位于IP層之上,應用層之下的中間層。不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。
3 具體實現方法
3.1 硬件部分
基于Arduino的智能門禁系統的硬件部分由三部分組成,分別為接收端esp8266模塊、Arduino控制處理器和電控鎖執行端,電控鎖執行端包括電控鎖、電源適配器、LED小燈泡和繼電器,如圖2所示。
3.1.1 接收端esp8266模塊
把esp8266模塊作為一個TCP的服務端掛到室內的Wi-Fi上,用于接收手機發送的消息,再傳達給Arduino控制處理器。
3.1.2 Arduino控制處理器
Arduino控制處理器為圖2所示的Arduino主控板。寫入代碼,識別接收端收到手機端輸入的密碼,再對此做出判斷,實現自動開鎖功能。在門鎖打開的情況下,Arduino控制處理器會點亮提示燈,提醒用戶記得鎖門。
3.1.3 電控鎖執行端
由一個接收到輸入高電平就自動打開的電控鎖、一個電源適配器、一個繼電器和一個LED燈組成。在接收到Arduino控制處理器發送的信號之后開鎖,實現智能門禁系統的自動開鎖功能。
3.2 軟件部分
基于Arduino的智能門禁系統的軟件部分由三部分組成,分別為esp8266模塊的代碼,Arduino控制處理器的代碼還有手機端的app。
3.2.1 esp8266模塊的代碼部分
(1)連接設置:
const char *ssid =“E104”;∥這里是要連接的Wi-Fissid
const char *password=”chuangke”;∥連接的Wi-Fi密碼
const char *host=”192.168.0.122”:∥修改為手機的的tcp Server服務端的IP地址,即手機在路由器上的ip
const inr tcpPort= 8266; ∥修改建立的Server服務端的端口號
(2)接收與發送:Wi-Fi模塊時刻掃描緩存區是否有接收到數據,接收到后把無線讀取到的數據轉發到串口,Arduino控制處理器從而獲得手機端發送的數據。同時,Wi-Fi模塊把串口讀取到的數據轉發給手機端,手機端就可得知Arduino控制處理器是否接收到數據?!?.2.2 Arduino控制處理器的代碼
如圖3,先判斷串口的緩存區是否有收到數據,收到數據后把數據存進數組變量,清空緩存區后,判斷密碼是否正確。若正確,則判斷是開鎖指令還是關鎖指令。若為開鎖指令,則打開電控鎖并點亮LED提示燈,提醒用戶記得關門;否則,復位電控鎖關閉LED提示燈。
3.2.3 手機發送端app
手機連到室內Wi-Fi上,再用app監聽該Wi-Fi下設定的服務端,即可實現手機與esp8266模塊之間信息的交互。
4 智能門禁管理系統的工作流程
先給esp8266模塊通電,使其接上室內的Wi-Fi,再用手機連上室內的Wi-Fi并監聽該Wi-Fi下指定的TCP服務器,手機監聽連接后即可輸入密碼,esp82266模塊接收到信息后傳給Arduino控制處理器,對其輸入的密碼識別判斷后確定是否開門,若處于開門狀態,LED燈會常亮,提醒用戶記得關門。
5 調試過程說明
代碼設置方面,esp8266模塊燒入的代碼中有包括室內Wi-Fi的ip地址還有設置TCP服務端端口號,此兩項需要在手機端輸入,才能實現對服務端的監聽。
6 結束語
本文介紹了一種基于Arduino的智能門禁管理系統,具有易作為學生進行科技制作的特點。因物聯網發展的必然趨勢與本門禁系統的簡單實用,故本文在學生進行創新技能培養方面具有參考價值和廣闊的應用前景。
參考文獻
[1]季千惠,基于NFC的物聯網接入點設計與實現[D],上海交通大學,2015.
[2]楊少蔚,張波.Wi-Fi傳輸與接入技術的發展研究[J].信息與電腦:理論版,2017 (13):172-173,176.
[3]蔡睿妍.Arduino的原理及應用[J].電子設計工程,2012,20(16):155-157.
[4]范興隆.ESP8266在智能家居監控系統中的應用[J].單片機與嵌入式系統應用,2016,16 (09): 52-56.
[5]馮先成,李德駿,計算機網絡及應用[M].武漢:華中科技大學出版社,2011.
【6]徐濟仁,陳家松,構建Internet網絡的TCP/IP協議簡介[J].電視工程,2004 (01):49-49.