冷 宇
(上??茖W(xué)技術(shù)職業(yè)學(xué)院,上海 201800)
近年來,智能家居概念愈發(fā)普及,其利用電子技術(shù)、通信技術(shù),將家庭內(nèi)部的各種電器、家居緊密地聯(lián)系到一起,通過專用的控制系統(tǒng)進(jìn)行統(tǒng)一管理,使人們生活更加便捷、舒適,產(chǎn)生了積極影響[1]。本文基于此概念,設(shè)計(jì)了一套家居控制系統(tǒng):用戶通過手機(jī)、電腦中的瀏覽器訪問云服務(wù)器所提供的Web頁(yè)面,該頁(yè)面能接收、顯示家中的溫濕度狀態(tài)信息,用戶還能通過頁(yè)面上的按鈕組件對(duì)燒水壺等電器進(jìn)行操控。這套系統(tǒng)的使用不受地理限制,只需要用戶能夠接入互聯(lián)網(wǎng)即可。
為了實(shí)現(xiàn)用戶的遠(yuǎn)程操作,需要云服務(wù)器作為數(shù)據(jù)中轉(zhuǎn)。在云服務(wù)器上開發(fā)后臺(tái)應(yīng)用,一方面,接受家中控制器發(fā)起的網(wǎng)絡(luò)連接,獲取控制器傳來的溫濕度數(shù)據(jù),以及向控制器發(fā)送電器運(yùn)行指令;另一方面,為用戶提供Web頁(yè)面作為控制臺(tái),將溫濕度數(shù)據(jù)實(shí)時(shí)展示到控制臺(tái)上并接收用戶在控制臺(tái)上對(duì)電器的控制指令。整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
由于系統(tǒng)中的控制器需要網(wǎng)絡(luò)連接的能力,故采用樂鑫公司設(shè)計(jì)研發(fā)的ESP32微控制器。該芯片專為可穿戴電子產(chǎn)品、移動(dòng)設(shè)備和物聯(lián)網(wǎng)應(yīng)用場(chǎng)景而設(shè)計(jì),將天線、功率放大器、電源管理、濾波器等功能集于一體,使得其最小系統(tǒng)只需較少的外圍器件。同時(shí),ESP32提供了SPI,SDIO,I2C,UART等接口,便于與外圍功能模塊進(jìn)行連接。最重要的是,該款芯片支持TCP/IP聯(lián)網(wǎng)、ESP-MESH聯(lián)網(wǎng)及TLS 1.0、TLS 1.1、TLS1.2等各種WiFi網(wǎng)絡(luò)協(xié)議。系統(tǒng)運(yùn)行時(shí),該控制器就可以連接到家中的WiFi網(wǎng)絡(luò),并與云服務(wù)器建立WebSocket連接。
溫濕度測(cè)量模塊種類較多,本文設(shè)計(jì)選用DHT11溫濕度傳感器,其內(nèi)部具有自動(dòng)校準(zhǔn)模塊可對(duì)所采集到的溫濕度數(shù)據(jù)進(jìn)行整合處理,相比于其他型號(hào)傳感器,具有響應(yīng)快、數(shù)據(jù)處理能力強(qiáng)、抗干擾性能高等優(yōu)點(diǎn)[2]。應(yīng)用時(shí)將其1號(hào)腳、4號(hào)腳分別與ESP32的VDD,GND相連,作為電源供電,將其2號(hào)管腳經(jīng)5 KΩ的上拉電阻與ESP32的P21管腳相連,用作數(shù)據(jù)讀取,如圖2所示。
圖2 溫濕度測(cè)量模塊電路
繼電器控制模塊用于控制如燒水壺、照明燈等用電設(shè)備的工作,故選用最大負(fù)載為250VAC的繼電器。將控制器的P22管腳作為控制管腳,連接到三極管的基極,利用三極管的開關(guān)作用驅(qū)動(dòng)繼電器的線圈工作。電路中還需要在電磁鐵回路中使用二極管,抑制繼電器開關(guān)瞬間產(chǎn)生的感應(yīng)電動(dòng)勢(shì),防止三極管被擊穿;R1電阻用于控制管腳由高電平轉(zhuǎn)為低電平時(shí),迅速釋放基極與發(fā)射極之間電容上的電荷,使三極管能夠快速截止[3],如圖3所示。
圖3 繼電器控制模塊電路
本文設(shè)計(jì)的控制器與云服務(wù)器之間、瀏覽器與云服務(wù)器之間的通信均是雙向的,如既需要控制器主動(dòng)向云服務(wù)器發(fā)送溫濕度數(shù)據(jù),也需要云服務(wù)器主動(dòng)向控制器發(fā)送電器的控制信號(hào),故采用WebSocket作為它們之間的網(wǎng)絡(luò)通信協(xié)議。
WebSocket協(xié)議便能實(shí)現(xiàn)在單個(gè)TCP連接上進(jìn)行全雙工通信,于2011年被IETF定為標(biāo)準(zhǔn)RFC 6455。WebSocket應(yīng)用之前,很多網(wǎng)站為了實(shí)現(xiàn)實(shí)時(shí)推送功能,所用的技術(shù)都是輪詢,即以特定的時(shí)間間隔(如每5 s),由瀏覽器自動(dòng)對(duì)服務(wù)器發(fā)起HTTP請(qǐng)求,再由服務(wù)器返回最新的消息數(shù)據(jù)給客戶端瀏覽器。這種傳統(tǒng)的模式帶來比較明顯的缺點(diǎn),即瀏覽器需要不斷地向服務(wù)器發(fā)出請(qǐng)求,且由于HTTP請(qǐng)求可能包含較長(zhǎng)的頭部,真正有效的數(shù)據(jù)可能只占很小的一部分,明顯浪費(fèi)寶貴的帶寬資源。在這種情況下,HTML5中定義了WebSocket協(xié)議,能更好地節(jié)省服務(wù)器資源和帶寬,能更實(shí)時(shí)地進(jìn)行全雙工通信。
(1)控制器初始化,具體包括先根據(jù)固化的SSID及密碼進(jìn)行WiFi連接,連接成功后,再向服務(wù)器的特定Websocket地址發(fā)起連接請(qǐng)求。(2)在Websocket連接的receive回調(diào)函數(shù)中,解析云服務(wù)器發(fā)來的數(shù)據(jù),偵測(cè)電器工作的控制信號(hào),若使電器工作,則輸出P22管腳為高電平,控制繼電器的電磁鐵吸合,接通電器的電源回路,否則,輸出P22管腳為低電平。(3)以2 s為周期,對(duì)溫濕度模塊進(jìn)行輪詢,讀取溫濕度數(shù)據(jù)后,再通過Websocket連接的send回調(diào)函數(shù)將數(shù)據(jù)發(fā)送到云服務(wù)器。
服務(wù)器軟件使用Django框架開發(fā)[4]。(1)為控制臺(tái)頁(yè)面的訪問提供HTTP路由服務(wù),使用戶可以通過手機(jī)、電腦中的瀏覽器訪問到控制臺(tái)。(2)接受客戶端和控制器端發(fā)起的Websocket請(qǐng)求,對(duì)控制器端產(chǎn)生的溫濕度數(shù)據(jù)以及客戶端產(chǎn)生的電器運(yùn)行控制信號(hào)進(jìn)行中轉(zhuǎn)。
通過VUE框架開發(fā)用戶控制臺(tái)頁(yè)面,該頁(yè)面同樣向服務(wù)器發(fā)起WebSocket連接請(qǐng)求,作為數(shù)據(jù)交換通道[5]。為保證安全性,防止其他人對(duì)家居的非法操控,用戶訪問控制臺(tái)時(shí),需輸入密碼,服務(wù)器后臺(tái)程序校驗(yàn)無誤后,才能接受該客戶端的Websocket連接請(qǐng)求。
(1)同控制器軟件設(shè)計(jì)類似,在Websocket連接的receive回調(diào)函數(shù)中偵測(cè)云服務(wù)器轉(zhuǎn)發(fā)的溫濕度數(shù)據(jù),并實(shí)時(shí)更新顯示在頁(yè)面中。
(2)頁(yè)面中的開關(guān)組件一旦被用戶觸發(fā),則通過send回調(diào)函數(shù)向云服務(wù)器發(fā)送電器工作控制信號(hào)。
在服務(wù)器端啟動(dòng)后臺(tái)程序。將控制器的外圍電路進(jìn)行焊接,確保各元件沒有虛焊、短路等情況,再將程序下載至ESP32中運(yùn)行。在瀏覽器中輸入地址進(jìn)入登錄頁(yè)面,再輸入登錄密碼后,順利顯示控制臺(tái)頁(yè)面。
控制臺(tái)中的溫濕度顯示組件能夠顯示出溫濕度測(cè)量模塊所處環(huán)境的溫濕度數(shù)據(jù),并且按2 s為周期更新數(shù)據(jù),說明該模塊與控制器間的通信正常。點(diǎn)擊控制臺(tái)中的照明燈開關(guān)組件為工作狀態(tài),可使esp32的P22管腳輸出高電平,控制繼電器吸合,成功將家中的照明燈打開,再次點(diǎn)擊該組件,可使家中照明燈關(guān)閉,說明繼電器控制模塊與控制器間的通信同樣正常??梢?,云服務(wù)器能夠起到數(shù)據(jù)中轉(zhuǎn)作用,系統(tǒng)能夠按設(shè)計(jì)的要求進(jìn)行工作。
本文設(shè)計(jì)了一個(gè)基于ESP32的遠(yuǎn)程家居控制系統(tǒng),通過溫濕度傳感器采集溫濕度數(shù)據(jù),再經(jīng)由服務(wù)器轉(zhuǎn)發(fā)到用戶頁(yè)面,也可將用戶在頁(yè)面中的觸控指令,通服務(wù)器轉(zhuǎn)發(fā)到ESP32,進(jìn)而實(shí)現(xiàn)對(duì)家用電器的遠(yuǎn)程操控。本文實(shí)現(xiàn)的功能雖然較為簡(jiǎn)單,但整體的研究為智能家居控制系統(tǒng)提供了一個(gè)實(shí)現(xiàn)方式,后期研究可以此為基礎(chǔ),進(jìn)行功能上的拓展,如人臉識(shí)別、安防監(jiān)控等。