蔡 自 偉
(運城學院 數學與信息技術學院,山西 運城 044000)
隨著技術的發展和社會的進步,人們對居住環境的要求也越來越高,智能家居的概念逐漸被人們所接受[1]。智能家居行業經歷了十來年的發展,有很多企業在這個領域進行了深度布局,不同的廠家從不同的角度用智能化的手段對家居行業進行了改造。小米基于生態對智能家居進行了賦能;華為基于網絡連接對智能家居進行了賦能;阿里巴巴和中國移動通過搭建物聯網云平臺來降低智能家居的開發門檻。盡管這個行業的涉入者眾多,技術成熟度很高,但是這個領域缺乏統一標準,整體發展受到了很大的限制[2]。當前,微信作為一個應用最為廣泛的社交工具,把微信小程序作為智能家居的入口,將很大程度上提升用戶的便捷性,從而提高用戶對智能家居的親和度和粘度[3]。通過微信小程序接入服務器的方式有兩種,一種是私有服務器,另外一種是云服務器。云服務器無論是在性能還是成本上都具有很大的優勢。
本文設計并完成了基于MQTT的智能家居系統。該系統除了實現了智能光線調節和智能溫濕度調節等常規功能外,還實現了對煙霧的監控、對火焰的監控以及防盜提醒等安全功能。系統安全功能的增強具有較強的實用性。傳輸使用MQTT協議,使系統具有低時延高可靠的特點。同時,系統的客戶端采用了微信小程序的形式,使用起來更加方便靈活。
通過需求分析,遵循物聯網系統的三層設計模式[4],系統層次圖如圖1所示。

圖1 系統層次圖
系統分成三層。其中,感知層用來獲取數據,網絡層負責傳輸數據,應用層負責監控和數據呈現。
感知層通過主控板控制傳感器采集數據,可以分成常規數據采集和安全數據采集兩部分。常規部分主要包含溫濕度和光照強度數據。光強傳感器采集光照強度用來分析室內的亮度。溫度傳感器采集室內溫度數據,濕度傳感器采集室內的濕度數據。安全部分主要包含煙霧、火焰和紅外數據。煙霧數據通過煙霧傳感器采集,火焰識別主要通過火焰識別模塊完成。紅外數據用于判斷是否室內有人,攝像頭主要用于視頻監控。
網絡層一方面接收來自感知層的數據,負責把數據傳遞給應用層,另外一方面負責把應用層的控制數據傳遞給感知層的主控板,由主控板完成對應模塊的調整。
應用層的數據存放在云服務器中的,通過小程序完成界面的顯示。小程序實現的控制面板,可以實現對各個感知層模塊的控制。
本系統基于MQTT協議完成數據的上傳下達,智能家居系統框圖如圖2所示。

圖2 智能家居系統框圖
MQTT協議用來完成數據傳輸,需要配合服務器才能工作[5]。現在大型的物聯網平臺都提供對應的協議棧。本系統采用了阿里云物聯網平臺并結合MEQX,MEQX作為一款企業級的MQTT消息服務器平臺,其主要特點是實時性高、存儲效率高、并發性好、使用簡單。MEQX只要進行簡單的配置就能運行MQTT協議棧[6]。從兼容性考慮,本系統的云服務器也選擇使用了阿里的云服務器。主控板使用了ESP-12F WiFi模組,該模組包含主控芯片和WiFi芯片ESP8266,通過ESP-12F模組可以完成本地網絡的搭建[7]。通過光強傳感器采集光照強度信息,上傳到小程序。小程序結合天氣預報信息,綜合后完成對燈光和窗簾的控制[8]。溫濕度傳感器采集數據上傳到小程序,小程序通過分析完成對應家居模塊的控制。
智能家居系統涉及的器件眾多,安全是最重要的模塊之一[9]。本系統加強了室內安全功能。煙霧傳感器用來采集室內的可燃氣體數據。火焰傳感器可以采集周圍環境是否有火焰存在。紅外傳感器采集紅外線數據用于感知活動物體的存在。這三個傳感器采集的數據傳遞給小程序,小程序通過分析會產生對應的方式進行處理。用戶在需要的時候可以調用攝像頭,查看室內的實時狀況,最終確認是否反生火險或者外人闖入。
智能家居的通信建立在MQTT協議之上,硬件上依賴ESP-12F模組,軟件上依賴阿里物聯網平臺,系統通信流程圖如圖3所示。

圖3 智能家居系統通信流程圖
其中,WiFi網絡的連接依賴室內3G/4G網絡的正常工作。
基礎模塊傳感器主要負責采集室內的基本參數,包含光線、溫度和濕度等。
光照強度傳感器選擇的是BH1750。該傳感器能探測較大范圍的光線強度,使用方便靈活。
溫濕度傳感器選擇的是DHT11。該傳感器是一款數字信號傳感器,可靠性和穩定性都比較好的。
煙霧傳感器選擇的是MQ-9[10],它能夠檢測一氧化碳等燃燒過程中產生的氣體,作為有火情的一個參數。
火焰識別傳感器可以檢測火焰,探測角度60度左右,該系統需要布設多個火焰傳感器。該傳感器的靈敏度可調節,使用方便。
人體紅外傳感器采用HC-SR501,通過識別人體紅外線的特定波長來分析室內出現的人員。通過采集紅外數據,作為室內安全的數據分析因素。
上述三個數據能提示險情發生的可能性,最終確認需要查看攝像頭采集的實時視頻數據。攝像頭采用的ESP32-cam攝像頭開發板,內部包含一顆32位的CPU,實時視頻數據通過WiFi上傳服務器。但是這樣做只能保證在局域網內獲取視頻,如果需要在公網上傳輸數據,需要使用到內網穿透技術。
針對本系統開發了一款微信小程序作為客戶端,智能家居的數據呈現和控制由它完成。服務器采用了阿里云物聯網平臺進行接入。小程序可以對服務器發起請求,調取傳感器采集的數據,或者對控制的家居模塊發起控制操作。阿里云物聯網平臺提供了豐富的協議和接口來實現對傳感器的操作。
本文總結了阿里云物聯網平臺接入流程,現描述如圖4所示。

圖4 阿里云物聯網平臺接入流程
阿里云物聯網平臺創建物聯網應用非常簡單,云端只需要簡單配置即可。主控板需要做對應的配置,云端和主控板通過ESP8266相連就完成了網絡的搭建。
本系統客戶端為微信小程序,小程序與阿里云之間通過MQTT服務器進行連接,MQTT協議棧和數據庫都存放在阿里云服務器上。在阿里云上部署了物聯網設備的管理系統,用于管理設備和主題。其工作流程如圖5所示。
本系統的登錄界面如圖6所示,用戶只需要輸入用戶名和密碼就可以登錄,然后就能使用該智能家居系統了。

圖5 小程序工作流程圖

圖6 小程序登錄界面
登錄成功后,進入智能家居系統的控制界面,通過點擊各個界面上各個選項就可以完成對室內家居模塊的智能訪問和控制,控制界面如圖7所示。

圖7 設備控制界面
本系統的特點在于強化了智能家居系統的安全功能,現對其進行測試。現模擬室內著火場景,當用打火機打火出現在設備附近的時候,小程序就提示家里著火了。此時,家里面不一定真的著火了,用戶可以調用攝像頭查看家里面的實際情況,確定是否真的著火。如果著火了,就可以撥打火警電話。意外火情識別功能測試效果如圖8所示。

圖8 安全防控界面
本文設計的智能家居系統主要利用了阿里云物聯網平臺,通過MQTT傳輸協議和微信小程序完成了對家居環境的智能化管理。本系統實現了對光強數據和溫濕度數據的采集,通過對數據的綜合分析進而智能化的控制室內的光照強度和溫濕度。本系統的特點在于加強了對室內的安全監控,通過煙霧傳感器、火焰識別、紅外傳感器和攝像頭完成了對室內著火現象和人為入侵事件的監控。本系統仍有許多不足之處,安全問題識別在準確度仍有很大優化空間。下一步,需要分析攝像頭采集的視頻數據并結合計算機視覺技術使家居安全功能更加智能。