ESP8266及物联网技术分析

时间:2022-06-13 11:42:17

ESP8266及物联网技术分析

摘要:基于ESP8266模块,以智能家居为例,对物联网技术应用进行了研究和开发,构建了一种便捷可行的智能家居控制系统。ESP8266对室内温度、湿度、人体等传感器数据进行采集,通过WiFi将数据上传到云平台;移动端通过云平台与ESP8266进行数据和指令交互,完成对家居的实时监控。研究结果表明,该系统能稳定实时地对室内家居设备进行智能控制和数据采集。

关键词:物联网;智能家居;传感器;云平台;智能控制

近年来,随着互联网和电子科学技术的迅猛发展,一种新型的网络———物联网应运而生。随着我国物联网的快速普及和发展,物联网迅速被人们所广泛接受并快速融入人们的生活和日常生产中。物联网通过物品上的嵌入式设备采集、处理并发送周围的环境数据,从而实现人与物、物与物之间的信息交流和数据交换。因此,物联网形成了一个巨大的万物互联网络。尤其在智能家居方面应用极为广泛,将物联网技术应用于智能家居的目的是将家庭中的电器和生活设施连接起来,实现视频监控、智慧安防、智能照明、智能电器控制、智能门窗控制等功能[1]。用户可以通过计算机、便携式移动设备等实时对家庭灯光、窗帘、电器等进行远程控制。物联网技术的应用将为人们提供更加便捷的家居生活体验[2],使人们的美好生活更加舒适、智能。

1系统总体设计

本设计的系统由传感层、网络层和应用层组成,其结构示意图如图1所示。其中:传感层以ESP8266模块为核心形成控制节点,其上装有监控室内的环境传感器;网络层使用家庭路由器组网并使用MQTT协议通信;应用层以阿里云物联网平台作为整个系统的服务器,由移动端开发的应用服务程序能跨平台展示和控制系统信息[3]。系统的工作流程如下:控制节点通过各种家用传感器采集数据,经家用路由器传输到消息队列遥测传输(MessageQueuingTelemetryTransport,MQTT)服务器;MQTT服务器将数据整理后发送到移动应用端;移动端将控制指令经服务器转发给控制节点,进而实现用户随时随地对家居设备进行监控。

2系统硬件设计

2.1控制节点结构设计

系统的控制节点主要包括ESP8266模块、输入输出接口、供电电源三大部分。ESP8266是一个无线传输模块,以低成本提供最大的实用性。输入输出部分主要包括DHT11温湿度传感器模块、继电器模块和OLED显示屏模块。供电部分采用UPS供电,使用锂电池和USB接口以保证节点一直运行。控制节点硬件结构图如图2所示。

2.2控制节点原理图设计

控制节点的核心是ESP8266模块。它是一个完整且自成体系的WiFi解决方案,能够独立运行,具有单独的编程功能,不依靠单片机,可直接将程序写入模块内,因而整体质量轻巧,携带方便。同时内置高速缓冲存储器以利于提高系统性能,并减少内存需求,具有最高160MHz主频,使用UART0串口作为下载程序接口。控制节点将外设资源对应的IO引出,包括4路IO控制输出:温湿度传感器、人体传感器、电源电压、OLED的I2C接口。ESP8266原理图如图3所示。ESP8266模块使用3.3V供电电源,通过TP4056芯片给锂电池充电。在USB掉电情况下,系统可切换实行锂电池供电。锂电池通过AMA1117-3.3稳定地输出3.3V电压,确保系统持续工作。

3系统软件设计

3.1服务器软件设计

服务器采用MQTT服务器,其作用是接收控制节点和应用端的数据,将这些数据流汇总并进行可视化显示和操作,以保证智能家居系统传感网正常工作和方便用户登录服务器查看所连接的设备并进行管理。MQTT是一种基于/订阅范式的“轻量级”消息协议,其最大优点在于可以用极少的代码和有限的带宽为连接到的远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通信协议,MQTT在物联网、小型设备、移动应用等方面得到了广泛应用。MQTT协议有3种身份:者(Publish)、(Broker)和订阅者(Subscribe)。如图4所示,在本系统中,消息的者和订阅者是各控制节点,消息是云控制台,消息的者同时也可以是消息的订阅者。

3.2控制节点软件设计

控制节点首先进行服务器连接,ESP8266上电后,初始化UART、I2C等外设,从EPROM中读取要连接的WiFi账号和密码并进行WiFi联网,连接完成后创建MQTT客户端,连接MQTT服务器,并开始订阅和与其连接的传感器相关的主题和消息。若连接WiFi未成功,则进入SmartConfig模式,等待用户使用SmartConfig配网,从而重新连接WiFi[4]。其运行流程图如图5所示。控制节点连接MQTT服务器,将节点的传感器数据和继电器状态信息打包成JSON数据包,并向服务器发送该数据包,同时更新OLED显示屏显示相应的传感器数据。当服务器发现某个节点订阅的主题有数据变化时,会将数据包发送给该节点,经过解析后,执行相应的指令,并更新OLED屏显示的图标和文字信息,完成服务器与节点之间的消息通信,实现服务器与节点之间的控制与数据处理。MQTT数据发送接收流程图如图6所示。

3.3移动应用端软件设计

移动端应用使用Android开发,可以实现实时远程监控室内环境数据。界面有显示温湿度、人体数据的文本框,自动或手动单选按钮和继电器的控制开关按钮。移动端连接服务器后,订阅消息并收到订阅的消息;解析JSON数据包,将温湿度、人体信息显示在相应的文本框内,并更新继电器相应控制按钮的状态。移动端默认控制模式是自动模式。在此模式下,用户不能对按钮进行控制,当切换到手动模式后,点击继电器控制按钮,移动端将向服务器发送控制指令,在控制的同时,也会发送按钮状态更新指令,服务器接收到指令后,将会更新界面上的按钮显示状态,以达到硬件的实际工作状态与控制界面显示一致的效果,从而对相应设备进行远程控制[5]。移动端设计流程图如图7所示。

4系统调试

4.1系统控制节点调试

如图8所示,ESP8266模块作为控制节点的“大脑”位于右下角,上方使用继电器控制家居设备,左边OLED屏显示环境状态信息,再向左为温湿度传感器,最左边是3.3V稳压模块。其中,ESP8266模块的IO0和IO1管脚为传感器输入的AD值。另外,在上位机(移动端)上显示了温湿度信息、本地实时天气信息及时间信息。控制节点连接到阿里云MQTT服务器上,把节点的状态信息上传到服务器,同时指示灯由闪烁变为常亮。

4.2系统服务器调试

MQTT服务器还能通过后台管理界面对连入的节点、设备的数据进行整理和展示。图9显示的客户端分别有3个控制节点和1个移动设备成功接入,之后可以进行数据统计和分析。

4.3系统移动应用端调试

如图10所示,移动设备作为MQTT客户端连接到MQTT服务器上,选择要订阅系统中其他设备和节点(图中名为“智能家居”的设备),即可获取其监测到的数据。如图11所示,该页面成功地获取并显示控制节点温湿度的数值和人体传感器的状态数据。上面两个状态按钮可以控制位于控制节点上的继电器的开关状态。

5结语

初步的调试运行结果表明:本设计的基于物联网的智能装置能够较好地完成对家居设备的控制任务,其所要实现的功能是可行的。后期,设计者们还将针对其他家居的智能化处理、智能化故障诊断以及检测精度的提升等进行更为深入的研究。

参考文献:

[1]王飞.物联网技术在智能家居系统中的应用分析[J].信息通信,2018(1):148-150.

[2]钱烺,罗小娟,宋璐璐,等.基于物联网的智能家居安防监控系统设计[J].物联网技术,2021,11(3):28-30.

[3]吴思楠,基于物联网的智能家居控制系统设计与实现[D].扬州:扬州大学,2016.

[4]毛浩龙,艾红.基于ESP32的智能家居项目设计与实现[J].工业仪表与自动化装置,2021(2):126-130.

[5]黄兴,李文金,苏凯雄.一种基于安卓与云平台的智能家居系统设计[J].电脑知识与技术,2021,17(7):5-8.

作者:张恒强 安霆 王乙涵 胡傲 刘文静 单位:临沂大学自动化与电气工程学院