崔翔宇 赵红 袁焕涛 仇俊政 牟亮
摘要: 针对目前智能家电发展尚未成熟導致的通信方式不统一的问题,并为探究基于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