李杭青
(中國民航大學電子信息與自動化學院,天津 300300)
隨著經濟社會的快速發展和人民生活水平的顯著提高,人們對居住環境的舒適性需求日益增強。然而,傳統家居依賴人工操作,在應對突發危險情況時的靈活性不足。近年來,物聯網技術高速發展,繼計算機、互聯網、移動通信,成為又一輪技術革新熱潮,這使得基于物聯網技術實現智能化家居控制系統的設想得以落地[1]。智能家居控制系統能夠遠程控制家居設備并實時監控家庭環境,從而提供安全舒適的居住環境。
智能家居控制系統的整體架構可以劃分為物理層、網絡層以及應用層3 個層級[2]。物理層的主要工作是采集家庭環境數據,主要包含微處理器、多種傳感器及控制器件。利用傳感器進行數據采集,并控制機械執行層,由微處理器控制設備進行相應操作。網絡層的主要工作是完成數據和控制指令的傳輸,根據傳輸距離選擇采用適宜的傳輸方式。系統中用戶端與云平臺之間、云平臺與家居設備之間使用消息隊列遙測傳輸協議(Message Queuing Telemetry Transport,MQTT)進行通信。應用層的主要工作是完成數據的處理和可視化,系統使用微信小程序作為用戶端。與傳統的Android APP 相比,微信小程序具有免注冊、免下載、開發便捷、操作簡單的優點。用戶訂閱云平臺消息并通過微信小程序以可視化的形式實時了解家庭環境情況[3]。系統整體設計如圖1 所示。

圖1 系統整體設計
智能家居控制系統采用模塊化設計,包括主控模塊、環境信息采集模塊、網絡通信模塊、報警模塊、驅動模塊以及電源模塊。
本文設計的系統中,采用Arm Cortex-M3 內核的STM32F103C8T6 單片機作為主控模塊。主控模塊具有2 個基本定時器、3 個通用定時器及2 個高級定時器,利用高級定時器實現舵機角度的精準控制[4]。與ESP8266 之間通過串口進行通信,作為下位機負責采集、處理環境數據和機械端指令控制等操作。此外,主控模塊驅動傳感器檢測相關環境信息,并向ESP8266 傳送相關數據。
環境信息采集模塊包括DHT11 溫濕度傳感器和MQ-2 煙霧傳感器。其中,DHT11 溫濕度傳感器采用單線串行接口,具有響應快、抗干擾能力強、性價比高及功耗低的優點[5]。DATA 引腳與單片機PB11 引腳相連。應用時,主控模塊向DHT11 模塊發送開始信號,DHT11模塊接收到信號后向主控模塊發送信號,通知主控模塊準備接收數據,隨后通過DATA 引腳向主控模塊發送溫濕度數據。MQ-2 煙霧傳感器是一種常用的氣體泄漏檢測裝置,當所處環境中存在可燃氣體時,可以將可燃氣體濃度轉換為與其相對應的數字輸出信號[6]。具有靈敏度高、穩定性好、使用壽命長等特點。
網絡通信模塊采用ESP8266 Wi-Fi 模塊,內置32 位微型微控制單元(Micro Controller Unit,MCU),可通過串口與主控制器進行通信,利用AT 指令進行控制。該模塊將作為本系統的網關,負責連接阿里云服務器與主控模塊,實現網絡通信功能。
驅動模塊由S20F 數字舵機和繼電器組成。S20F數字舵機接收脈沖寬度調制(Pulse Width Modulation,PWM)信號,通過控制轉動角度來實現窗戶的開關。繼電器用于控制照明設備的開關狀態。這樣的設計能夠有效實現智能家居的自動化控制,提升居住體驗的便利性和舒適度。
利用有源蜂鳴器實現報警功能。采用直流電壓供電,工作電壓為3.3 ~5 V,輸入/輸出(Input/Output,I/O)由高電平觸發,控制簡單、性能穩定。
電源模塊由12 V 鋰電池和LM2596 可調降壓模塊組成。鋰電池的輸出電壓為10.8 ~12.6 V,遠遠超過了傳感器和主控模塊的工作電壓,因此不能直接用來進行供電。LM2596 可調降壓模塊可以將電池電壓轉化為1.25 ~35 V 的輸出電壓,以滿足不同模塊的工作電壓要求,為智能家居系統提供穩定、可靠的電源。
系統的核心控制部件為STM32 單片機,通過MQTT 協議連接到物聯網云平臺。物聯網云平臺采用阿里云服務器。用戶端使用微信開發者工具開發。
MQTT 協議是一種以主題訂閱模型和消息發布模型為基礎的消息傳輸協議,允許用戶動態創建主題,具有低運維成本、輕量級、開放性及簡單性的優點。對低寬帶、高延遲以及不穩定網絡具有一定的適應性,適合物聯網設備通信。
此外,MQTT 協議涉及3 個主要組成部分:發布者、訂閱者和代理服務器。用戶利用發布者功能發送消息指令以控制家居設備,同時也可以通過訂閱者功能訂閱家居設備的主題,獲取環境信息等相關數據。代理服務器負責接收和轉發消息,實現發布者和訂閱者之間的通信,從而實現智能家居設備的遠程控制和數據交換。這種靈活的通信方式使得用戶能夠方便地與家居設備進行交互,實現智能化的設備控制和環境信息獲取,為智能家居系統提供了高效、可靠的通信基礎。MQTT 協議的實現流程如圖2 所示。

圖2 MQTT 協議的實現流程
在打開電源后,智能家居控制系統開始進行初始化。ESP8266 模塊啟動并聯網,與云平臺建立連接,實現雙向通信。系統通過溫濕度傳感器和煙霧傳感器采集相關環境數據,并由單片機進行數據處理。處理后的信息通過ESP8266 模塊發送至云平臺。用戶端可以通過微信小程序訂閱相關信息,并以可視化的形式顯示房間內的溫濕度、煙霧情況、燈光和窗戶的開閉狀態。
燈光和窗戶的開閉情況可由微信小程序中窗戶控制和燈光控制的開關狀態得出。窗戶關閉時,小程序中窗戶控制對應的開關為灰色;窗戶開啟時,小程序中窗戶控制對應的開關為綠色。燈光開閉情況同理顯示。窗戶關閉、燈光開啟時,微信小程序的顯示界面如圖3 所示。
用戶端可通過微信小程序發送指令,單片機接收指令控制繼電器或舵機,實現控制房間中燈或窗戶的開閉。
當系統檢測到環境溫度超過40 ℃或檢測到可燃氣體濃度超標時,將自動觸發火災緊急報警機制。此時系統無須用戶介入,會自動執行窗戶開啟以排放有害氣體或煙霧,并啟動蜂鳴器報警,及時警示室內人員火警發生。整個過程由系統內部邏輯自動完成,確保了人員的安全防護。系統的功能程序流程如圖4所示。

圖4 系統功能程序流程
針對傳統家居控制系統存在的數據傳輸距離有限、控制方式較為單一的問題,本研究選用STM32F103C8T6 微處理器為核心構建了一套基于MQTT 協議的智能家居控制系統。該系統具備實時監測家庭環境中包括煙霧濃度、溫度和濕度在內的多種環境信息的能力,并能通過云平臺將這些信息實時傳送到用戶端,實現可視化展示。用戶只需通過移動設備上的微信小程序即可便捷遠程訪問與操控該系統,簡化操作步驟,顯著提升了人們的生活便利性和舒適度。