李杰,李志揚
?
基于微信公眾號的智能家居控制系統(tǒng)
李杰,李志揚
(華中師范大學 物理科學與技術學院,湖北 武漢 430079)
設計了一套基于微信公眾號的智能家居控制系統(tǒng),該系統(tǒng)主要由硬件控制終端、家用電器、微信公眾號后臺和手機微信端組成。用戶關注微信公眾號并綁定控制終端之后,在微信公眾號的界面發(fā)送相應的指令,微信后臺收到指令后轉發(fā)給硬件控制終端,實現(xiàn)家用電器的控制并返回執(zhí)行結果,最后在微信端顯示相應的結果。本系統(tǒng)的控制終端采用STM32作為底層硬件平臺,通過樂鑫ESP8266模塊與微信后臺進行通信,并發(fā)送命令,實現(xiàn)家用電器的控制。實驗表明,該系統(tǒng)設計簡單、開發(fā)周期短、成本低廉、操作便捷且易于拓展推廣。
智能家居;微信公眾號;STM32;服務器
智能家居是利用物聯(lián)網(wǎng)技術將家用的電子設備連接起來為人類服務[1-3]。它使用了網(wǎng)絡通信技術、智能云平臺控制、傳感器技術等技術手段實現(xiàn)電子設備的集中控制、遠程控制、安全檢查、實時監(jiān)控等功能,從而使用戶的居住環(huán)境變得更加舒適、高效和便捷。但是由于缺乏統(tǒng)一的標準,各個廠商推出的智能家居產(chǎn)品各自獨立,采用各自的控制平臺,用戶不得不針對不同的廠家安裝不同的控制軟件,在一定程度上造成了管理上的混亂和使用上的問題[4]。
微信是一款日常生活中使用非常頻繁的手機APP,本文借助微信公眾平臺實現(xiàn)家電的控制,將智能家居功能鑲嵌到微信APP中,可以大幅提升使用的便捷性[5]。進一步推廣這種模式有利于各種智能家居產(chǎn)品的統(tǒng)一管理。
本文設計的基于微信公眾號的智能家居控制系統(tǒng)主要由控制終端、家用電器、微信公眾號后臺和手機微信組成。用戶只需要訂閱本文開發(fā)的服務號,并與自己的硬件控制終端進行綁定,然后在公眾號的界面發(fā)送相應的指令,便可實現(xiàn)對各種家電的控制。本節(jié)主要討論系統(tǒng)的硬件設計。
如圖1所示,本文設計的智能家居系統(tǒng)硬件控制終端采用STM32為主控模塊,通過ESP8266模塊實現(xiàn)網(wǎng)絡的WiFi連接。智能家居中涉及眾多的傳感器和執(zhí)行器,本文僅選擇直流電動機、LED燈和溫濕度傳感器來進行控制和數(shù)據(jù)采集,以作示范。在圖1中,用ESP8266作為通信模塊,接收來自微信公眾號用戶的控制指令,STM32主控模塊再控制相應的微型直流電動機和LED燈,或發(fā)送溫濕度傳感器采集到的數(shù)據(jù)給微信公眾號的用戶。
本文采用的是樂鑫公司生產(chǎn)的ESP8266,它集成度高、功耗低且使用簡單。ESP8266模組支持三種模式,即AP模式、STA模式和AP+STA模式。AP模式中,它會創(chuàng)建一個服務器,供其他設備接入;STA模式中,它會作為客戶端建立TCP接入服務器;AP+STA模式中,它會同時使用AP模式和STA模式。本文使用了STA模式,機智云服務器可以監(jiān)控ESP8266的狀態(tài)以及向其發(fā)送控制命令。其中,ESP8266連接網(wǎng)絡是通過APP軟件配置好無線路由器的名稱和密碼,再發(fā)送給ESP8266連接上無線網(wǎng)絡。
圖1 硬件系統(tǒng)的整體框架
本文采用的是包含測濕元件和測溫元件,集溫濕度于一體,含有已校準數(shù)字信號輸出的符合傳感器DHT11。該產(chǎn)品體積小、功耗低、可靠性極高和穩(wěn)定性強,是一種4針單排引腳封裝,具有很高的性價比。采用單線制串行接口,十分方便與MCU連接。在本文中主要用于實時測量房間中的溫濕度,再通過單總線將其采集到的信號傳遞給STM32。
智能家居中為了實現(xiàn)窗簾的打開、關閉等操作,需要使用電機作為執(zhí)行機構。本文將以L9110芯片驅動的微型直流電動機來作示例。
本文采用的LED燈由自帶P9813芯片進行驅動。P9813采用CMOS工藝的全彩點光源LED驅動芯片,能提供256級灰度調制輸出,可用于驅動彩色動畫、各種文字變換的圖案,它的性能穩(wěn)定、數(shù)據(jù)傳輸穩(wěn)定且抗干擾性強。由STM32向P9813芯片發(fā)送控制信號,P9813再將信號進行轉化R、G和B三種信號來控制燈的顏色。通過控制紅燈、綠燈和藍燈的占空比,變換出多種色彩。
本文設計的基于微信公眾平臺的智能家居控制系統(tǒng)的整體架構如圖2所示。用戶在微信公眾號的界面發(fā)送規(guī)定的指令,微信云平臺將收到的消息打包成xml文件轉發(fā)給業(yè)務服務器,業(yè)務服務器從xml文件解析出指令再轉發(fā)給機智云,機智云根據(jù)指令控制相應的硬件終端。
圖2 系統(tǒng)架構示意圖
本文的業(yè)務服務器在新浪云平臺上搭建,通過業(yè)務服務器實現(xiàn)微信端和硬件控制終端之間的通信。同時在服務器上搭建數(shù)據(jù)庫環(huán)境,創(chuàng)建數(shù)據(jù)庫,用來存儲微信端發(fā)送的指令和硬件控制終端傳回的家電設備狀態(tài)數(shù)據(jù)。云服務器的開發(fā)使用JAVA+MySQL組合,并在MyEclipse開發(fā)環(huán)境中編寫程序。云服務器中通信程序實現(xiàn)的功能主要包括與手機微信端通訊,以響應微信端發(fā)送的POST請求,將請求中的控制命令解析并寫入數(shù)據(jù)庫中;響應微信端發(fā)送的GET請求,查詢數(shù)據(jù)庫并將查詢的內容返回給手機微信端;與硬件控制終端通訊,將控制命令轉化成相應格式的數(shù)據(jù)并傳送給控制終端或者接受控制終端實時傳回的家電設備的狀態(tài)數(shù)據(jù)。
本系統(tǒng)中需要傳輸溫度、濕度、LED開關和電機轉速的數(shù)據(jù)。在MySQL中創(chuàng)建四張表,分別為temperature、humidity、switch和machinery。如果在微信端發(fā)送“開燈”,則更新switch表中第一行數(shù)據(jù)的時間戳,并將該行數(shù)據(jù)中的state的值修改為1;如果在微信端發(fā)送“關燈”,則更新switch表中第一行數(shù)據(jù)的時間戳,并將該行數(shù)據(jù)中的state的值修改為0;如果發(fā)送“溫濕度”,則從temperature和humidity表中分別查詢data的值合并在一起返回;如果發(fā)送“開啟電機”,則更新machinery表中數(shù)據(jù)的時間戳并更新數(shù)據(jù)中state的值,并向硬件端發(fā)送指令使得電機正向轉動。此外,還有一些定義了的指令,例如“紅燈”“綠燈”“關閉電機”等。如果發(fā)送的不是定義了的指令,則向微信返回“無此指令”。
在微信公眾平臺(https://mp.weixin.qq.com)上注冊一個服務號。為了自定義公眾號的新功能需要開啟服務器配置,微信公眾平臺在訪問后臺時,必須有外網(wǎng)地址并使用80端口。在開發(fā)環(huán)境搭建完成后,根據(jù)微信公眾平臺的如下要求進行開發(fā):①服務器相關配置的填寫。在公眾號中選擇基本配置,并在服務器配置中修改配置,填寫新浪云的域名、Token、EncodingAESKey和消息加解密方式。②驗證返回消息是否有效。提交服務器配置時,微信服務器會發(fā)送Get請求到新浪云的域名,并傳遞signature、timestamp、nonce和echostr四個參數(shù)。如果返回的參數(shù)與echostr參數(shù)相同,則接入有效;否則,接入無效。
本文開發(fā)的基于微信公眾號的智能家居控制系統(tǒng)實物照片和運行界面如圖3所示。首先給開發(fā)板接通電源,并用手機給WiFi模塊配置SSID和密碼,使開發(fā)板接入網(wǎng)絡;然后通過在本文開發(fā)的公眾號界面發(fā)送一些指令來測試系統(tǒng)是否運行相應的功能;依次向微信公眾號發(fā)送“紅燈”“綠燈”“藍燈”“開綠燈”“溫濕度”和“電機開啟”,如圖3所示,公眾號自動回復“紅燈已開啟”“綠燈已開啟!”“藍燈已開啟!”“無此命令”“當前溫度為29,當前濕度為48”和“電機已啟動!”。與此同時,燈會隨著不同的命令開啟、關閉或者變換顏色,電機開啟或者關閉,獲取房間的溫濕度,表明系統(tǒng)工作正常。
本文設計了一款基于微信公眾平臺的智能家居控制系統(tǒng)。實驗表明該系統(tǒng)設計簡單、開發(fā)周期短、成本低廉、操作便捷且易于拓展推廣,有利于解決和改善眾多智能家居產(chǎn)品各自獨立、互不兼容的狀況。
本文開發(fā)的基于微信公眾號的智能家居控制系統(tǒng),可以用微信查看房間的狀況和控制一些家電設備,也解決了用戶需要安裝多個APP的問題。但在體驗過程中,還存在很多不足,系統(tǒng)的智能性不夠強。近幾年的人工智能快速發(fā)展,可以考慮將人工智能中的一些算法引入,使得系統(tǒng)具有自動化管理家電設備的能力。
[1]溫江濤,張煜.物聯(lián)網(wǎng)智能家居平臺DIY[M].北京:科學出版社,2014.
[2]白家旺,雷騰躍,屈琦凱.淺談嵌入式系統(tǒng)對智能家居的影響[J].廣東科技,2015(10):59-60.
[3]王暉.物聯(lián)網(wǎng)智能家居的發(fā)展前景——物聯(lián)網(wǎng)時代智能家居的發(fā)展趨勢[J].智能建筑,2013(02):16-19.
[4]陳甫.微信小店服務端的JAVA實現(xiàn)[J].電腦知識與技術,2014(19):4442-4445.
[5]李立新,李艷文,蔡剛毅,等.基于物聯(lián)網(wǎng)技術的智能家居安防系統(tǒng)的研究與開發(fā)[J].控制工程,2015(05):1001-1005.
2095-6835(2019)07-0034-02
TP391
A
10.15913/j.cnki.kjycx.2019.07.034
〔編輯:張思楠〕