楊錦輝 王開心 黃艾璇 羅強



摘 要:針對近年來頻發的室內煤氣中毒事件,以及在突發災害性天氣下因未及時關窗所造成各種的隱患與損失,文中設計了一款基于物聯網技術的智能窗戶系統。系統可自動判斷當前環境的溫濕度、紅外強度以及有害氣體濃度等信息來實現窗戶的自動開關,同時通過MQTT協議將這些數據上傳至阿里云服務器。用戶可以使用移動設備隨時隨地查看當前室內環境信息并遠程控制窗戶的開關。
關鍵詞:物聯網;智能家居;嵌入式;遠程控制;智能窗戶系統;無線通信
中圖分類號:TP393文獻標識碼:A文章編號:2095-1302(2020)04-00-04
0 引 言
隨著網絡信息技術的不斷發展以及嵌入式硬件設備不斷的普及與輕量化,促使物聯網技術成為如今最具發展潛力的信息技術之一,并被稱作信息科技產業的第三次革命。各大廠商紛紛開發了自己的物聯網平臺,在智能家居、智慧交通、實時監控、公共安全、農業水利和食品溯源等領域均有廣泛的應用。
本文中的智能窗戶系統結合物聯網、嵌入式設備以及微信小程序等技術,使用多種環境傳感器采集當前環境信息,通過智能控制程序實現自動開關窗戶的功能。該系統具有成本低、穩定性高、便于安裝等特點,具有較好的應用前景。
1 系統整體方案設計
如圖1所示,本系統中利用ST公司設計的STM32作為核心模塊,通過溫濕度傳感器、空氣質量傳感器、光環境傳感器以及火焰傳感器獲取當前的環境信息,并與ESP8266模塊通過UART1實現串口通信。ESP8266使用MQTT協議接入阿里云物聯網平臺,并將STM32讀取的環境信息上報至物聯網平臺。
與此同時物聯網平臺同樣以MQTT協議將這些信息發布至用戶的微信小程序上,使得用戶可以實時查看當前環境信息。而當系統檢測到設定的情景時,系統會自動實現窗戶的開關。在本系統中使用直流電機與傳送帶相結合,只需控制電機的正反轉即可實現窗戶的閉合。
2 系統硬件設計方案
2.1 STM32模塊
STM32F429采用Cortex-M4內核,擁有多達256 KB的片內SRAM,具有強大的外設功能,最高工作頻率可達
180 MHz。在本系統中STM32共使用到2個ADC通道,讀取MQ135空氣質量傳感器與火焰傳感器的數值并利用I2C協議讀取DHT11傳感器的溫濕度值,以及AP3216C光環境傳感器的光強值、紅外線強度和物體接近距離,并以串口通信的方式與ESP8266相連接,使得兩者之間可以互相接收與發送信息,通過發送設定好的字符串命令來實現對電機的控制。與此同時,STM32在本系統中還起到自動控制系統的決策作用,通過智能控制程序能夠在多種情景下自動做出判斷繼而自動控制窗戶開關。
2.2 ESP8266模塊
ESP8266是一款低功耗且高集成度的WiFi模塊,同時具備32位Tensilica處理器的聯網功能。在本系統中將RX,TX引腳分別連接到STM32的TX,RX引腳以實現它們之間的串口通信。ESP8266通過MQTT協議使用特定的設備證書認證身份且連接阿里云物聯網平臺。在本系統中向平臺中的“/thing/event/property/post”主題上報STM32向其發送的傳感器讀數,與此同時訂閱阿里云物聯網平臺中的“/user/get”主題,ESP8266便可以接收到用戶通過物聯網平臺使用這個主題發送的信息,根據判斷接收到的信息來配置D2,D3兩個I/O口的電平高低。當用戶選擇開窗時,使D2輸出高電平;當用戶選擇關窗時,使D3輸出高電平。再將D2,D3作為輸入連接到STM32的GPIO口,并通過判斷其電壓的高低繼而控制電機的轉向。
2.3 電機模塊
本系統中采用直流有刷減速電機配合傳送帶來控制窗戶的閉合,具有所需供電電壓低、體積小、力矩大的特點,只需要12 V電壓源供電即可正常工作,從而避免使用220 V的居民用電所帶來的安全隱患。本系統中使用雙MOSFET驅動電路來連接STM32與電機,驅動電路直接由STM32上的5 V電壓輸出口供電。STM32的PA5與PA6引腳連接到驅動電路,且驅動電路直接由STM32上的5 V電壓輸出口供電,當PA5引腳輸出高電平時,驅動電路給直流減速電機正向電壓使得電機順時針轉動;當PA6引腳輸出高電平時控制電機逆時針轉動。并且可以通過PWM調制使PA5,PA6引腳輸出不同占空比的脈沖信號,從而配置電機的轉速。
3 系統軟件設計方案
3.1 MQTT通信協議
在本系統中,用戶端、服務器云端、設備端均使用MQTT協議進行通信。見表1所列,MQTT使用發布與訂閱(Pub/Sub)的模型,其是一種輕量級、通用性高的網絡協議,可以在帶寬有限且網絡環境不理想的情況下提供穩定性的連接,且可以部署在多樣化應用場景中。ESP8266通過Arduino IDE編譯與燒錄程序后便可利用MQTT協議將溫濕度、空氣質量指數以及火焰傳感器信息上報至云服務器相應的主題。在使用MQTT協議向ESP8266發送消息時,應選擇Qos=0,這樣才能保證設備能夠即使收到正確的信息,也不會出現重復發送相同指令導致的混亂。在此系統中將ESP8266設置上報信息時間間隔為5 s一次,而每500 ms檢查一次有無服務器發布的新信息,從而既不占用太多服務器資源,又能夠保證云端與設備端通信的即時性。
3.2 智能控制系統
如圖1所示,首先STM32檢測各傳感器是否正常工作,并檢查ESP8266是否成功連接上阿里云物聯網平臺,確保系統開始正常工作。在自動模式下能根據不同情景來自動實現窗戶的開關是本系統的智能之處,此功能依賴于DHT11,AP3216C,MQ135以及火焰傳感器所檢測的數值。在當前環境下出現以下前景時,系統會自動打開窗戶:
(1)MQ135空氣傳感器檢測到空氣中氨氣、硫化物以及苯系蒸汽濃度高于設定值,并同時通過阿里云服務器向用戶端發送可能存在煤氣泄漏的警報;
(2)DHT11讀取的濕度大于設定值;
(3)當檢測到室內外溫度大于用戶設定值。
當出現以下前景時,系統會選擇自動關閉窗戶:
(1)AP3216C檢測到窗戶外側方向接近距離紅外線強度異常時,并向用戶發布可能存在外物入侵的警報;
(2)系統通過API接口獲取當前區域天氣JSON數據并經過解析后,出現大雨或者大風天氣以及降雨概率大于設定值時;
(3)當火焰傳感器的檢測值小于設定值時,并向用戶發布可能室內出現火情的警報。
當系統檢測到上述設定情景并自動打開或關閉窗戶后會及時向用戶發布當前狀態以及判斷依據。如果系統同時檢測到需要關窗與開窗的前景時,則自動將窗戶打開一半,提示用戶當前環境異常并等待用戶的指令。
3.3 用戶微信程序設計
由于微信小程序具有跨平臺、操作簡便、無需下載APP、不占內存等優點,在本系統中使用微信小程序作為用戶的交互平臺。首先運用Photoshop設計小程序的基本界面,再以WXML,WXSS和JavaScript為基礎完成布局。
微信小程序端和ESP8266端同樣使用MQTT協議連接阿里IoT平臺從而實現M2M通信,通過訂閱主題獲取ESP8266上傳至阿里云物聯網平臺的數據。如圖2所示,小程序界面中顯示室內溫度、室內濕度、空氣質量指數以及光照強度。當火焰傳感器數值異常時會顯示“可能出現火情”的警報,當接近距離與紅外線強度數值異常時會出現“可能存在外物入侵”的警報。同時小程序中使用和風天氣API獲取當前區域實時天氣、降雨量、降雨概率以及風力,便于用戶直觀獲取天氣情況來決定是否開啟自動模式。
4 系統測試與運用
當系統正常工作后,如圖3所示,在阿里云平臺上可查看到ESP8266上傳的報文信息與各傳感器讀取的具體數值。
在設置系統為自動模式后,經測試結果表明在以下模擬情景下系統均做出正確的應對反應:
(1)使用打火機在距窗戶40 cm處產生明火,此時窗戶立刻自動關閉,用戶微信程序端收到可能存在火情的警報;
(2)將氨氣試劑放置在窗戶附近,窗戶立刻自動開啟,用戶端收到室內可能存在煤氣泄漏或有害氣體的警報;
(3)利用開水瓶產生的水蒸氣模擬室內環境濕度過高,窗戶立即自動打開,用戶端收到室內濕度偏高的提示;
(4)測試者從窗戶外側靠近來模擬外物入侵,此時窗戶自動關閉且用戶端收到可能存在外物入侵的警告;
(5)將吹風機的暖風打開模擬室內溫度過高,這時窗戶自動打開;
(6)系統通過和風天氣API接口檢測到當地降雨概率過高后窗戶立即自動關閉且提醒用戶可能即將降雨;
(7)系統通過和風天氣API接口檢測到當前地區風力大于設定值后立刻關閉窗戶并且向用戶發布大風預警;
(8)當同時將氨氣試劑靠近窗戶并且測試者從窗戶外側靠近時,由于此復雜情景既符合開窗條件又滿足關窗條件,系統會自動將窗戶設置為打開一半的狀態,向用戶發布當前復雜情景的信息并等待用戶的進一步指令。
經過以上測試可證明本系統在單一前景下能夠及時正確做出應對,并將自動完成的操作以及當前前景告知用戶,用戶可以在微信程序中的歷史信息中查看系統在何時應對何種前景做出了何種操作。在手動模式下用戶可以參考上報的環境信息根據自己的意愿來實現控制。
5 結 語
物聯網技術以及智能控制算法是當前智能家居領域研究的熱點與難點。本設計運用STM32單片機、ESP8266模塊并結合阿里云物聯網平臺,實現了基于物聯網技術的智能窗戶系統的智能控制模塊、網絡連接模塊以及電機模塊的硬軟件設計。實驗測試表明,本系統不僅具有實時環境監控與遠程控制功能,還可在多種異常情景和突發災害性天氣下自動控制窗戶的開關。伴隨著全球氣溫變暖,近年來突發性災害性天氣不斷出現,本文所設計的基于物聯網技術的智能窗戶系統能夠自動應對各種突發極端天氣,且具有一定安防功能。本系統能夠幫助百姓日常防災減災,減少財產損失,提供更高質量生活保障,因此擁有廣泛的應用前景。
參考文獻
[1]許毅,馬會凱,田波,等.基于物聯網的智能家居系統安全可靠性研究[J].環境技術,2019,37(1):15-21.
[2]任亨,馬躍,楊海波,等.基于MQTT協議的消息推送服務器[J].計算機系統應用,2014,23(3):77-82.
[3] GitChat.環境監控場景的 IoT 物聯網開發實戰[DB/OL].[2018-12-27]. https://gitbook.cn/gitchat/activity/5c2340c5ef105b18c8f7a048.
[4]李富強,鄭寶周,滕紅麗.基于事件觸發的智能家居溫度控制系統設計[J].現代電子技術,2015,38(2):158-160.
[5]宋英石,高健,柴發合,等.空氣質量傳感器在環境監測中的應用研究進展[J].環境保護前沿,2019,9(3):259-267.
[6]胡書山.基于物聯網的智慧家庭架構及其關鍵技術研究[D].武漢:武漢大學,2014.
[7]沈蘇彬,范曲立,宗平,等.物聯網的體系結構與相關技術研究[J].南京郵電大學學報(自然科學版),2009,29(6):1-11.
[8]孫其博,劉杰,黎羴,等.物聯網:概念、架構與關鍵技術研究綜述[J].北京郵電大學學報,2010(3):1-9.
[9]丁炳漢,吳維超.無線傳感器網絡自動化系統在我國軍事指揮過程中的應用分析[J].中國新通信,2018(17):114-115.
[10]任娟.基于無線傳感器車輛安全預警控制系統的研究與開發[D].西安:西安電子科技大學,2018.