沈沛雨 索朝舉 徐寧 周珩
摘 ?要:本文設(shè)計(jì)了一種基于微信小程序控制的智能空調(diào)遙控系統(tǒng),實(shí)現(xiàn)了通過(guò)微信小程序?qū)Χ喾N型號(hào)的空調(diào)的開(kāi)關(guān)、模式、溫度等的控制,并可以通過(guò)學(xué)習(xí)模式錄入庫(kù)以外型號(hào)的空調(diào)。該系統(tǒng)由微信小程序、ATK-ESP8266 Wi-Fi模塊、紅外遙控模塊、云服務(wù)器以及MCU模塊組成。微信小程序通過(guò)MQTT協(xié)議將命令發(fā)布到云服務(wù)器端,同樣ATK-ESP8266 Wi-Fi模塊也由MQTT協(xié)議接收命令,經(jīng)由串口發(fā)送給MCU,MCU將命令進(jìn)行處理后再控制紅外控制模塊遙控空調(diào)。此系統(tǒng)最大的特點(diǎn)就在于僅需使用日常所用的微信就能遙控空調(diào),簡(jiǎn)單快捷,成本較低。
關(guān)鍵詞:微信小程序;MQTT;ESP8266
中圖分類(lèi)號(hào):TP23 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)14-0031-03
Remote Air Conditioning Remote Control System Based on WeChat Applet
SHEN Peiyu,SUO Chaoju,XU Ning,ZHOU Heng
(School of Information and Communication Engineering,Nanjing Institute of Technology,Nanjing ?211167,China)
Abstract:In this paper,a smart air conditioner remote control system based on WeChat applet control is designed,which realizes the control of switch,mode and temperature of various air conditioners through WeChat applet,and can enter the air conditioner of the model other than the library through the learning mode. The system consists of a WeChat applet,an ATK-ESP8266 Wi-Fi module,an infrared remote control module,a cloud server and an MCU module. The WeChat applet sends the command to the cloud server through the MQTT protocol. Similarly,the ATK-ESP8266 Wi-Fi module receives the command from the MQTT protocol and sends it to the MCU through the serial port. The MCU will process the command and then control the infrared control module to remotely control the air conditioner. The biggest feature of this system is that it can be used to remotely control the air conditioner only by using the WeChat used daily,which is simple,fast and low in cost.
Keywords:WeChat applet;MQTT;ESP8266
0 ?引 ?言
目前對(duì)于空調(diào)的遙控,一種是用傳統(tǒng)的專(zhuān)用或萬(wàn)能遙控器進(jìn)行操作,使用起來(lái)比較麻煩,且必須在可視范圍內(nèi)才能實(shí)現(xiàn)遙控;另一種方法則是需要手機(jī)下載專(zhuān)用的APP進(jìn)行操作,這種方法需要安裝固定的程序費(fèi)時(shí)費(fèi)力,并且只能在家用網(wǎng)絡(luò)中才能使用,實(shí)用性不強(qiáng)。
針對(duì)這些問(wèn)題,此系統(tǒng)采用現(xiàn)如今大部分人使用的微信端為基礎(chǔ)進(jìn)行小程序的開(kāi)發(fā),免去了用戶(hù)額外下載手機(jī)程序的困擾,同時(shí)軟硬件端通過(guò)MQTT協(xié)議經(jīng)由云服務(wù)器發(fā)送接收數(shù)據(jù),幫助用戶(hù)解脫了只能在家中操控的束縛,使得用戶(hù)隨時(shí)隨地都能對(duì)家中的空調(diào)進(jìn)行操作,極大地便捷了用戶(hù)的日常使用。
1 ?系統(tǒng)組成
如圖1所示,此系統(tǒng)由五部分組成,以STM32F103RC T6作為主控MCU、ATK-ESP8266作為無(wú)線(xiàn)Wi-Fi模塊,其中紅外遙控模塊連接STM32F103RCT6的串口2,ATK-ESP8266 Wi-Fi模塊連接STM32F103RCT6的串口3。
當(dāng)用戶(hù)在微信小程序[1]端執(zhí)行相應(yīng)操作時(shí),經(jīng)由MQTT協(xié)議將操作所對(duì)應(yīng)的數(shù)據(jù)發(fā)布給云服務(wù)器端,同時(shí),ATK-ESP8266 Wi-Fi模塊通過(guò)MQTT協(xié)議訂閱云服務(wù)器端相應(yīng)的內(nèi)容,由此ATK-ESP8266 Wi-Fi模塊可以通過(guò)云服務(wù)器接收到微信小程序發(fā)布的數(shù)據(jù)并將其通過(guò)串口發(fā)送給MCU,然后由MCU對(duì)數(shù)據(jù)進(jìn)行分析處理并通過(guò)其他串口下達(dá)相應(yīng)的指令給紅外控制模塊,從而實(shí)現(xiàn)空調(diào)開(kāi)關(guān)機(jī)、模式切換以及溫度切換等功能。
2 ?紅外遙控原理
該模塊通過(guò)串口接收MCU發(fā)送的數(shù)據(jù)幀,然后執(zhí)行相應(yīng)命令。其中,每五個(gè)字節(jié)為一幀,第一個(gè)字節(jié)為命令字(CMD),第二、第三、第四字節(jié)為具體的控制命令參數(shù)(不同命令參數(shù)長(zhǎng)度不同,多余的參數(shù)設(shè)為0x08),第五字節(jié)為前四個(gè)字節(jié)的異或結(jié)果(XOR),作為一幀的校驗(yàn)。遙控空調(diào)的命令及參數(shù)如表1所示。
遙控時(shí)需要逐個(gè)對(duì)碼再發(fā)送開(kāi)機(jī)命令,對(duì)碼成功,空調(diào)機(jī)開(kāi)啟,用此方法找到與所要遙控的空調(diào)對(duì)應(yīng)的型號(hào)。例如要控制型號(hào)為33號(hào)的空調(diào),則對(duì)應(yīng)的空調(diào)型號(hào)的高字節(jié)(DataH)是0x00,低字節(jié)(DataL)是0x21,此時(shí)若實(shí)現(xiàn)型號(hào)為33的空調(diào)的開(kāi)機(jī)、關(guān)機(jī),則先發(fā)送空調(diào)型號(hào)數(shù)據(jù)幀:0x02,0x00,0x21,0x08,0x2B;緊接著發(fā)送開(kāi)機(jī)數(shù)據(jù)幀:0x04,0xff,0x08,0x08,0xFB,空調(diào)即可啟動(dòng);最后發(fā)送0x04,0x00,0x08,0x08,0x04數(shù)據(jù)幀,空調(diào)即可關(guān)閉。
具體來(lái)說(shuō),開(kāi)機(jī)后發(fā)送0x05,0xXX,0x08,0x08,XOR(BYTE1-BYTE4)數(shù)據(jù)幀,空調(diào)會(huì)進(jìn)入相應(yīng)的運(yùn)行模式,其中0xXX包含五種運(yùn)行模式,分別為:00——自動(dòng),01——制冷,02——除濕,03——送風(fēng),04——制熱(每種運(yùn)行模式對(duì)應(yīng)的XOR字節(jié)分別為其對(duì)應(yīng)數(shù)據(jù)幀前四個(gè)字節(jié)異或的結(jié)果,即0x05,0x04,0x07,0x06,0x01)。通過(guò)發(fā)送0x06 0xYY 0x08 0x08 XOR(前四個(gè)字節(jié)異或結(jié)果)數(shù)據(jù)幀可以控制空調(diào)的溫度,其中0xYY表示所要設(shè)置的空調(diào)溫度的十六進(jìn)制表示,范圍是0x10—0x1E(對(duì)應(yīng)溫度是16℃-31℃)。
3 ?硬件設(shè)計(jì)
STM32F103RCT6[2,3]是一款嵌入式微控制器集成電路,采用32位CortexTM-M3內(nèi)核,CPU最高工作頻率為72MHz,具有256KB程序存儲(chǔ)器,48KRAM,51個(gè)輸入輸出引腳,3個(gè)12位數(shù)模轉(zhuǎn)換器,支持多種調(diào)試模式和通信接口,12通道DMA控制器,支持定時(shí)器、ADC、SDIO、IIS、SPI、IIC和USART外設(shè)[3,4],完全滿(mǎn)足系統(tǒng)要求。
ATK-ESP8266 Wi-Fi[4]模塊是由廣州市星翼電子科技有限公司開(kāi)發(fā)的,該模塊核心處理器采用超低功率32位微型MCU,主頻支持80MHz和160MHz,支持RTOS,集成Wi-Fi MAC/BB/RF/PA/LNA。該模塊支持標(biāo)準(zhǔn)的IEEE802.11b/g/n協(xié)議,完整的TCP/IP協(xié)議棧。用戶(hù)可以使用該模塊為現(xiàn)有的設(shè)備添加聯(lián)網(wǎng)功能,也可以構(gòu)建獨(dú)立的網(wǎng)絡(luò)控制器。ATK-ESP8266 Wi-Fi模塊負(fù)責(zé)無(wú)線(xiàn)上網(wǎng)接入并承擔(dān)Wi-Fi適配器的任務(wù)時(shí),可以將其添加到任何基于微控制器的設(shè)計(jì)中,只需通過(guò)SPI/SDIO接口或I2C/UART口即可,便捷實(shí)現(xiàn)功能。如圖2所示,只需將ATK-ESP8266 Wi-Fi模塊的RXD和TXD分別與STM32F103RCT6的串口3的TXD和RXD連接即可。
紅外控制模塊[5]與MCU通過(guò)串口進(jìn)行通信,如圖2所示,紅外控制模塊的TXD、RXD引腳分別與STM32F10 3RCT6的串口2即RXD和TXD相連,由此接收STM32F 103RCT6所發(fā)來(lái)的數(shù)據(jù)。
4 ?軟件設(shè)計(jì)
MCU對(duì)紅外控制模塊和ATK-ESP8266 Wi-Fi模塊的連接通過(guò)串口的方式進(jìn)行數(shù)據(jù)讀寫(xiě)。程序上電初始化,先將ATK-ESP8266 Wi-Fi模塊設(shè)置為STA模式并連接無(wú)線(xiàn)網(wǎng)絡(luò),之后STM32F103RCT6通過(guò)ATK-ESP8266 Wi-Fi模塊將MQTT協(xié)議的CONNECT(連接云服務(wù)器)控制報(bào)文連接到云服務(wù)器,再利用MQTT協(xié)議中的SUBSCRIBE(訂閱主題)控制報(bào)文對(duì)應(yīng)接收微信小程序?qū)υ品?wù)器發(fā)布的消息。當(dāng)微信小程序PUBLISH(發(fā)布)MQTT控制報(bào)文給云服務(wù)器時(shí),ATK-ESP8266 Wi-Fi模塊從云服務(wù)器接收到數(shù)據(jù)并通過(guò)串口3發(fā)送給STM32F103RCT6,之后STM32F103RCT6會(huì)對(duì)數(shù)據(jù)進(jìn)行命令類(lèi)型判別,分離數(shù)據(jù)中的參數(shù),之后再將數(shù)據(jù)打包為5字節(jié)的一幀數(shù)據(jù)幀并通過(guò)串口2發(fā)送給紅外模塊,由紅外模塊執(zhí)行相應(yīng)的命令遙控空調(diào)。期間每過(guò)60s(TimeCount≥60)時(shí),STM32F103RCT6會(huì)通過(guò)ATK-ESP8266 Wi-Fi模塊向云服務(wù)器發(fā)送MQTT協(xié)議中的PINGREQ(心跳請(qǐng)求)控制報(bào)文以確保和云服務(wù)器端正常連接,防止因連接失敗造成遙控失敗的情況發(fā)生。圖3為系統(tǒng)軟件流程。
5 ?結(jié) ?論
本設(shè)計(jì)通過(guò)云服務(wù)器將微信小程序與硬件控制部件進(jìn)行有機(jī)組合,實(shí)現(xiàn)對(duì)家居空調(diào)設(shè)備的遠(yuǎn)程控制,提升用戶(hù)使用便捷度,有效降低了不必要的能源消耗。采用微信平臺(tái)作為用戶(hù)接入端,解決了不同平臺(tái)的接入兼容問(wèn)題,進(jìn)一步提升了人機(jī)交互的體驗(yàn)和實(shí)時(shí)操作的便利性。在智能家居與物聯(lián)網(wǎng)研究領(lǐng)域,遠(yuǎn)程控制作為一種新型控制方式,具有很大的實(shí)用價(jià)值和應(yīng)用前景。
參考文獻(xiàn):
[1] 裘凝遠(yuǎn).景區(qū)區(qū)域人流量實(shí)時(shí)顯示的微信小程序設(shè)計(jì) [J].現(xiàn)代商貿(mào)工業(yè),2019,40(10):187-189.
[2] 郭書(shū)軍.ARMCortex-M3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)——STM32基礎(chǔ)篇 [M].第2版.北京:電子工業(yè)出版社,2018.
[3] 張洋,劉軍,嚴(yán)漢宇,等.原子教你玩STM32(庫(kù)函數(shù)版) [M].第2版.北京:北京航空航天大學(xué)出版社,2015.
[4] 沈華剛,呂剛磊.基于ESP8266串口Wi-Fi智能插座設(shè)計(jì) [J].電子世界,2019(7):202.
[5] 張加書(shū),韓躍平,張瑞珍.基于物聯(lián)網(wǎng)云平臺(tái)的空調(diào)源碼庫(kù) [J].測(cè)試技術(shù)學(xué)報(bào),2019,33(3):249-254.
作者簡(jiǎn)介:沈沛雨(1997-),男,回族,河南洛陽(yáng)人,本科,研究方向:電子技術(shù)應(yīng)用。