基于ESP32的智能家居安防系統(tǒng)
臧殿紅
(泰安技師學(xué)院,山東 泰安 271000)
摘 要:隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,人們對(duì)智能家居安全性的要求也越來(lái)越高,希望有一種安防系統(tǒng)能及時(shí)發(fā)現(xiàn)各種險(xiǎn)情并通知戶主,保證人們的生命財(cái)產(chǎn)安全。因此,設(shè)計(jì)一種智能家居安防系統(tǒng)。利用多種傳感器檢測(cè)家居環(huán)境,比如:溫濕度、門的開(kāi)關(guān)狀態(tài)、煙霧體積分?jǐn)?shù)、CO體積分?jǐn)?shù)等參數(shù)以及火焰狀態(tài)等,檢測(cè)結(jié)果在OLED顯示屏顯示并上傳至MQTT服務(wù)器,用戶可通過(guò)手機(jī)遠(yuǎn)程查看,當(dāng)家居環(huán)境出現(xiàn)異常時(shí),系統(tǒng)發(fā)出聲光報(bào)警信號(hào),并向用戶手機(jī)發(fā)出危險(xiǎn)提示信息,實(shí)現(xiàn)防盜、防火、防有毒氣體的功能。經(jīng)驗(yàn)證,該系統(tǒng)運(yùn)行穩(wěn)定,靈敏度高,擁有廣闊的應(yīng)用前景。
關(guān)鍵詞:ESP32;智能家居;安防系統(tǒng);物聯(lián)網(wǎng)技術(shù);MQTT服務(wù)器;MicroPython
中圖分類號(hào):TP23 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2025)02-0-03
0 引 言
隨著人們生活水平的提高,人們對(duì)住宅的安全性和智能性的要求也越來(lái)越高,希望有一種安防系統(tǒng)能及時(shí)發(fā)現(xiàn)各種險(xiǎn)情并通知戶主,保證人們的生命財(cái)產(chǎn)安全。文獻(xiàn)[1]設(shè)計(jì)的基于ZigBee技術(shù)的智能家居安防系統(tǒng),采用ZigBee技術(shù)進(jìn)行設(shè)計(jì),但產(chǎn)品開(kāi)發(fā)難度大,開(kāi)發(fā)周期長(zhǎng),成本高。文獻(xiàn)[2]
設(shè)計(jì)的安防系統(tǒng)以AT89C52為主控芯片,采用GSM無(wú)線通信模塊、ESP8266 WiFi模塊實(shí)現(xiàn)相關(guān)功能,但硬件電路復(fù)雜,成本高,開(kāi)發(fā)難度大。本文設(shè)計(jì)的智能家居安防系統(tǒng),采用自帶WiFi模塊的ESP32為主控芯片,硬件電路簡(jiǎn)單,軟件開(kāi)發(fā)難度小,能方便地實(shí)現(xiàn)遠(yuǎn)程通信,能夠在有人打開(kāi)房門、CO或煙霧體積分?jǐn)?shù)超過(guò)設(shè)定值或檢測(cè)到火焰時(shí)及時(shí)觸發(fā)報(bào)警電路并發(fā)送信息到用戶手機(jī),用戶也可遠(yuǎn)程查看家庭安全情況,進(jìn)行安防系統(tǒng)的布防和撤防操作,實(shí)現(xiàn)防盜、防火、防有毒氣體等功能。
1 系統(tǒng)總體方案設(shè)計(jì)
系統(tǒng)以ESP32為主控芯片,配以門磁傳感器、溫濕度傳感器、CO傳感器、煙霧傳感器和火焰?zhèn)鞲衅鳈z測(cè)門的開(kāi)關(guān)狀態(tài)、溫濕度值、CO和煙霧的體積分?jǐn)?shù)等,具體功能如下:
(1)環(huán)境的溫濕度數(shù)據(jù)、門的開(kāi)關(guān)狀態(tài)、氣體傳感器的檢測(cè)值等數(shù)據(jù)在OLED顯示屏上顯示,并利用WiFi將檢測(cè)數(shù)據(jù)上傳至MQTT服務(wù)器,用戶可在手機(jī)上查看家居環(huán)境參數(shù);
(2)當(dāng)門被打開(kāi)或被測(cè)氣體體積分?jǐn)?shù)超過(guò)設(shè)定值時(shí),報(bào)警電路產(chǎn)生聲光報(bào)警,同時(shí)系統(tǒng)向用戶手機(jī)發(fā)送信息,提示用戶家居環(huán)境存在異常;
(3)系統(tǒng)有布防和撤防兩種工作模式,當(dāng)系統(tǒng)處于撤防模式時(shí),不會(huì)產(chǎn)生報(bào)警信號(hào),模式的切換可通過(guò)按鍵操作,也可通過(guò)手機(jī)遠(yuǎn)程操作。
根據(jù)以上功能要求,本文設(shè)計(jì)了基于ESP32的智能家庭安防系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 主控芯片ESP32
主控模塊采用樂(lè)鑫科技有限公司出品的ESP32-WROOM模組。ESP32是一款功能強(qiáng)大的微控制器芯片,具有較高的集成度,將天線、功率放大器、電源管理器和濾波器等集于一體[3],使用時(shí)只需較少的外圍設(shè)備即可實(shí)現(xiàn)強(qiáng)大的處理功能。模組內(nèi)置WiFi模塊,免除了外接WiFi或ZigBee模塊的麻煩[4],使用時(shí),ESP32直接與家中的WiFi連接,實(shí)現(xiàn)與云服務(wù)器的數(shù)據(jù)交換,從而在手機(jī)上可以查看數(shù)據(jù)或進(jìn)行遠(yuǎn)程控制。
2.2 門磁傳感器MC
門磁傳感器即門磁開(kāi)關(guān),用于檢測(cè)門的開(kāi)關(guān)狀態(tài),一般由兩個(gè)磁鐵和一個(gè)開(kāi)關(guān)組成,當(dāng)門關(guān)閉時(shí),兩個(gè)磁鐵靠近,開(kāi)關(guān)接通;當(dāng)門打開(kāi)時(shí),兩個(gè)磁鐵遠(yuǎn)離,開(kāi)關(guān)斷開(kāi)。當(dāng)門打開(kāi)時(shí),GPIO12為高電平;當(dāng)門關(guān)閉時(shí),GPIO12為低電平。ESP32通過(guò)檢測(cè)GPIO12的電平變化判斷門的開(kāi)關(guān)狀態(tài),實(shí)現(xiàn)監(jiān)測(cè)和報(bào)警。
2.3 CO和煙霧傳感器
CO傳感器MQ-7和煙霧傳感器MQ-2都是基于SnO2半導(dǎo)體氣敏材料設(shè)計(jì)的氣體傳感器。當(dāng)傳感器接觸到被測(cè)氣體時(shí),其電導(dǎo)率隨被測(cè)氣體的體積分?jǐn)?shù)增加而增大[5],將傳感器與電阻串聯(lián)后外加電壓,當(dāng)氣體體積分?jǐn)?shù)升高時(shí),電阻兩端的電壓升高,通過(guò)測(cè)量輸出電壓的變化,就可以得到被測(cè)氣體的體積分?jǐn)?shù)。常用的氣體傳感器模塊有4個(gè)引腳,VCC和GND分別接電源和地;AO是模擬電壓輸出引腳,被測(cè)氣體體積分?jǐn)?shù)越高,輸出電壓越高;DO是數(shù)字量輸出引腳,當(dāng)被測(cè)氣體體積分?jǐn)?shù)大于設(shè)定值時(shí),DO引腳輸出低電平。
2.4 火焰?zhèn)鞲衅?/p>
火焰?zhèn)鞲衅饕话悴捎眉t外接收管,它對(duì)火焰產(chǎn)生的紅外線非常敏感,火焰亮度越大,發(fā)出的紅外線越多,火焰?zhèn)鞲衅鞴苣_間的阻抗越?。划?dāng)火焰亮度變小時(shí),發(fā)出的紅外線變少,火焰?zhèn)鞲衅鞴苣_間的阻抗變大。常用的火焰?zhèn)鞲衅髂K有4個(gè)引腳,VCC和GND引腳分別連接電源和地,AO是電壓輸出引腳,DO是數(shù)字量輸出引腳,傳感器周圍火焰越大,AO端輸出的模擬電壓越小,當(dāng)火焰強(qiáng)度大于設(shè)定值時(shí),DO引腳輸出低電平,調(diào)節(jié)電位器可改變火焰?zhèn)鞲衅鲾?shù)字輸出端DO的靈敏度[6]。
2.5 溫濕度傳感器DHT11
DHT11是一款數(shù)字式溫濕度傳感器,其內(nèi)部具有自動(dòng)校準(zhǔn)模塊,可對(duì)所采集的溫濕度數(shù)據(jù)進(jìn)行整合處理,具有響應(yīng)快、數(shù)據(jù)處理能力強(qiáng)、抗干擾性能高等優(yōu)點(diǎn)[7]。DHT11采用單總線雙向串行通信協(xié)議,每次采集均先由主控芯片發(fā)起開(kāi)始信號(hào),DHT11發(fā)送響應(yīng)并傳輸40位數(shù)據(jù)幀,數(shù)據(jù)格式為:8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)+8 bit校驗(yàn)值[8]。溫濕度小數(shù)數(shù)據(jù)一般默認(rèn)為0。
2.6 液晶顯示器OLED
液晶顯示器用來(lái)顯示溫度、濕度、門的狀態(tài)以及各種傳感器的檢測(cè)結(jié)果,本系統(tǒng)采用由SSD1306驅(qū)動(dòng)的OLED液晶顯示屏,它支持點(diǎn)陣圖像顯示、字符顯示、圖形顯示等多種顯示模式,可通過(guò)I2C、SPI以及并口進(jìn)行通信控制[9]。本系統(tǒng)中的OLED(SSD1306驅(qū)動(dòng)芯片)屏采用I2C與ESP32通信,擁有128×64的分辨率,顯示效果清晰,可顯示4行16列的字體信息。
根據(jù)以上分析,系統(tǒng)的電路原理如圖2所示。系統(tǒng)將氣體傳感器的模擬輸出電壓和ESP32的ADC模擬信號(hào)輸入通道相連,用來(lái)檢測(cè)氣體體積分?jǐn)?shù)。采用按鍵的下降沿觸發(fā)ESP32的中斷和在中斷函數(shù)中控制模式變量的值翻轉(zhuǎn),實(shí)現(xiàn)布防和撤防模式切換。模式切換也可由用戶通過(guò)手機(jī)遠(yuǎn)程操作實(shí)現(xiàn)。
3 軟件設(shè)計(jì)
系統(tǒng)的軟件部分包括ESP32控制器端軟件設(shè)計(jì)、服務(wù)器端軟件設(shè)計(jì)和用戶端軟件設(shè)計(jì)。
3.1 控制器端軟件設(shè)計(jì)
ESP32控制器端的軟件采用MicroPython開(kāi)發(fā),MicroPython是運(yùn)行在微控制器上的縮減版Python解釋器,執(zhí)行Python代碼,讓微控制器實(shí)現(xiàn)相應(yīng)功能[10]。
控制器端軟件主要包括MQTT模塊和主程序模塊。MQTT是一個(gè)基于客戶端服務(wù)器架構(gòu)、面向發(fā)布/訂閱模型的物聯(lián)網(wǎng)消息傳輸協(xié)議,目的是發(fā)布信息與訂閱主題的模塊文件[11],主要功能是創(chuàng)建MQTT客戶端對(duì)象(MQTTClient)、連接MQTT服務(wù)器,以及發(fā)布監(jiān)測(cè)到的信息:information/temperature、information/smoke、information/fire等,此外MQTT還要發(fā)布形如danger/temperature的溫度、火焰等各類報(bào)警信息,另外還要訂閱來(lái)自手機(jī)端通過(guò)Web服務(wù)器發(fā)布到MQTT服務(wù)器的布防與撤防信息:control/openAlarm、control/clearAlarm。
根據(jù)系統(tǒng)的功能要求,主程序設(shè)計(jì)流程如圖3所示。
系統(tǒng)上電后先進(jìn)行初始化,再讀取MQTT接收到的來(lái)自手機(jī)端的控制信息并進(jìn)行處理,然后讀取各傳感器的輸出值并在OLED顯示屏上顯示,并通過(guò)MQTT服務(wù)器發(fā)布采集到的數(shù)據(jù),最后判斷傳感器采集到的數(shù)據(jù)是否超出設(shè)定值。如果采集的數(shù)據(jù)超出則觸發(fā)聲光報(bào)警器產(chǎn)生報(bào)警信號(hào),并向MQTT服務(wù)器發(fā)布報(bào)警信息,提示用戶家居環(huán)境存在異常,延時(shí)1 s后進(jìn)行循環(huán)操作。
3.2 MQTT服務(wù)器搭建
本系統(tǒng)使用的MQTT服務(wù)器部署在騰訊云的
Ubuntu 20.04上,通過(guò)EMQX的鏡像創(chuàng)建一個(gè)MQTT服務(wù)器,用于客戶端認(rèn)證,內(nèi)置數(shù)據(jù)庫(kù)中為ESP32控制器端添加用戶mqttesp,為Web服務(wù)器添加用戶名mqttwww,用于控制端MQTTClient和網(wǎng)站服務(wù)器登錄MQTT服務(wù)器。
3.3 Web服務(wù)器軟件設(shè)計(jì)
本系統(tǒng)實(shí)現(xiàn)的Web服務(wù)器主要有兩個(gè)功能,一是和MQTT服務(wù)器交互,用于各類信息的發(fā)布和訂閱;二是和手機(jī)客戶端交互,把訂閱的信息推送到手機(jī)客戶端,也可以把手機(jī)客戶端的控制信息通過(guò)MQTT發(fā)布出去。
Web服務(wù)器軟件部署在騰訊云的Ubuntu 20.04上,采用Flask編寫,使用Flask-Socket I/O與手機(jī)客戶端交互,把來(lái)自MQTT服務(wù)器的訂閱信息發(fā)送給手機(jī)客戶端,同時(shí)把來(lái)自手機(jī)客戶端的布防消息和撤防消息發(fā)布到MQTT。網(wǎng)站頁(yè)面采用HTML5編寫,并使用Bootstrap4框架適配不同的手機(jī)移動(dòng)設(shè)備。
3.4 手機(jī)端軟件設(shè)計(jì)
為便于實(shí)現(xiàn)上述功能,手機(jī)端和Web服務(wù)器的交互采用WebView控件,通過(guò)WebView控件加載Web服務(wù)器頁(yè)面。
4 系統(tǒng)調(diào)試分析
系統(tǒng)的硬件和軟件設(shè)計(jì)完成后,先進(jìn)行PCB電路板的制作,再將程序下載到ESP32中運(yùn)行,OLED顯示屏能正常顯示各傳感器測(cè)量的數(shù)據(jù)。測(cè)試時(shí)在火焰?zhèn)鞲衅髦苓叴蜷_(kāi)打火機(jī),聲光報(bào)警系統(tǒng)會(huì)發(fā)出警報(bào),說(shuō)明系統(tǒng)能正常運(yùn)行。用戶通過(guò)手機(jī)或電腦登錄網(wǎng)址,能順利查看相應(yīng)數(shù)據(jù),數(shù)據(jù)按設(shè)定的周期正常刷新。測(cè)試時(shí)火焰?zhèn)鞲衅髦苓呌谢鹧?,用戶能接收到家居環(huán)境異常提示信息,通過(guò)查看各傳感器的輸出值可發(fā)現(xiàn)家居環(huán)境的異常情況,及時(shí)采取相應(yīng)措施,用戶也可通過(guò)手機(jī)端遠(yuǎn)程進(jìn)行布防和撤防操作。調(diào)試結(jié)果證明系統(tǒng)設(shè)計(jì)正確、可靠。
5 結(jié) 語(yǔ)
本文設(shè)計(jì)的智能家居安防系統(tǒng)采用ESP32作為主控芯片,采用多種傳感器監(jiān)測(cè)家居環(huán)境的溫濕度、煙霧體積分?jǐn)?shù)、CO體積分?jǐn)?shù)等參數(shù)以及門的開(kāi)關(guān)狀態(tài)、火焰狀態(tài)等,這些信息不僅可以在OLED顯示屏上顯示,還能通過(guò)服務(wù)器方便用戶在手機(jī)上進(jìn)行遠(yuǎn)程查詢,當(dāng)家居環(huán)境有異常時(shí),系統(tǒng)不僅產(chǎn)生聲光報(bào)警,還能及時(shí)給用戶發(fā)送信息,實(shí)現(xiàn)防盜、防火、防有毒氣體的功能,具有一定的實(shí)用性。今后可在此基礎(chǔ)上,加入家居新風(fēng)系統(tǒng)、自動(dòng)滅火裝置等模塊,實(shí)現(xiàn)更加智能化的家居安防控制,為人們創(chuàng)造更加安全、健康、舒適的家居環(huán)境。
參考文獻(xiàn)
[1]王剛.基于ZigBee技術(shù)的智能家居安防系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[J].信息與電腦(理論版),2023,35(17):104-106.
[2]程晶晶,周明龍.基于AT89C52單片機(jī)的智能家居安防系統(tǒng)設(shè)計(jì)[J].太原學(xué)院學(xué)報(bào)(自然科學(xué)版),2023,41(2):71-77.
[3]冷宇.基于ESP32的遠(yuǎn)程家居控制系統(tǒng)設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2022,19(24):86-88.
[4]狄新宇,刁宇杰,朱泓宇,等.基于 ESP32 的智能物聯(lián)網(wǎng)臺(tái)燈設(shè)計(jì)[J].林業(yè)機(jī)械與木工設(shè)備,2023,51(1):47-51.
[5]胡林林,付龍,吳偉.基于AT89C52單片機(jī)的智能家居環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].信息技術(shù)與信息化,2021(12):75-78.
[6]池雪艷.基于單片機(jī)的無(wú)線智能家居環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[D].包頭:內(nèi)蒙古科技大學(xué),2021.
[7]張夢(mèng)瑤.基于Arduino智能家居及健康監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[D].沈陽(yáng):沈陽(yáng)師范大學(xué),2019.
[8]葉俊明.基于SIM900A的溫濕度采集與傳輸[J].數(shù)碼世界,2016(10):136.
[9]覃昇學(xué),葉運(yùn)黎,陳錦輝,等.基于 ESP32 的溫度控制檢測(cè)裝置[J].信息記錄材料,2023,24(9):185-188.
[10]董俊杰,彭亞斌. MicroPython軟件開(kāi)發(fā)平臺(tái)的ESP32-C3通信性能測(cè)試[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2023,23(2):57-60.
[11]田莉,左恒,郝雯娟,等.基于物聯(lián)網(wǎng)技術(shù)的設(shè)施農(nóng)業(yè)環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2024,14(1):18-21.
作者簡(jiǎn)介:臧殿紅(1976—),女,碩士,高級(jí)講師,研究方向?yàn)殡姽る娮印?/p>
收稿日期:2024-01-29 修回日期:2024-03-11