基于物联网的智能窗户系统设计实现
来源:用户上传
作者:
摘 要:针对近年来频发的室内煤气中毒事件,以及在突发灾害性天气下因未及时关窗所造成各种的隐患与损失,文中设计了一款基于物联网技术的智能窗户系统。系统可自动判断当前环境的温湿度、红外强度以及有害气体浓度等信息来实现窗户的自动开关,同时通过MQTT协议将这些数据上传至阿里云服务器。用户可以使用移动设备随时随地查看当前室内环境信息并远程控制窗户的开关。
关键词:物联网;智能家居;嵌入式;远程控制;智能窗户系统;无线通信
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2020)04-00-04
0 引 言
随着网络信息技术的不断发展以及嵌入式硬件设备不断的普及与轻量化,促使物联网技术成为如今最具发展潜力的信息技术之一,并被称作信息科技产业的第三次革命。各大厂商纷纷开发了自己的物联网平台,在智能家居、智慧交通、实时监控、公共安全、农业水利和食品溯源等领域均有广泛的应用。
本文中的智能窗户系统结合物联网、嵌入式设备以及微信小程序等技术,使用多种环境传感器采集当前环境信息,通过智能控制程序实现自动开关窗户的功能。该系统具有成本低、稳定性高、便于安装等特点,具有较好的应用前景。
1 系统整体方案设计
如图1所示,本系统中利用ST公司设计的STM32作为核心模块,通过温湿度传感器、空气质量传感器、光环境传感器以及火焰传感器获取当前的环境信息,并与ESP8266模块通过UART1实现串口通信。ESP8266使用MQTT协议接入阿里云物联网平台,并将STM32读取的环境信息上报至物联网平台。
与此同时物联网平台同样以MQTT协议将这些信息发布至用户的微信小程序上,使得用户可以实时查看当前环境信息。而当系统检测到设定的情景时,系统会自动实现窗户的开关。在本系统中使用直流电机与传送带相结合,只需控制电机的正反转即可实现窗户的闭合。
2 系统硬件设计方案
2.1 STM32模块
STM32F429采用Cortex-M4內核,拥有多达256 KB的片内SRAM,具有强大的外设功能,最高工作频率可达
180 MHz。在本系统中STM32共使用到2个ADC通道,读取MQ135空气质量传感器与火焰传感器的数值并利用I2C协议读取DHT11传感器的温湿度值,以及AP3216C光环境传感器的光强值、红外线强度和物体接近距离,并以串口通信的方式与ESP8266相连接,使得两者之间可以互相接收与发送信息,通过发送设定好的字符串命令来实现对电机的控制。与此同时,STM32在本系统中还起到自动控制系统的决策作用,通过智能控制程序能够在多种情景下自动做出判断继而自动控制窗户开关。
2.2 ESP8266模块
ESP8266是一款低功耗且高集成度的WiFi模块,同时具备32位Tensilica处理器的联网功能。在本系统中将RX,TX引脚分别连接到STM32的TX,RX引脚以实现它们之间的串口通信。ESP8266通过MQTT协议使用特定的设备证书认证身份且连接阿里云物联网平台。在本系统中向平台中的“/thing/event/property/post”主题上报STM32向其发送的传感器读数,与此同时订阅阿里云物联网平台中的“/user/get”主题,ESP8266便可以接收到用户通过物联网平台使用这个主题发送的信息,根据判断接收到的信息来配置D2,D3两个I/O口的电平高低。当用户选择开窗时,使D2输出高电平;当用户选择关窗时,使D3输出高电平。再将D2,D3作为输入连接到STM32的GPIO口,并通过判断其电压的高低继而控制电机的转向。
2.3 电机模块
本系统中采用直流有刷减速电机配合传送带来控制窗户的闭合,具有所需供电电压低、体积小、力矩大的特点,只需要12 V电压源供电即可正常工作,从而避免使用220 V的居民用电所带来的安全隐患。本系统中使用双MOSFET驱动电路来连接STM32与电机,驱动电路直接由STM32上的5 V电压输出口供电。STM32的PA5与PA6引脚连接到驱动电路,且驱动电路直接由STM32上的5 V电压输出口供电,当PA5引脚输出高电平时,驱动电路给直流减速电机正向电压使得电机顺时针转动;当PA6引脚输出高电平时控制电机逆时针转动。并且可以通过PWM调制使PA5,PA6引脚输出不同占空比的脉冲信号,从而配置电机的转速。
3 系统软件设计方案
3.1 MQTT通信协议
在本系统中,用户端、服务器云端、设备端均使用MQTT协议进行通信。见表1所列,MQTT使用发布与订阅(Pub/Sub)的模型,其是一种轻量级、通用性高的网络协议,可以在带宽有限且网络环境不理想的情况下提供稳定性的连接,且可以部署在多样化应用场景中。ESP8266通过Arduino IDE编译与烧录程序后便可利用MQTT协议将温湿度、空气质量指数以及火焰传感器信息上报至云服务器相应的主题。在使用MQTT协议向ESP8266发送消息时,应选择Qos=0,这样才能保证设备能够即使收到正确的信息,也不会出现重复发送相同指令导致的混乱。在此系统中将ESP8266设置上报信息时间间隔为5 s一次,而每500 ms检查一次有无服务器发布的新信息,从而既不占用太多服务器资源,又能够保证云端与设备端通信的即时性。
3.2 智能控制系统
如图1所示,首先STM32检测各传感器是否正常工作,并检查ESP8266是否成功连接上阿里云物联网平台,确保系统开始正常工作。在自动模式下能根据不同情景来自动实现窗户的开关是本系统的智能之处,此功能依赖于DHT11,AP3216C,MQ135以及火焰传感器所检测的数值。在当前环境下出现以下前景时,系统会自动打开窗户: (1)MQ135空气传感器检测到空气中氨气、硫化物以及苯系蒸汽浓度高于设定值,并同时通过阿里云服务器向用户端发送可能存在煤气泄漏的警报;
(2)DHT11读取的湿度大于设定值;
(3)当检测到室内外温度大于用户设定值。
当出现以下前景时,系统会选择自动关闭窗户:
(1)AP3216C检测到窗户外侧方向接近距离红外线强度异常时,并向用户发布可能存在外物入侵的警报;
(2)系统通过API接口获取当前区域天气JSON数据并经过解析后,出现大雨或者大风天气以及降雨概率大于设定值时;
(3)当火焰传感器的检测值小于设定值时,并向用户发布可能室内出现火情的警报。
当系统检测到上述设定情景并自动打开或关闭窗户后会及时向用户发布当前状态以及判断依据。如果系统同时检测到需要关窗与开窗的前景时,则自动将窗户打开一半,提示用户当前环境异常并等待用户的指令。
3.3 用户微信程序设计
由于微信小程序具有跨平台、操作简便、无需下载APP、不占内存等优点,在本系统中使用微信小程序作为用户的交互平台。首先运用Photoshop設计小程序的基本界面,再以WXML,WXSS和JavaScript为基础完成布局。
微信小程序端和ESP8266端同样使用MQTT协议连接阿里IoT平台从而实现M2M通信,通过订阅主题获取ESP8266上传至阿里云物联网平台的数据。如图2所示,小程序界面中显示室内温度、室内湿度、空气质量指数以及光照强度。当火焰传感器数值异常时会显示“可能出现火情”的警报,当接近距离与红外线强度数值异常时会出现“可能存在外物入侵”的警报。同时小程序中使用和风天气API获取当前区域实时天气、降雨量、降雨概率以及风力,便于用户直观获取天气情况来决定是否开启自动模式。
4 系统测试与运用
当系统正常工作后,如图3所示,在阿里云平台上可查看到ESP8266上传的报文信息与各传感器读取的具体数值。
在设置系统为自动模式后,经测试结果表明在以下模拟情景下系统均做出正确的应对反应:
(1)使用打火机在距窗户40 cm处产生明火,此时窗户立刻自动关闭,用户微信程序端收到可能存在火情的警报;
(2)将氨气试剂放置在窗户附近,窗户立刻自动开启,用户端收到室内可能存在煤气泄漏或有害气体的警报;
(3)利用开水瓶产生的水蒸气模拟室内环境湿度过高,窗户立即自动打开,用户端收到室内湿度偏高的提示;
(4)测试者从窗户外侧靠近来模拟外物入侵,此时窗户自动关闭且用户端收到可能存在外物入侵的警告;
(5)将吹风机的暖风打开模拟室内温度过高,这时窗户自动打开;
(6)系统通过和风天气API接口检测到当地降雨概率过高后窗户立即自动关闭且提醒用户可能即将降雨;
(7)系统通过和风天气API接口检测到当前地区风力大于设定值后立刻关闭窗户并且向用户发布大风预警;
(8)当同时将氨气试剂靠近窗户并且测试者从窗户外侧靠近时,由于此复杂情景既符合开窗条件又满足关窗条件,系统会自动将窗户设置为打开一半的状态,向用户发布当前复杂情景的信息并等待用户的进一步指令。
经过以上测试可证明本系统在单一前景下能够及时正确做出应对,并将自动完成的操作以及当前前景告知用户,用户可以在微信程序中的历史信息中查看系统在何时应对何种前景做出了何种操作。在手动模式下用户可以参考上报的环境信息根据自己的意愿来实现控制。
5 结 语
物联网技术以及智能控制算法是当前智能家居领域研究的热点与难点。本设计运用STM32单片机、ESP8266模块并结合阿里云物联网平台,实现了基于物联网技术的智能窗户系统的智能控制模块、网络连接模块以及电机模块的硬软件设计。实验测试表明,本系统不仅具有实时环境监控与远程控制功能,还可在多种异常情景和突发灾害性天气下自动控制窗户的开关。伴随着全球气温变暖,近年来突发性灾害性天气不断出现,本文所设计的基于物联网技术的智能窗户系统能够自动应对各种突发极端天气,且具有一定安防功能。本系统能够帮助百姓日常防灾减灾,减少财产损失,提供更高质量生活保障,因此拥有广泛的应用前景。
参考文献
[1]许毅,马会凯,田波,等.基于物联网的智能家居系统安全可靠性研究[J].环境技术,2019,37(1):15-21.
[2]任亨,马跃,杨海波,等.基于MQTT协议的消息推送服务器[J].计算机系统应用,2014,23(3):77-82.
[3] GitChat.环境监控场景的 IoT 物联网开发实战[DB/OL].[2018-12-27]. https://gitbook.cn/gitchat/activity/5c2340c5ef105b18c8f7a048.
[4]李富强,郑宝周,滕红丽.基于事件触发的智能家居温度控制系统设计[J].现代电子技术,2015,38(2):158-160.
[5]宋英石,高健,柴发合,等.空气质量传感器在环境监测中的应用研究进展[J].环境保护前沿,2019,9(3):259-267.
[6]胡书山.基于物联网的智慧家庭架构及其关键技术研究[D].武汉:武汉大学,2014.
[7]沈苏彬,范曲立,宗平,等.物联网的体系结构与相关技术研究[J].南京邮电大学学报(自然科学版),2009,29(6):1-11.
[8]孙其博,刘杰,黎羴,等.物联网:概念、架构与关键技术研究综述[J].北京邮电大学学报,2010(3):1-9.
[9]丁炳汉,吴维超.无线传感器网络自动化系统在我国军事指挥过程中的应用分析[J].中国新通信,2018(17):114-115.
[10]任娟.基于无线传感器车辆安全预警控制系统的研究与开发[D].西安:西安电子科技大学,2018.
转载注明来源:https://www.xzbu.com/8/view-15208642.htm