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