張棚 于娟 劉星 程洪強(qiáng) 張波
(攀枝花學(xué)院智能制造學(xué)院 四川省攀枝花市 617000)
伴隨著互聯(lián)網(wǎng)和嵌入式技術(shù)的發(fā)展,智能家居因此得到蓬勃發(fā)展,并且成為物聯(lián)網(wǎng)的主要領(lǐng)域之一。物聯(lián)網(wǎng)包含傳感器、控制器、大數(shù)據(jù)、人工智能等互聯(lián)網(wǎng)技術(shù)。傳感器實現(xiàn)AD 轉(zhuǎn)化信息的收集,而互聯(lián)網(wǎng)則實現(xiàn)信號傳遞,因此人們可以通過手機(jī)、電腦等顯示操控裝置查看控制器操作以及環(huán)境情況。物聯(lián)網(wǎng)系統(tǒng)可以應(yīng)用在及其復(fù)雜的環(huán)境下進(jìn)行工作,這樣可以提高人們的工作效率以及安全,物聯(lián)網(wǎng)應(yīng)用領(lǐng)域及其的廣泛,可以應(yīng)用到工業(yè)、農(nóng)業(yè)、以及智能家居等諸多領(lǐng)域。物聯(lián)網(wǎng)門禁系統(tǒng)則是通過攝像頭采集門外圖像信息,通過Wi-Fi模塊與互聯(lián)網(wǎng)連接,實現(xiàn)顯示信號的傳遞,再通過大數(shù)據(jù)、云計算傳輸?shù)绞謾C(jī)APP[3]。
基于STM32 的智能家居門禁系統(tǒng)包括手機(jī)APP 客戶端,網(wǎng)絡(luò)服務(wù)器和STM32 接收端。用戶可以根據(jù)智能手機(jī)APP 查看門外情況,再根據(jù)實際情況通過手機(jī)APP 發(fā)送控制指令至網(wǎng)絡(luò)服務(wù)器,STM32 為接收端[6]。用戶通過智能手機(jī)APP 可以發(fā)送指令給網(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器將接受到的指令轉(zhuǎn)發(fā)到家中的STM32 接受設(shè)備,STM32 在把網(wǎng)絡(luò)服務(wù)的指令解釋和處理之后進(jìn)行電機(jī)控制帶動門鎖的開,輕松、便捷的實現(xiàn)門的開,提高用戶的居住安全和生活質(zhì)量以及便捷度??刂葡到y(tǒng)框圖如圖1 所示。
硬件設(shè)計主要有四大模塊:網(wǎng)絡(luò)模塊ESP8266、STM32 模塊、電機(jī)控制模塊以及攝像頭模塊,其中STM32 為主控模塊。結(jié)構(gòu)設(shè)計框圖具體如圖2 所示。
ST(意法半導(dǎo)體)推出了以基于ARM Cortex-M4 為內(nèi)核的STM32F4 系列高性能微控制器,其采用了90 納米的NVM 工藝和ART(自適應(yīng)實時存儲器加速器,Adaptive Real-Time Memory Accelerator)。ART 技術(shù)使得程序零等待執(zhí)行,提升了程序執(zhí)行的效率,將Cortext-M4 的性能發(fā)揮到了極致,使得STM32 F4 系列可達(dá)到210DMIPS@168MHz。自適應(yīng)實時加速器能夠完全釋放Cortex-M4 內(nèi)核的性能;當(dāng)CPU 工作于所有允許的頻率(≤168MHz)時,在閃存中運(yùn)行的程序,可以達(dá)到相當(dāng)于零等待周期的性能。此設(shè)計采用的是STM32F407 芯片[5]。
圖1:控制系統(tǒng)框圖
圖2:結(jié)構(gòu)設(shè)計框圖
圖3:ESP8266 模塊電路圖
圖4:攝像頭模塊電路原理圖
此設(shè)計采用的網(wǎng)絡(luò)模塊為ESP8266 模塊,ESP8266 是上海樂鑫信息科技設(shè)計的低功耗Wi-Fi 芯片,集成完整的TCP/IP 協(xié)議棧和MCU。TCP 是傳輸層協(xié)議,是在網(wǎng)絡(luò)層IP 協(xié)議的基礎(chǔ)上封裝而來。我們只需使用系統(tǒng)所提供的相關(guān)接口“拿來即用”,比如網(wǎng)絡(luò)編程中的Socket。ESP8266 模塊中也實現(xiàn)了TCP/IP 協(xié)議棧,模塊作為客戶端可輕松使用AT 指令向服務(wù)端發(fā)起TCP 連接。連接TCP 服務(wù)器并開啟透傳模式后,模塊串口收到的數(shù)據(jù)就會通過TCP 連接透傳到服務(wù)端,這樣就完成數(shù)據(jù)從硬件串口通過網(wǎng)絡(luò)到程序進(jìn)程的傳輸,實現(xiàn)軟硬結(jié)合。通過ESP8266 模塊,串口設(shè)備僅僅需要根據(jù)模塊通信協(xié)議,再進(jìn)行串口配置,通過Wi-Fi 進(jìn)行數(shù)據(jù)的傳輸[7]。ESP8266 模塊電路圖如圖3。
圖5:手機(jī)APP 示意圖
圖6:STM32 模塊與ESP8266 模塊通信原理圖
ATK -Wi-Fi- MODULE 是ALIENTEK 推出的一款百萬高清Wi-Fi 航拍攝像頭模塊,該模塊支持在平板/手機(jī)端 1280x720 分辨率錄像和拍照,以及圖像實時回傳。一個 N-MOS 管 SI2302 用來控制電源的通斷,控制腳為 E_CS1/PB0; D2 為防反接保護(hù)二極管;10K 電阻 R3 上拉到 3.0V,用作檢測該模塊的 ID;然后模塊和 Mini Fly 的串口通信接口E_RX1/PB3, 為單向通信(模塊發(fā),Mini Fly 收),波特率 19200bps。電路原理圖如圖4。
APP 設(shè)計有Android Studio 軟件和模擬器Genymotion 進(jìn)行開發(fā)[2]。Android 平臺由Application. Application Framework、Libraries、Linuх Кеrnеl 四層結(jié)構(gòu)。Android 操作系統(tǒng)支持所有的網(wǎng)絡(luò)制式,包括GSM/EDGE、IDEN、CDMA、EV-DO、TD-SCDMA、Wi-Fi 等。Android 應(yīng)用程序由services、providers、activities 等組件構(gòu)成[1]。手機(jī)APP 示意圖如圖5 所示。
TCP 名為傳輸控制協(xié)議,是基于連接的通信協(xié)議。在互聯(lián)網(wǎng)設(shè)備進(jìn)行通信之前,數(shù)據(jù)交流的雙方必須建立安全可靠的連接。TCP 協(xié)議使用了重傳機(jī)制,在接收端接收到發(fā)送端發(fā)送的一個報文之后,會返回響應(yīng)報文,如果發(fā)送端沒有收到這個響應(yīng)報文,則會繼續(xù)重發(fā),這樣即便在網(wǎng)絡(luò)擁塞時,也不會出現(xiàn)傳輸錯誤的情況。在Java 中,JDK 提供了TCP、UDP 網(wǎng)絡(luò)通信的API,其中的Socket, ServerSocket 兩個類用來建立TCP/IP 協(xié)議的網(wǎng)絡(luò)通信,Socket 本質(zhì)上就是對傳輸層中的TCP 協(xié)議進(jìn)行了的封裝,,由于TCP 是端到端的通信,要實現(xiàn)Socket 的傳輸,就要構(gòu)建客戶端與服務(wù)端[4]。由于兩個通信實體已經(jīng)連接,所以并沒有區(qū)分客戶端與服務(wù)端,但在兩個通信實體通信之前,其中作為服務(wù)端的一方需要建立等待連接的機(jī)制,等待客戶端的請求,這時就需要ServerSocket 對象監(jiān)聽來自客戶端的Socket 連接,如果沒有連接,將會一直處于等待狀態(tài)。當(dāng)ESP8266 模塊接受到手機(jī)發(fā)送的信號時,會發(fā)送一個響應(yīng)報文來確實手機(jī)與ESP8266 模塊的連接成功,當(dāng)手機(jī)沒有接受到響應(yīng)報文則會一直發(fā)送,直到接受到信號停止。采用TCP 協(xié)議進(jìn)行網(wǎng)絡(luò)通信更為簡單,使用更加方便,只需要根據(jù)協(xié)議進(jìn)行通信。
首先STM32 模塊通過對ESP8266 模塊對通信協(xié)議TCP/IP 實現(xiàn)配置,在TCP 客戶端模式下,STM32 模塊接受端接收到遠(yuǎn)程服務(wù)器發(fā)出連接請求,遠(yuǎn)程服務(wù)器的監(jiān)視程序開始運(yùn)行,則建立連接。在建立連接后,接受端與遠(yuǎn)程服務(wù)器可以進(jìn)行雙向數(shù)據(jù)傳輸,手機(jī)APP 與ESP8266 模塊形成連接后,手機(jī)APP 發(fā)送指令到ESP8266模塊,再次ESP8266 模塊發(fā)送信號到STM32 模塊,如圖6 所示;STM32 模塊發(fā)出信號接受攝像頭數(shù)據(jù)以及控制電機(jī)轉(zhuǎn)動,達(dá)到開門與查看攝像頭圖像的效果。
經(jīng)過反復(fù)測試,該門禁系統(tǒng)能通過手機(jī)APP 對房門進(jìn)行開關(guān)控制并查看門外情況,且有如下優(yōu)點:基于Android 的手機(jī)APP 通用性強(qiáng),可在此基礎(chǔ)上進(jìn)行二次開發(fā),可擴(kuò)展性強(qiáng),市場應(yīng)用價值高,成本價低,設(shè)計穩(wěn)定可靠。