夏亮
五邑大學 廣東 江門 529020
全球氣候變暖,夏季越發(fā)炎熱,隨著城市化的加快和中國人生活水平的持續(xù)提高,人們從追求溫飽到追求生活品質(zhì)[1],空調(diào)成為避暑的不二之選。特別是對于多汗人群,只要一離開空調(diào)就汗流浹背,而一直開著空調(diào)可以把室內(nèi)控制在一個恒定的溫度,讓人感覺更舒適。傳統(tǒng)的空調(diào)控制通過遙控器短距離控制,當超出有效距離即無法控制,且只有手動開啟空調(diào)才能維持室內(nèi)溫度。恰逢智能家居興起,聯(lián)網(wǎng)遠程控制成為人們大力追捧的方向,傳統(tǒng)的家居物聯(lián)網(wǎng)需要自行搭建服務器,無疑開發(fā)難度大、花費成本高。面對這些不足,本文采用易開發(fā)維護的Arduino,同時利用家中現(xiàn)有的網(wǎng)絡環(huán)境輔以模塊化的傳感器及WIFI模塊,將數(shù)據(jù)儲存在開放的云平臺上,使用者可以隨時隨地控制空調(diào)及監(jiān)測室內(nèi)環(huán)境信息,且無須手動開啟空調(diào)維持舒適溫度,從而有效地降低成本、節(jié)約資源。
本遠程空調(diào)控制系統(tǒng)的主要功能是能夠根據(jù)室內(nèi)外溫度變化遠程智能控制空調(diào),若用戶開啟溫控模式,空調(diào)會智能控制室內(nèi)溫度維持恒定。整個系統(tǒng)分為控制端、云端及用戶端三部分。控制端由ArduinoUNO為主控,搭配DHT11實現(xiàn)對環(huán)境溫濕度的捕獲[2];HC-SR501檢測環(huán)境是否有人,若環(huán)境有人且室溫超過預設閥值則自動開啟空調(diào);VS1838B和3mm紅外發(fā)射管遙控空調(diào);ESP8266聯(lián)網(wǎng)建立與路由器的通信,并通過MQTT協(xié)議將數(shù)據(jù)上傳至云平臺以供用戶實時查看并控制。云端使用巴法云在用戶端和控制端之間建立通信,并儲存數(shù)據(jù)以供用戶端調(diào)用查詢。用戶端則基于微信小程序?qū)崿F(xiàn)交互功能,具備遙控,查詢等實用功能。該系統(tǒng)適合居家使用以及需要溫控的場景。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)框圖
主控模塊使用以Atmega328p為處理器,串口芯片為CH340的創(chuàng)客Arduino主板,主板所有的IO口用2.54排針引出,無須再添拓展板。其編程語言類似C/C++,具有模塊化、跨平臺、簡單、清晰、開放性等優(yōu)勢,利于后期維護以及模塊化設計,近年來廣受電子愛好者的追捧[3]。
2.2.1 溫度采集模塊采用DHT11數(shù)字溫濕度傳感器。量程濕度為5%到95%RH,溫度-20℃到+60℃,此溫濕度量程可適用于多場景。傳感器含有溫濕度復合傳感器,輸出已校準數(shù)字信號。它采用專用數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù)來保證測溫準確,具有較高的可靠性和穩(wěn)定性。它包括一個電阻式濕敏元件和一個NTC熱敏元件,且搭配一個高性能8位單片機。因而具有快響應、強抗干擾能力、高性價比等優(yōu)勢[4]。
2.2.2 人體傳感模塊采用HC-SR501被動紅外探測器。HCSR501有3個輸出引腳分別是輸出,VCC和接地,它內(nèi)包含穩(wěn)壓器,因此可以通過4.5-20V的任何DC電壓(通常使用5V)供電。當工作時自動感應,有無人進入感應范圍所得出的電平不一致,可通過電位變化區(qū)分,若有人則高電平,反之則低電平。它的低功耗,低成本,耐用可靠,具有寬廣的鏡頭范圍,易于連接并且在電子愛好者中非常受歡迎。
2.2.3 紅外遙控模塊采用VS1838B和3mm紅外發(fā)射管組合。VS1838B內(nèi)含高速高靈敏度PIN發(fā)光二極管和低功耗、高增益前置放大IC,同時采用環(huán)氧樹脂封裝外加外屏蔽抗干擾設計,在紅外遙控模塊中充當接收器使用,可在2.7-5.5V下工作,具有低功耗、寬工作電壓,強抗干擾能力等優(yōu)勢,適用于控制多種家電產(chǎn)品。其電路如圖2所示
圖2 VS1838B電路圖
傳輸模塊采用ESP8266物聯(lián)網(wǎng)Wi-Fi芯片。它可以獨立作為一個核心控制板控制傳感器,或作為一個傳感器實現(xiàn)Wi-Fi功能,當它在自己搭載應用并作為系統(tǒng)唯一的核心控制板時,能夠直接啟動于外界閃存,內(nèi)置的高速緩沖儲存器有效降低了系統(tǒng)的內(nèi)存需求,提高了系統(tǒng)的性能。當他作為傳感器實現(xiàn)Wi-Fi功能時,可以搭配任意核心控制板,連接簡單可靠性高,只要從SPI/SDIO接口或AHB中央處理器橋接口連接即可[5]。ESP8266的高集成度決定了其僅需要少量的外部電路,極大地減少了占用的PCB空間,可使得整體系統(tǒng)的空間利用率提高。在本系統(tǒng)中ESP8266作為傳感器實現(xiàn)Wi-Fi功能,建立控制端與云端的通信。
云端采用巴法云物聯(lián)網(wǎng)平臺,它支持TCP創(chuàng)客云、MQTT設備云、圖儲存等多模式的數(shù)據(jù)交互,可多種環(huán)境下兼容使用。官方提供詳細支持文檔,有利于開發(fā)者短時間內(nèi)部署應用,將萬物互聯(lián)的概念快速融入產(chǎn)品中。用戶只需在官網(wǎng)注冊賬號即可進入平臺部署項目,部署流程如圖3所示。創(chuàng)建完成之后保存主題名、端口、私鑰,以便程序設計時按照接入文檔調(diào)用。
圖3 部署流程
Arduino核心控制板通電后,Arduino、各個傳感器以及Wi-Fi模塊初始化,經(jīng)串口傳輸AT指令給ESP8266物聯(lián)網(wǎng)芯片,通過檢測返回值保障ESP8266與巴法云服務器的正常通信,并根據(jù)巴法云平臺提供的API和各類參數(shù)(包括網(wǎng)址、密匙、端口、設備ID等),將其按照接入文檔所示格式封裝成鏈接請求包,對室內(nèi)溫度進行采集、上傳及接受云端發(fā)出指令,控制相應的感應器進行工作。溫濕度數(shù)據(jù)采集后儲存在變量temperature和humidity中,然后通過MQTT協(xié)議以字符串形式上傳采集數(shù)據(jù)至云端;人體傳感數(shù)據(jù)通過傳感器檢測,若有人則輸出高電平,然后通過MQTT協(xié)議上傳數(shù)據(jù),云端接收到高電平即通過微信通知用戶有人在室內(nèi);紅外遙控模塊只需要通過ESP8266Wi-Fi模塊將MQTT協(xié)議的Connetct(連接云端)控制報文連接至巴法云平臺,再利用Subscribe(訂閱主題)控制報文接收微信交互端對云端發(fā)布的指令,當微信交互端Publish(發(fā)布)控制報文給云端時,ESP8266從云端接收到數(shù)據(jù)并傳輸給Arduino,經(jīng)過Arduino對數(shù)據(jù)的指令判斷并分離指令中的參數(shù)id,然后再將參數(shù)傳送給紅外模塊,再由紅外模塊根據(jù)讀取參數(shù)的不同執(zhí)行對應的預設空調(diào)控制指令[6-7]。
微信交互端采用的是微信小程序,微信小程序采用Javascript,Wxss,Wxml作為前端框架,它不限制打開設備或多終端使用,一端多用,免去了開發(fā)者在面對不同客戶端的開發(fā)困難。僅需要在微信公眾平臺(https://mp.weixin.qq.com/)[5]注冊成為用戶后,開啟開發(fā)者模式,在開發(fā)者管理設置中添加Request合法域名https://api.bemfa.com(巴法云數(shù)據(jù)調(diào)用地址1)、https://bemfa.com(巴法云數(shù)據(jù)調(diào)用地址)[8]、https://www.tianqiapi.com(天氣API調(diào)用地址),以供小程序獲取當前所在地的天氣及溫度,同時提供近七天的天氣預報和穿衣建議。
設計好后,將編寫好的控制端代碼燒錄進Arduino中,小程序代碼上傳至微信公眾平臺,并將控制端安裝放置在距掛壁式空調(diào)3米處避免直吹,在微信小程序中按下空調(diào)開關(guān)按鈕空調(diào)隨即被開啟,按下空調(diào)開關(guān)按鈕隨即被關(guān)閉,此時走出房間再走進來,讓紅外模塊感應到人的存在,空調(diào)隨即開啟,經(jīng)過多次測試溫度測量值與實際誤差在±0.5℃;濕度值誤差在3%-5%RH之間;紅外遙控模塊隨按隨開,但偶爾會有網(wǎng)絡延遲,總體誤差小,測量值較為準確,可靠性高。
本文研究的遠程空調(diào)控制系統(tǒng)設計,利用ESP-8266Wi-Fi物聯(lián)網(wǎng)模塊、巴法云物聯(lián)網(wǎng)平臺和Arduino與多項傳感器結(jié)合實現(xiàn)智能物聯(lián)網(wǎng)功能。采集室內(nèi)溫濕度、人體感應、通過算法智能控制室內(nèi)溫度恒定、紅外控制空調(diào),以達到不在家仍能了解家中情況,根據(jù)室內(nèi)外溫度智能開啟空調(diào),控制室內(nèi)溫度恒定等功能,以達到有效的合理利用空調(diào),提高居家舒適度,滿足用戶的需求。該系統(tǒng)通過適配可使用其他具備紅外通信的傳統(tǒng)家用電器,以實現(xiàn)在傳統(tǒng)家用電器基礎上云接入智慧物聯(lián),從而具備了一定的普適性。