林朋右,王佳豪,蔡益富
(泉州職業(yè)技術(shù)大學(xué),福建 泉州 362000)
隨著科技的不斷進(jìn)步,人們對(duì)居住環(huán)境的舒適性、便利性、節(jié)能性要求不斷提高,智能家居已成為市場(chǎng)熱潮[1]。智能家居利用網(wǎng)絡(luò)與傳感器技術(shù),實(shí)現(xiàn)了家居設(shè)備與家居環(huán)境的互連及交互,是一種智能化控制、自動(dòng)化管理的新型家居系統(tǒng)。
傳統(tǒng)的智能家居產(chǎn)品存在一些問題,如使用不方便、功能單一、安全性差等,這限制了智能家居的進(jìn)一步發(fā)展。設(shè)計(jì)一種基于NodeMCU的智能玻璃百葉窗控制系統(tǒng),使窗戶能夠根據(jù)天氣變化自動(dòng)開合,實(shí)現(xiàn)自動(dòng)化控制及智能化管理。與傳統(tǒng)的手動(dòng)控制方式相比,本設(shè)計(jì)更加智能、便捷、節(jié)能,采用多種傳感器技術(shù),實(shí)時(shí)感知室內(nèi)與室外的溫度、濕度、光線、雨量、風(fēng)力等參數(shù),用戶可通過手機(jī)或電腦遠(yuǎn)程控制并監(jiān)控窗戶的狀態(tài)及運(yùn)行情況,令窗戶的開合更加智能化、精準(zhǔn)化,實(shí)現(xiàn)窗戶在不同天氣環(huán)境下的自動(dòng)開合控制,為人們提供更好的生活體驗(yàn),滿足人們對(duì)智能家居的需求,有望成為未來智能家居發(fā)展的重要方向之一。
智能玻璃百葉窗控制系統(tǒng)的整體結(jié)構(gòu)及外觀設(shè)計(jì)如圖1、圖2所示。
圖1 整體結(jié)構(gòu)設(shè)計(jì)
該系統(tǒng)通過傳感器采集信息,與本地?cái)?shù)據(jù)進(jìn)行比對(duì),獲得匹配的氣象信號(hào),根據(jù)預(yù)設(shè)的控制邏輯自動(dòng)調(diào)整百葉窗的開合角度,以實(shí)現(xiàn)室內(nèi)溫度、濕度及光線的控制及窗戶在不同天氣環(huán)境下的自動(dòng)開合控制。當(dāng)室內(nèi)溫濕度值為30%~80%時(shí),百葉窗的打開角度約為50°~60°;當(dāng)溫濕度小于30%時(shí),為了避免室內(nèi)過于干燥,百葉窗的打開角度約為 20°~30°;當(dāng)溫濕度大于80%時(shí),為了避免室內(nèi)過于潮濕,百葉窗的打開角度約為80°~90°。當(dāng)風(fēng)力大于4級(jí)或下雨時(shí),為了避免風(fēng)雨侵入室內(nèi),百葉窗直接關(guān)閉。
NodeMCU ESP8266模塊是一款基于ESP8266 WiFi芯片的開源硬件平臺(tái),主要優(yōu)勢(shì)體現(xiàn)在強(qiáng)大的WiFi連接能力、豐富的硬件接口、開源硬件平臺(tái)及豐富的軟件支持等方面,已成為實(shí)現(xiàn)智能化控制及自動(dòng)化管理的核心元件,能夠?yàn)橹悄懿AО偃~窗窗控制系統(tǒng)提供強(qiáng)大的控制及聯(lián)網(wǎng)功能[2],通過連接數(shù)字舵機(jī)、顯示終端及多種傳感器,實(shí)時(shí)感知環(huán)境參數(shù),根據(jù)預(yù)設(shè)的控制邏輯自動(dòng)調(diào)整開合角度,通過WiFi連接到互聯(lián)網(wǎng),實(shí)現(xiàn)設(shè)備之間的遠(yuǎn)程控制及監(jiān)控。支持多種編程語言及軟件庫,加快了編寫及調(diào)試代碼的速度[3],提高了系統(tǒng)的性能及可靠性。硬件設(shè)計(jì)如圖3所示。
圖3 硬件設(shè)計(jì)
采用多種傳感器來檢測(cè)環(huán)境信息,包括雨滴傳感器、風(fēng)力傳感器、DHT11數(shù)字溫濕度傳感器及光敏亮度電阻傳感器。雨滴傳感器采用反應(yīng)板與信號(hào)轉(zhuǎn)換模塊相互配合,通過檢測(cè)反應(yīng)板電阻值來判斷是否有雨滴,當(dāng)雨滴落入反應(yīng)板時(shí),反應(yīng)板阻值會(huì)發(fā)生變化,信號(hào)轉(zhuǎn)換模塊將采集的數(shù)據(jù)轉(zhuǎn)化為數(shù)字信號(hào),通過D0端口傳輸給控制器進(jìn)行處理[4]。風(fēng)力傳感器內(nèi)含發(fā)電機(jī)及葉片,當(dāng)風(fēng)力作用于葉片時(shí),會(huì)帶動(dòng)發(fā)電機(jī)轉(zhuǎn)動(dòng),產(chǎn)生模擬電壓輸出。為了避免電壓過高導(dǎo)致控制器損壞,通過電壓檢測(cè)模塊將馬達(dá)輸出電壓降低到1/5,再經(jīng)過A0端口傳輸給控制器進(jìn)行處理[5]。DHT11數(shù)字溫濕度傳感器采用數(shù)字式溫濕度傳感技術(shù),內(nèi)含正電子濕度計(jì)與NTC溫度計(jì),通過特殊的數(shù)字模塊采集技術(shù)及溫濕度傳感技術(shù)輸出數(shù)字信號(hào),通過串行單線接口傳輸給控制器進(jìn)行處理[6]。光敏亮度電阻傳感器采用感光元件,將光信號(hào)變換成靈敏電信號(hào),包括紅外波長(zhǎng)、紫外線等,通過探測(cè)器檢測(cè)光線或?qū)⒐庑盘?hào)轉(zhuǎn)換成其他感測(cè)器的偵測(cè)元件,輸出數(shù)字信號(hào),通過特殊的包裝形式連接到控制器進(jìn)行處理。
利用數(shù)字式溫濕度傳感技術(shù)、感光元件技術(shù)等技術(shù),采集環(huán)境信息,將其轉(zhuǎn)化為數(shù)字信號(hào),通過特定接口傳輸給控制器進(jìn)行處理,實(shí)時(shí)檢測(cè)環(huán)境信息,從而實(shí)現(xiàn)自動(dòng)控制。
主要實(shí)現(xiàn)WiFi通信及物聯(lián)網(wǎng)連接,完成狀態(tài)監(jiān)控、遠(yuǎn)程控制及聯(lián)網(wǎng),用戶可通過手機(jī)APP或網(wǎng)頁等查看并控制,實(shí)現(xiàn)監(jiān)控家具、自動(dòng)開合、調(diào)節(jié)百葉角度等功能,還能實(shí)現(xiàn)與其他智能家居設(shè)備的聯(lián)動(dòng)(如與智能燈光、空調(diào)等)及更加智能化、便捷化的居家生活。在技術(shù)方面,NodeMCU ESP8266模塊采用WiFi通信技術(shù)及物聯(lián)網(wǎng)連接技術(shù),能夠?qū)崿F(xiàn)多種WiFi協(xié)議(如802.11 b/g/n等),支持多種加密方式(如WPA/WPA2-PSK等),可保證通信的安全性及穩(wěn)定性。NodeMCU ESP8266模塊支持多種物聯(lián)網(wǎng)協(xié)議(如MQTT、HTTP等),可與其他智能家居設(shè)備及互聯(lián)網(wǎng)連接[7]。無線通信模塊的工作流程是連接WiFi及物聯(lián)網(wǎng)、接收控制命令、執(zhí)行控制命令,連接到正確的WiFi網(wǎng)絡(luò),獲取網(wǎng)絡(luò)連接及IP地址等信息[8],連接到物聯(lián)網(wǎng)平臺(tái),獲取控制命令及傳輸數(shù)據(jù),接收用戶的控制命令(如開合百葉、調(diào)節(jié)角度等),將其轉(zhuǎn)化為控制信號(hào),將控制信號(hào)傳輸給控制器,控制器根據(jù)信號(hào)控制開合及角度等。
使用LM2596S DC-DC可調(diào)降壓模塊,體積小,功率低,適合安裝在玻璃百葉窗內(nèi)部,布線方便。能夠?qū)⑤斎腚妷悍€(wěn)定降至所需的輸出電壓,具有過壓、過流保護(hù)功能,可保證穩(wěn)定輸出電壓及電流,滿足控制系統(tǒng)的電源需求。采用封裝技術(shù),具有較好的防水、防塵、防靜電等特性,能夠避免因電源故障等因素導(dǎo)致的火災(zāi)、爆炸等安全問題。
DG-995MG型數(shù)字舵機(jī)具有超大的扭矩,可達(dá)到13 kg·cm,采用高精度數(shù)字控制技術(shù)來實(shí)現(xiàn)精確控制,響應(yīng)速度快,能夠在很短的時(shí)間內(nèi)完成轉(zhuǎn)動(dòng),快速控制開啟與關(guān)閉。該舵機(jī)采用高品質(zhì)材料及制造工藝,具有較高的可靠性,壽命長(zhǎng),能夠保證控制系統(tǒng)的穩(wěn)定性及耐用性。
多傳感器模塊軟件設(shè)計(jì)流程如下:通用初始化,包括對(duì)芯片進(jìn)行復(fù)位、設(shè)定工作模式及時(shí)鐘頻率,對(duì)FIFO進(jìn)行初始化操作。進(jìn)行傳感器模塊的工作檢查,確認(rèn)模塊可正常工作。主控制器向不同傳感器模塊發(fā)送讀取指令,各傳感器模塊讀取當(dāng)前環(huán)境的傳感器數(shù)據(jù)并將數(shù)據(jù)返回給主控制器。主控制器對(duì)返回的數(shù)據(jù)進(jìn)行處理,根據(jù)預(yù)設(shè)的閾值或范圍進(jìn)行判斷,觸發(fā)相應(yīng)的百葉窗開關(guān)功能。實(shí)現(xiàn)過程中需進(jìn)行中斷處理,以確保系統(tǒng)能夠及時(shí)響應(yīng)傳感器的監(jiān)測(cè)信號(hào)。還需對(duì)傳感器返回的數(shù)據(jù)進(jìn)行校驗(yàn),確保數(shù)據(jù)的準(zhǔn)確性及可靠性,通過與主控制器的通信,將傳感器檢測(cè)到的環(huán)境情況反饋給用戶,以便用戶了解當(dāng)前環(huán)境狀態(tài)及百葉窗的控制狀態(tài)。針對(duì)不同的傳感器模塊,按照以下流程進(jìn)行軟件設(shè)計(jì):
雨滴傳感器模塊:當(dāng)檢測(cè)到雨滴時(shí),模塊會(huì)向主控制器發(fā)送信號(hào),主控制器接收到信號(hào)后觸發(fā)百葉窗關(guān)閉功能。當(dāng)雨滴停止時(shí),模塊會(huì)再次向主控制器發(fā)送信號(hào),主控制器接收到信號(hào)后觸發(fā)百葉窗打開功能。為了防止誤觸發(fā),可設(shè)置一個(gè)閾值,只有當(dāng)檢測(cè)到的雨滴數(shù)量超過閾值時(shí)才會(huì)觸發(fā)關(guān)閉功能。雨滴傳感器模塊工作流程如圖4所示。
圖4 雨滴傳感器模塊工作流程
風(fēng)力傳感器模塊:當(dāng)檢測(cè)到風(fēng)力超過預(yù)設(shè)閾值時(shí),模塊會(huì)向主控制器發(fā)送信號(hào),主控制器接收到信號(hào)后觸發(fā)百葉窗關(guān)閉功能。當(dāng)風(fēng)力減弱到預(yù)設(shè)閾值以下時(shí),模塊會(huì)再次向主控制器發(fā)送信號(hào),主控制器接收到信號(hào)后觸發(fā)百葉窗打開功能。為了防止誤觸發(fā),可設(shè)置一個(gè)時(shí)間窗口,只有當(dāng)風(fēng)力超過預(yù)設(shè)閾值持續(xù)一定時(shí)間后才會(huì)觸發(fā)關(guān)閉功能。
DHT11數(shù)字溫濕度傳感器模塊:主控制器向傳感器發(fā)送讀取指令,傳感器讀取當(dāng)前溫濕度值并將數(shù)據(jù)返回給主控制器。主控制器對(duì)返回的數(shù)據(jù)進(jìn)行處理,將溫度與濕度值分別顯示在屏幕上,以便用戶了解當(dāng)前的環(huán)境狀態(tài)。主控制器根據(jù)預(yù)設(shè)的溫濕度范圍進(jìn)行判斷,若當(dāng)前溫度或濕度在某個(gè)預(yù)設(shè)范圍內(nèi),則主控制器向百葉窗控制模塊發(fā)送指令,觸發(fā)數(shù)字舵機(jī)實(shí)現(xiàn)角度調(diào)整功能;當(dāng)溫濕度進(jìn)入下一個(gè)范圍,則會(huì)調(diào)整至其他角度。
光敏亮度電阻傳感器模塊:主控制器向傳感器發(fā)送讀取指令,傳感器讀取當(dāng)前環(huán)境的光強(qiáng)值并將數(shù)據(jù)返回給主控制器。主控制器對(duì)返回的數(shù)據(jù)進(jìn)行處理,將光強(qiáng)值顯示在屏幕上,以便用戶了解當(dāng)前的環(huán)境狀態(tài)。主控制器根據(jù)預(yù)設(shè)的光強(qiáng)范圍進(jìn)行判斷,若當(dāng)前光強(qiáng)低于預(yù)設(shè)范圍,則主控制器會(huì)向百葉窗控制模塊發(fā)送指令,觸發(fā)關(guān)閉功能;若當(dāng)前光強(qiáng)高于預(yù)設(shè)范圍,則主控制器會(huì)向百葉窗控制模塊發(fā)送指令,觸發(fā)打開功能。
軟件設(shè)計(jì)主要采用自定義的通信協(xié)議,包括幀頭、幀長(zhǎng)、數(shù)據(jù)、校驗(yàn)和及幀尾5部分,具體格式如下:幀頭:一個(gè)字節(jié),固定為 0x0A,表示數(shù)據(jù)幀的開頭。幀長(zhǎng):一個(gè)字節(jié),表示數(shù)據(jù)部分的長(zhǎng)度,可占用長(zhǎng)度為1 Byte。數(shù)據(jù):3~256 字節(jié),表示傳輸?shù)挠行?shù)據(jù)。校驗(yàn)和:一個(gè)字節(jié),將有效數(shù)據(jù)進(jìn)行累加并取余,用于檢測(cè)數(shù)據(jù)傳輸過程中的錯(cuò)誤。幀尾:一個(gè)字節(jié),固定為 0x2A,表示數(shù)據(jù)幀的結(jié)尾。
軟件設(shè)計(jì)采用基于TCP可靠協(xié)議的控制協(xié)議,通過WiFi連接,實(shí)現(xiàn)與手機(jī)端的通信。實(shí)現(xiàn)過程中需考慮網(wǎng)絡(luò)連接的穩(wěn)定性與可靠性及錯(cuò)誤處理與異常情況的處理。還需考慮網(wǎng)絡(luò)傳輸?shù)陌踩约凹用艿葐栴},以確保數(shù)據(jù)的安全性及保密性[9]。實(shí)現(xiàn)過程中,需將WiFi的工作模式設(shè)為STA模式,設(shè)置station模式中所需的ssid及password。連接WiFi路由,獲取客戶端的IP地址進(jìn)行無線通信?;赥CP可靠協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸及通信,利用手機(jī)端發(fā)送指令給無線通信模塊,無線通信模塊接收指令并調(diào)用解析器解析出具體的指令含義。根據(jù)解析結(jié)果進(jìn)行一系列操作,并將執(zhí)行結(jié)果返回給手機(jī)端。無線連接流程如圖5所示。
圖5 無線連接流程
包括傳感器反饋的氣象信息及當(dāng)前的百葉窗開關(guān)說明。進(jìn)行初始化并啟動(dòng) NodeMCU無線接收模式,將識(shí)別后的傳感器信號(hào)解析完成發(fā)送到顯示端,顯示端將氣象信息內(nèi)容顯示在顯示屏上,人們看到氣象信息后可對(duì)百葉窗進(jìn)行再調(diào)整,NodeMCU再將處理后的信息反饋到數(shù)字舵機(jī)進(jìn)行二次調(diào)整。
軟件設(shè)計(jì)主要采用基于PWM控制信號(hào)的控制方式,通過WiFi連接,實(shí)現(xiàn)與手機(jī)端的通信。根據(jù)傳感器的反饋信號(hào)自動(dòng)對(duì)百葉窗進(jìn)行開合調(diào)整,使用PID控制算法提高控制精度及穩(wěn)定性,根據(jù)傳感器反饋信號(hào)對(duì)數(shù)字舵機(jī)的控制進(jìn)行優(yōu)化。實(shí)現(xiàn)過程中,需使用PWM控制信號(hào)控制數(shù)字舵機(jī)的旋轉(zhuǎn)角度,通過調(diào)整PWM的占空比來實(shí)現(xiàn)舵機(jī)的精確控制。使用PID控制算法對(duì)數(shù)字舵機(jī)進(jìn)行控制,以提高控制精度及穩(wěn)定性。數(shù)字舵機(jī)不斷接收傳感器的反饋信號(hào),自動(dòng)調(diào)整百葉窗的開合角度,以滿足用戶需求。
智能玻璃百葉窗控制系統(tǒng)是一款基于數(shù)字舵機(jī)及傳感器技術(shù)的智能家居控制系統(tǒng)。使用 PWM控制信號(hào)控制數(shù)字舵機(jī)的旋轉(zhuǎn)角度,根據(jù)傳感器反饋信號(hào)自動(dòng)對(duì)百葉窗進(jìn)行開合調(diào)整,使用PID控制算法提高控制精度及穩(wěn)定性,通過WiFi連接,實(shí)現(xiàn)與手機(jī)端的通信,使用戶可以隨時(shí)隨地遠(yuǎn)程控制百葉窗的開合狀態(tài)。該設(shè)計(jì)提升了百葉窗的便利性,具有較高的實(shí)用價(jià)值及市場(chǎng)潛力,為智能家居的發(fā)展提供了新思路及技術(shù)支持,具有廣闊的應(yīng)用前景。