





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