白创 张兴端 高千雅 李键 吴瑞瑞 李永昌
摘要:传统窗帘由于需要人为手动开合和无法根据光照变化自动控制,因此设计了一种基于STM32F103单片机的智能窗帘控制系统。该系统使用STM32F103作为微控制器, 利用TSL2561光强传感器采集周围环境的光照强度,通过ESP8266无线通信模块实现互联网连接。STM32F103从TSL2561中获取一段时间内的环境光照数据并进行相关的数据处理和控制窗帘的电机转动,从而实现自动光照控制。STM32F103按照机智云服务平台的通信协议封装窗帘电机状态、光照阀值和光照数据成数据帧并通过UART传输给ESP8266,然后由ESP8266将数据上传到机智云服务平台,而机智云服务平台完成数据转交给智能终端。智能终端的数据也按照相同的途径从智能终端传送到STM32F103并被STM32F103提取、识别和执行相应的操作,由此实现远程控制窗帘控制系统。
关键词:智能窗帘;互联网连接;光照控制;远程控制
Abstract:Since the traditional window curtain needs manual control andnot be automatically controlled according to light changes, a smart curtain control system based on STM32F103 microcontroller is designed. The system uses STM32F103 as the microcontroller, acquires the ambient light intensity using TSL2561 intensity sensorand realizes Internet connection through ESP8266 wireless communication module. STM32F103 collects ambient illumination during a period of time from TSL2561 ,processes related data and controls the motor work to achieve automatic illumination control. STM32F103 packages the state of the curtain motor, illumination threshold and illumination into data frames according to the communication protocol of the Ji Zhiyun service platform, transmits them through the UART to ESP8266, then ESP8266 will upload the data to the Ji Zhiyun service platformand the platform completes transmitting the data to the intelligent terminal.The data of intelligent terminals also transmit to STM32F103 from the intelligent terminal in the same way, and are extracted, identified and executed by STM32F103, so as to realize telecontrol curtain control system.
Key word:Intelligent curtain;Internet connection; illumination control; telecontrol
引言
随着科学技术的发展和人们生活水平的提高,智能化家居系统越来越多的出现在人们的生活中,带给人们快捷、舒适的体验。对于家居必需品来讲,窗帘占有着重要的地位。由于手动窗帘需要手动开关,电动窗帘无法根据光照实现自动控制且需要特定遥控器,具有一定的局限性。
因此设计了一款基于STM32F103微控制器的智能窗帘控制系统。人们可以通过使用手机进行远程操控窗帘开关,窗帘也会根据光的强度不同而张开、闭合[1]~[2][3][4]。它克服了传统窗帘繁琐的操作流程,也可以在人不在家的情况下避免关不了窗帘的烦恼,因此而更加人性化,更加便捷化,更加智能化。
1. 智能窗帘控制系统工作原理
系统通过采用STM32F103微控制器、ESP8266 WIFI模块、TSL2561光强传感器、窗帘轨道电机和窗帘轨道组成,系统整体流程如图1。
一方面,STM32F103作为主控制器,在一定的时间内通过IIC协议控制TSL2561光强传感器采集一系列的光照数据,取这系列光照强度数据的平均值作为这段时间的平均光照强度[3]。微控制器将平均光照强度与预设阀值光照强度进行比较决定窗帘电机的工作状态,进而实现窗帘在光照变化下自动开关;同时STM32F103通过UART串口通信将平均光照强度发给ESP8266无线通信模块,ESP8266模块将数据光照数据上传到机智云服务平台,云平台记录数据并将光照数据最终转发给对应的智能终端。设备状态的更新数据也是根据相同的方式上传到云平台和智能终端。
另一方面在智能终端上,可以设定光照强度,窗帘电机的开启,关闭和暂停等命令。智能终端的命令先是上传给机智云服务平台并被平台记录,然后轉发给特定的WIFI模块,WIFI模块通过UART串口通信传送给STM32F103微控制器。微控制器对命令进行识别并执行相应的操作命令,从而实现远程控制窗帘电机[5]。
2 硬件设计
2.1 STM32F103微控制器
STM32F103Vxx增强型系列由意法半导体集团设计,使用高性能的ARMCortex-M3 32位的RISC内核,工作频率为72MHz,1.25DMIPS/MHz,内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。系统选择其作为微控制器,主要由于其功耗小;较快的运行速度和较高的执行效率,具有大容量的FLASH和SRAM,可以运行复杂的通信协议程序。在具有丰富的外设功能和通信接口,利于扩展,具有很高的性价比。
2.2 TSL2561光强传感器
TSL256x是TAOS公司推出的一种高速、低功耗、宽量程、可编程灵活配置的光强传感器芯片。TSL256x的访问遵循标准的SMBus和I2C协议。SCL为时钟信号线,SDA为数据信号线,与STM32F103的PB7和PB6相连。STM32F103通过使用软件模拟IIC协议获取光强传感器的中可见光的光强数据,实现对光照强度信息的采集,监控。
2.3 ESP8266 WIFI模块
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266无线通信模块使用机智云GAgent固件,按照机智云规定的通信协议将命令和数据封装帧,通过UART与单片机进行信息的发送和命令的交互。其中ESP826的TXD、RXD分别与STM32F103的UART2的RXD与 TXD连接,实现全双工异步串口通信,硬件连接。
3 软件设计
系统软件设计整体流程如下:系统在上电后,开始配置STM32F103系统时钟、UART、Timer和GPIO等模块,设置窗帘控制系统的用户初始数据,完成STM32硬件模块和软件数据的初始化。在完成初始化操作后,微控制器STM32F103通过UART串口通信设置ESP8266无线通信模块的配网模式为airlink,等待APP连接路由器并将设备添加、设备注册到机智云从而完成设备添加。
ESP8266无线模块在设置好airlink配网模式后,STM32F103通过模拟IIC协议从TSL2561光强传感器获取一段时间的光照数据,并取平均值作为这段时间的平均光照强度,然后判断光照自动控制是否开启。如果光照自动控制开启,则将平均光照强度和预设光照强度阀值进行比较进而决定窗帘电机的运转状态,接着进入下一步;如果没有开启自动控制,则直接进入下一步。
接下来进行系统命令的交互和数据上传和下载。系统先查询是否有收到一帧数据流,如果收到一帧数据流则对这一帧数据流进行校验,否则进入下一步。在校验无误后,从一帧数据中提取、识别、执行更改电机状态的命令并更新电机相关参数和阀值光照数据,否则直接丢弃。最后对当前系统电机参数和环境光照强度与历史数据进行进行对比,如果发现数据发生变化,则将当前数据进行上传并更新历史数据,否则直接进入下一步。
接着程序跳转到获取光照强度继续进行循环。
4实验结果
本实验要实现通过APP远程控制窗帘控制系统,则必须要验证TSL2561光强传感器与STM32F103的IIC通信,STM32F103与ESP8266的UART通信以及基于前两者之下的窗帘控制系统与手机APP的数据传输和命令交互。
首先,配置STM32的UART模块,使一段时间的平均光照强度数据能通过UART回显到串口调试助手上。然后,将TSL2561光强传感器置于较暗的环境,微控制器回显的数据为2 lux;接着将其换到较亮的环境,微控制器回显的数据为63 lux,如图2所示。故TSL2561光强传感器模块与STM32F103微控制器间的IIC通信正常并且能通过IIC将光照强度的数据发送给STM32F103微控制器。
将光照数据按照机智云服务平台的通信协议封装成帧,并通过UART发送给ESP8266,并由ESP8266转交给机智云,机智云记录通信信息。当TSL2561光强传感器置于较暗的环境中时,机智云服务平台记录的数据为3~4 lux;当将其置于较亮的环境,机智云服务平台记录的数据74~75 lux,如图3所示。所以STM32F103微控制器与ESP8266无线通信模块间的UART通信正常。
由于实验条件限制和演示方便,微控制器控制窗帘电机正转,反转和停止使用LED灯进行模拟。正转代表窗帘打开,反转代表窗帘关闭。电机正转指示灯为最上面LED1,反转指示灯为中间LED2,停止指示灯为最下面LED3。如果某个LED亮着,其余LED都熄灭,则代表电机此时正处于某种状态。
首先,在APP开启光照自动控制,将预设的阀值光照设为325 lux并将其放在较暗的环境下。由于当前的光照强度为55 lux,小于预设光照强度。所以此时窗帘应该关闭,即窗帘电机应该反转。电机停止按钮处于关闭状态,反转开关自动开启,同时代表反转的LED2亮起,代表停止LED3和正转LED1处于熄灭状态。
接着,将其放在明亮的环境下且预设的阀值光照仍然设为325 lux。由于当前的光照强度为455 lux,大于预设光照强度。所以此时窗帘应该打开,即窗帘电机应该正转。电机停止按钮处于关闭状态,正转开关自动开启,同时代表正转的LED1亮起,代表停止LED3和反转LED2处于熄灭状态。
最后,在APP关闭光照自动控制,手动停止电机转动。电机停止按钮处于开启状态,反转和正转开关自动开启,同時代表停止的LED3亮起,代表正转LED1和反转LED2处于熄灭状态。
由上述三个整体效果图可知,基于TSL2561光强传感器与STM32F103的IIC通信和STM32F103与ESP8266的UART通信的窗帘控制系统与手机APP的数据传输和命令交互正常。
5总结
手机APP实现远程控制窗帘的开闭,告别传统窗帘手动开关的麻烦;能够查看房间光照强度数据,设定光照阀值并且能够进行光照条件下的自动控制,克服了电动窗帘必须使用遥控器开关窗帘的弊端;智能终端成为智能窗帘控制系统的移动控制终端,符合智能家居发展趋势。该电路简单,系统控制灵活,成本低廉,具有不错的应用前景。
参考文献:
[1] 何康旭,张婧婧.基于单片机的智能窗帘控制系统的设计与实现[J].现代计算机:专业版,2012(36):75-78.
[2] 孙勇, 杨文月, 赵余新.自动窗帘控制系统设计[M].北京:化学工业出版社,20 0 6.
作者简介:白创(1983-10)男,汉族,工学博士,博士,现为长沙理工大学物理与电子科学学院电子科学与技术专业教师,研究方向:超大规模集成电路设计与深度神经网络算法。
通讯作者:李键(1996-02),男,汉族,辽宁省建平县人,学士学位,长沙理工大学2014级电子科学与技术专业学生。