崔翔宇 趙紅 袁煥濤 仇俊政 牟亮



摘要:? 針對目前智能家電發展尚未成熟導致的通信方式不統一的問題,并為探究基于Wi-Fi通信方式的智能家電交互式智能控制系統的可行性,本文以智能空調為例,設計基于Wi-Fi技術與TCP協議開發了交互式智能空調監控系統。使用搭載Wi-Fi芯片ESP8266的STM32單片機模擬智能空調,PC端的串口應用程序用來模擬空調操作面板,使用監控客戶端應用程序連接智能空調的Wi-Fi熱點并相互收發報文來完成交互操作。經過對各模塊的基本功能測試、多客戶端測試以及穩定性測試,研究結果表明,系統在與單個或多個客戶端保持連接時都可以實現預期設計的全部功能,并且在網絡通暢時,具有極低的丟包率以及較低的網絡延時。說明Wi-Fi技術應用到智能家電系統可以提高系統兼容性、穩定性及操作簡便性,具有一定的應用價值。
關鍵詞:? Wi-Fi; STM32; ESP8266; 客戶端; 實時監控; 智能空調
中圖分類號: TP277; TU855? 文獻標識碼: A
近年來,隨著物聯網、通信技術[1] 的高速發展以及生活水平逐漸提高,人們對家電用品的自動化和信息化需求日益增大[2 6] ,對其控制的靈活性與信息反饋的便利性也提出了更高要求。過去大多家電的控制方式均采用紅外遙控技術[7 12] ,紅外信號的傳輸損耗較大,收發兩端要保持在一定的有效距離內且中間不能有障礙物阻擋信號,另外紅外信號的單向性導致用戶不能很好的獲取家電的工作狀態。隨著藍牙技術的成熟與普及,許多學者將藍牙技術用于智能家居的通信系統[13 17] ,但由于藍牙的傳輸距離有限,并且不同設備間協議通常不兼容的問題,仍不能在智能家居系統中得到很好的應用。將Wi-Fi技術應用到智能家電中,在使用手機和個人電腦對家電進行控制的同時,也能接收到來自家電的狀態反饋,這種交互式的設計更能滿足人們對家電用品日漸提高的需求。基于此,本文使用搭載Wi-Fi芯片的STM32單片機[18 22] 開發智能空調系統,開發模擬空調面板的上位機程序用于對智能空調進行網絡配置等初始化設置、并開發監控客戶端程序與智能空調進行無線控制與狀態監控,最后設計實驗方案對系統進行基本功能測試、多客戶端測試以及穩定性測試,同時對測試結果進行分析。結果表明,基于Wi-Fi的交互式監控系統可以廣泛應用到智能家電,提高系統的兼容性及穩定性,具有一定的實際應用價值。
1 開發環境
1.1 軟硬件環境
在windows10操作系統中,使用Keil5開發工具對單片機模擬的智能空調進行開發與測試,在Visual Studio使用C#編程語言,開發模擬空調面板的上位機app與監控客戶端app,模擬空調面板app通過PC串口與開發板通信進行功能測試驗證,客戶端app通過PC端連接服務器的Wi-Fi建立局域網進行功能測試驗證。本文采用ESP8266芯片創建Wi-Fi熱點,ESP8266是一個完整且自成體系的Wi-Fi網絡解決方案,在softAP、station和softAP/station三種模式中工作。
1.2 通信協議介紹
傳輸控制/網際協議(transmission control protocol/internet protocol,TCP/IP)是供已連接因特網的計算機進行通信的通信協議簇。TCP、IP是協議簇中兩個重要的協議,包括應用層,傳輸層,網絡層及網絡訪問層。TCP是面向連接的協議,在收發數據前,通過請求、響應及確認響應3次握手與對方建立可靠的連接,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性。用戶數據報協議(user data protocol,UDP)是協議簇中一個面向報文的協議,傳輸數據之前源端和終端不建立連接,直接進行數據的抓取,一臺服務機可同時向多個客戶機傳輸相同的消息,并且UDP相對于TCP額外開銷很小。
2 系統設計與開發
2.1 系統整體分析
本文以PC端的客戶端監控程序為例,用戶將客戶端監控程序連接到智能空調的Wi-Fi熱點時,可發出定時開關機、切換工作模式以及調節溫度等控制信號,智能空調接收到控制信號后首先切換工作狀態,再將新的狀態信息發回客戶端,實現監控功能。為更好的模擬真實情況,該程序需要模擬空調的操作面板,實現網絡配置及直接控制等功能,本文采用PC端的上位機通過串口與單片機直接相連來實現。特別的,當系統存在多臺客戶端設備同時連接并監控空調時,空調運行狀態改變,所有與其建立連接的客戶端都應該收到其反饋信息。
智能空調監控系統整體架構圖如圖1所示。系統選用STM32F103作為主控芯片,主機通過串口1與上位機通信,實時顯示系統運行狀態信息,主機通過串口2連接ESP8266模塊,在系統啟動時通過串口2向模塊發送AT指令,從而配置無線熱點以及服務器IP。ESP8266模塊通過Wi-Fi與客戶監控程序通信,發送空調的最新狀態信息,接收由客戶發送的控制信息,然后將其通過串口2發送給主機,主機獲得信息后,直 接通過GPIO口控制與其相連的外設,外設用來模擬智能空調的控制節點。系統整個運行過程中都由主機通過串口1向上位機發送運行信息以便用戶查看。
系統選擇TCP協議作為通信協議,該協議為面向連接的協議,當存在多個客戶端時,服務器分別與每個客戶端建立連接并發送一次數據,這種發送方式叫做單播。而面向數據包的UDP協議由于不需要建立連接,采用廣播的形式只發送一次數據,所有的客戶端都能收到信息。因此,當客戶端數量龐大時,采用UDP協議可以節省大量服務器資源,而當客戶端數量較少并且對數據傳輸穩定性要求較高時,采用TCP協議。
由于連接空調設備的客戶端程序一般較少,考慮到系統的工作穩定性與用戶操作的有效性,本文采用TCP協議進行客戶端與服務器的通信。當有多臺客戶端設備時,采用分別與服務器建立連接并逐個收發數據的形式完成多客戶端通信功能。
2.2 空調系統上位機設計開發
本文開發了一款PC端的串口app,作為上位機模擬智能空調的操作面板,為方便調試,要求上位機能直接向空調發送配置網絡的指令及改變工作狀態的指令,并在收到指令后反饋報文。
上位機采用C#編程語言開發用戶界面及功能設計,上位機界面如圖2所示。圖中左側按鈕可設置串口開關、波特率以及發送接收模式,右側為接收區和發送區,其中接收區用來顯示對收到報文的處理結果以及當前工作狀態,在掃描并選擇可用的串口后,選擇特定的波特率,將發送區中的命令發送到智能空調,從而實現直接控制。
2.3 客戶端監控程序設計開發
監控程序作為用戶直接接觸的軟件,需要簡潔、美觀、易用,智能空調客戶端監控程序如圖3所示,界面由參數設置、控制及狀態三部分組成。客戶端監控程序不但要對智能空調發送控制信號,且必須能實時獲取空調當前的工作狀態并顯示在界面中,以達到與用戶交互的目的。
用戶設置好智能空調的IP地址與端口號后,與智能空調建立TCP連接,指示燈表示當前的連接狀態。程序右側可輸入定時開機的時間及設置的溫度,點擊按鈕即可發送對應的控制指令,智能空調接收到指令并改變工作狀態,把新的狀態通過報文的形式發送回客戶端,顯示在程序右側的狀態區域。
客戶端發送指令及接收狀態報文如表1所示。點擊開關機ON/OFF按鈕時,客戶端會向服務器發送CMD_OPEN_XXX/CMD_OFF命令,其中XXX表示定時開機時長,為0時,表示普通的開機功能,點擊溫度設置按鈕SET時,會向服務器發送CMD_TEMP_XX指令,XX為用戶在文本框中設置的溫度,點擊模式選擇中的制熱、換氣及制冷按鈕時會分別向服務器發送CMD_MODE_HOT、CMD_MODE_AIR及CMD_MODE_COLD 3條指令。智能空調收到控制命令并改變工作狀態后,上位機會顯示新的狀態,并以報文的形式反饋給客戶端監控程序。
2.4 模擬智能空調設計開發
智能空調模塊在上電時創建Wi-Fi熱點并進行初始化配置,使用板載RGB 3色LED燈模擬,其中紅、綠、藍燈亮分別表示空調工作在制熱、換氣及制冷模式。空調的開關機狀態、工作模式以及當前設定溫度也會同時顯示在上位機中。
監控系統程序算法流程圖如圖4所示,AT指令配置ESP8266流程如表2所示。系統上電后,對GPIO與板載外設的初始化配置,通過表2中的AT指令配置ESP8266模塊的網絡。配置完成后,打開系統中斷等待接收來自客戶端的控制命令,收到指令時,程序將指令輸出到上位機并解析,根據解析結果切換到相應的工作狀態,最后生成如表1所示的狀態報文,反饋給所有客戶端。在處理指令的過程中,程序會關閉系統,防止多次接收控制命令導致系統混亂。
3 系統測試
3.1 測試方案
為測試系統的可用性和穩定性,本文設計了系統測試方案,該方案較完全的覆蓋了系統功能。
1) 將開發板與PC連接好,將程序下載到開發板,打開客戶端程序和上位機,掃描并打開響應串口,清空接收區后,將開發板復位重新運行程序,觀察上位機顯示的信息。
2) PC機連接空調監控系統發出的Wi-Fi熱點,在客戶端程序設置參數并連接到空調監控系統服務器,觀察上位機打印信息。
3) 設置定時時間為0,點擊ON打開空調,觀察上位機打印信息及客戶端監控模塊和LED的變化。
4) 設置溫度分別為22 ℃和99 ℃,點擊SET,觀察上位機和客戶端監控模塊的信息。
5) 分別設置換氣和制冷模式,觀察上位機和客戶端監控模塊的信息及LED變化。
6) 打開第二個客戶端程序,設置好參數后,連接到空調服務器,觀察上位機的信息。
7) 使用第一個客戶端程序設置制熱模式,觀察上位機與兩個客戶端監控模塊信息;使用第二個客戶端程序設置定時開機1 min,觀察上位機信息,等待1 min,觀察上位機與兩個客戶端監控模塊信息。
8) 關掉兩個客戶端程序,觀察上位機信息。
3.2 測試結果
打開客戶端程序和上位機,掃描并打開串口,清空接收區后,將開發板復位,系統開機創建熱點并配置服務器如圖5所示。設置上位機打印系統初始化信息、Wi-Fi熱點的SSID、密碼及服務器的IP等。
PC設備連接熱點如圖6所示。PC設備成功連接空調發出的Wi-Fi熱點,客戶端與空調服務器成功建立連接時,會亮起綠圖標并彈窗提示。客戶端連接空調服務器如圖7所示,上位機也會打印連接信息。
設定時間為0,點擊ON打開智能空調,發送開機命令如圖8所示。上位機打印空調工作狀態信息,默認為25 ℃制熱模式,同時開發板上亮起代表制熱模式的紅色LED,客戶端會根據空調的反饋狀態信息同步刷新狀態顯示區域。
設置溫度為22 ℃,點擊SET按鈕,上位機打印CMD_TEMP_22指令與新的空調工作狀態,隨后客戶端狀態監控區域也刷新為22 ℃。為盡可能模擬真實情況,客戶端發送指令時會將低于18 ℃時的溫度強制轉換為18 ℃,高于32 ℃的溫度轉換為32 ℃,使溫度值保持在合理區間。
設置為換氣模式時,上位機打印指令CMD_MODE_AIR,并亮起綠色LED,且客戶端狀態刷新為換氣模式,制冷模式同理。打開第二個客戶端程序并設置相同參數,連接到空調服務器,上位機會打印“1,CONNECT”表示第二臺客戶端設備連接。使用客戶端1設置空調為制熱模式。多客戶端狀態刷新如圖9所示,兩個客戶端的狀態監控區域都會刷新為當前工作狀態,可知空調狀態發生改變時,服務器會把當前工作狀態反饋到所有正在監控它的客戶端。使用客戶端2設置定時開機1 min,上位機打印CMD_OPEN_001指令,1 min后,上位機打印空調關機信息。
關掉兩個客戶端程序,上位機打印“id, CONNECT FAIL”,表示客戶端與服務器失去連接。在采用不同數據與操作方式多次進行上述實驗,發現每一步操作結果與預期完全相符,指令正確接收率與報文正確返回率達100%,說明本設計實現了預期的全部功能。
4 結束語
本文通過對智能家電監控技術的現狀進行詳細的調查和研究,充分考慮其要求和特點,并以智能空調為例,設計并實現了基于STM32單片機的智能空調監控系統。該系統綜合應用自主設計的報文系統與Wi-Fi無線通信技術以及多客戶端技術等,實現了客戶端與智能家電之間的交互式監控。本系統與紅外及藍牙通信系統相比較,穩定性更高、硬件成本低、且程序操作簡單,可作為未來智能家電監控系統的良好示例。該研究對智能家電的發展具有重要意義。
參考文獻:
[1] 蘇美文. 物聯網產業發展的理論分析與對策研究[D]. 長春: 吉林大學, 2015.
[2] Skubic M, Alexander G, Popescu M, et al. A smart home application to eldercare: current status and lessons learned[J]. Technology and Health Care: Official Journal of the European Society for Engineering and Medicine, 2009, 17(3): 183 201.
[3] Han Dae-Man, Lim Jaehyun. Smart home energy management system using IEEE 802.15.4 and ZigBee[J]. IEEE Transactions on Consumer Electronics, 2010, 56(3): 1403 1410.
[4] Rashidi P, Cook D J. Keeping the resident in the loop: adapting the smart home to the user[J]. IEEE Transactions on Systems Man and Cybernetics-Part A Systems and Humans, 2009, 39(5): 949 959.
[5] 高小平. 中國智能家居的現狀及發展趨勢[J]. 低壓電器, 2005(4): 18 21.
[6] Wang Z, Yang R, Wang L F. Multi-agent control system with intelligent optimization for smart and energy-efficient buildings[C]∥The 36th Annual Conference on IEEE Industrial Electronics Society. Glendale, America: IEEE, 2010: 1144 1149.
[7] 謝敬銳, 柳虔林, 王世玲, 等. 基于紅外遙控的樓宇空調集中控制系統[J]. 電腦知識與技術, 2020, 16(22): 233 234.
[8] 高美珍, 洪家平. 基于單片機的室內智能照明系統設計[J]. 湖北師范大學學報: 自然科學版, 2019, 39(3): 96 100.
[9] 胡斌, 陳玉青, 陳鋒. 基于單片機的紅外遙控自動開門系統[J]. 科技創新與應用, 2020(22): 41 43.
[10] 陳瑋君. 家電通用遙控技術的研究與實現[J]. 電視技術, 2019, 43(4): 109 113, 120.
[11] Lee S, Ha K N, Lee K C. A pyroelectric infrared sensor-based indoor location-aware system for the smart home[J]. IEEE Transactions on Consumer Electronics, 2006, 52(4): 1311 1317.
[12] Sun Y J. The Smart Home Control System Based on the ZigBee and Infrared Technology[C]∥2017 International Conference on Smart Grid and Electrical Automation. Changsha, China: ICSGEA, 2017: 101 104.
[13] 黃利紅. 藍牙技術在智能家居控制系統中的運用[J]. 數字技術與應用, 2020, 38(1): 71 72.
[14] 王萌. 基于Android的智能家居系統設計與實現[D]. 成都: 電子科技大學, 2019.
[15] 張少華, 魏志遠. 基于藍牙4.0技術智能燈泡的設計與實現[J]. 物聯網技術, 2015, 5(4): 90 93.
[16] Ramlee R A, Tang D H Z, Ismail M M. Smart home system for disabled people via wireless bluetooth[C]∥International Conference on System Engineering & Technology. IEEE, 2012.
[17] Zhao X F. The application of bluetooth in the control system of the smart home with internet of things[J]. Advanced Materials Research, 2013 (712~715): 2753 2756.
[18] 李建國. 基于單片機的智能家電控制系統的設計[J]. 微計算機信息, 2008, 24(14): 101 102.
[19] 陶金. 基于Android的建筑電氣無線監控系統研究與實現[D]. 合肥: 合肥工業大學, 2015.
[20] Lin Y, Kong R, She R, et al. Design and implementation of remote/short-range smart home monitoring system based on zigbee and STM32[J]. Research Journal of Appliedences Engineering & Technology, 2013, 5(9): 2792 2798.
[21] Xu Z, Tao Y X. The design of 3G embedded smart home system based on ARM cortex MCU[J]. Applied Mechanics & Materials, 2013, 373 375: 1618 1621.
[22] 李升紅, 石雄. 基于STM32和WiFi技術的遠程圖像監控系統設計[J]. 武漢輕工大學學報, 2018, 37(1): 91 94.
Wi-Fi-Based Intelligent Air-Conditioning Two-Way Monitoring System
CUI Xiangyu, ZHAO Hong, YUAN Huantao, CHOU Junzheng, MOU Liang
(Power Integration and Energy Storage Systems Engineering Technology Center, Qingdao University, Qingdao 266071, China)
Abstract:? Aiming at the problem of inconsistent communication methods caused by the immature development of smart home appliances, and in order to explore the feasibility of an interactive intelligent control system for smart home appliances based on Wi-Fi communication, this article uses smart air conditioners as an example to design and implement a set of interactive two-way monitoring system using TCP protocol for communication. It uses STM32 microcontroller equipped with Wi-Fi chip ESP8266 to simulate smart air conditioners, uses a PC serial port application to simulate air conditioning operation panels, and uses a PC monitoring client application to connect to smart air conditioners Wi-Fi hotspots and send and receive messages to each other to complete interactive operations. Finally, the basic function test, multi-client test and stability test of the modules designed in this article have been carried out. The results show that the system can achieve all the functions of the expected design while maintaining the connection with single or multiple clients, and when the network is unobstructed, it has extremely low packet loss rate and low network delay, which provides an experimental basis for the intelligent home appliance monitoring system.
Key words: Wi-Fi; STM32; ESP8266; client; real time monitoring; smart air conditioner