基于ESP32的智能家居项目设计与实现
毛浩龙,艾红
(北京信息科技大学自动化学院,北京100192)
摘要:该文使用ESP32单片机和工控机设计了一个完整的智能家居系统。该系统可以采集多个节点的温湿度、3路输入信息,并控制每个节点的4路输出状态,使用手机或者电脑的浏览器即可操作%其包括了典型物联网架构中的传感层、网络层、应用层所有环节,比较全面的构建了整个系统并实现了节点信息采集、数据可视化、物联网控制等功能。该系统在物联网和智能家居系统领域可以方便研究物联网内部通信协议、通信数据加密等,快速搭建模型进行研究并分析数据结果,具有很高的研究价值。
关键词:智能家居系统;ESP32;物联网;数据加密
中图分类号:TP277文献标识码:A文章编号#1000-0682(2021)02-0126-05 Design and implemectation of smart home based on ESP32
MAO Haolony,AI Hong
(Automatiog Institute f Bering Inforpatioo Science&Technology Ungersit;,Bering100192,China# Abstract:
Use ESP32MCU and Industral PC to design a complete smaC home system.The system can collect the temperature and humidity of multiple nodes and the input information of three channels, and control the output state of four channels of each node,which can be operated by using the browser of mobile phone or computer.This system includes all the links in the sensor layer,network layer and application layer in the typical InWrnW of Things architecture,and comprehensively constructs the whole system and eealoiesthetunotoonssuoh asnodeontoematoon oo l eotoon,datavosualoiatoon and Pnteenetot Thongsoonteoa.Pn thetoead otthePnteenetotThongsand smaethomesestem,thossestem oan oonvenoentae studetheonteenaaoommunooatoon peotoooaand oommunooatoon dataenoeeptoon otthePnteenetotThongs, quickly build a model fTr research and ana/oa data results,which is of high research vvlua-KeyworCs:smaC home system;ESP32;InWrnW of Things;data encryption
0引言
随着人工智能、机器学习领域的突破,物联网[1]和智能家居.2/又掀起新的发展势头,目前国内华为、阿里、百度等众多公司开发自己的云服务器进行物联网平台[3]的接入。随着物联网和智能家居的逐步发展,不同的传输协议如TCP,UDP,MQTT (Message Queuing Telemetc TranspoC),CoAP(Constraint Application Protocol)都在逐渐地适应物联网和智能家居的发展并逐渐改进和演化⑷。目前很
收稿日期#2020-08-29
基金项目:北京市自然科学基金资助项目(4162025)
作者简介:毛浩龙,硕士研究生,主研领域为检测技术与自动化装置。多智能家居系统的网络层多是基于第三方如阿里云、腾讯云、华为云等云服务器,应用层则过度依赖于第三方提供的应用平台[5]如米家、Home Assistant、B/nkar等智能家居平台,这样智能家居系统的设计者只能搭建自己的传感层,将数据传送到第三方云服务器使用第三方的智能家居管理平台,不便进行网络层的传输数据研究和应用层的数据处理和获取。
考虑到智能家居的网络环境,使用基于WiFi网络组网通信的模组做控制节点,用现有家庭路由器进行组网,能够省去无线传感网中的ZigBee,/ra等昂贵的模块。用价格低廉的ESP32模组配合家庭路由器和1台计算机做服务器,就能快速搭建出智能家居系统并进行研究。在成本上和复杂度上对传统的智能家居系统做出了优化。
1智能家居系统结构
智能家居系统是一个典型的物联网系统,包括智能家居的传感层、网络层、应用层3个层面的技术和原理。系统传感层使用ESP32为核心的控制节点;网络层使用家庭路由器WiFi组网并使用MQTT 协议通信;应用层使用Nod-RED框架开发的应用服务程序,能通过网页的形式跨平台展示和控制系统信息。
智能家居系统传感层的控制节点上装有监控智能家居的温湿度、门磁输入等信息的装置,控制节点上的ESP32模组具有WiFi协议栈,能够接入家庭路由器的WiFi中,上传采集的传感器信息和接收服务器应用程序发来的控制指令。网络层使用家庭路由器构成WiFi局域网,使用工控机运行MQTT Broker 作为智能家居服务器,在WiFi网络中链接各个控制节点,并进行话题的订阅和转发服务以实现MQTT 通信。应用层使用Node-RED框架设计用户交互程序,用户可以根据自己的控制逻辑进行编程并使用其可视化组件进行数据可视化。用户可以使用浏览器通过网页进行控制和查看。智能家居系统结构示意图如图1所示。
空调
物联网服务器
]J
{••—I—l—l—
PM2.5
外网访问MQTT Client
控制结点
控制结点
门磁传感器
监控摄像
温湿度传感器
控制结点雨雪传感器
智能插座
光照传感器
电动窗帘
图1智能家居系统结构示意图
2智能家居系统硬件设计
2.1控制节点结构设计
智能家居的控制节点主要包括ESP32模组、输入输出接口、电源供电三大部分。ESP32是具有240MHz主频及WiFi和蓝牙的单片机,具有较强的数据处理和控制能力。输入输出部分主要包括温湿度传感器采集,3路传感器IO输入,4路10输出控制。供电部分采用UPS(Uninterruphbie Powet System)供电,使用锂电池和USB接口保证节点一直运行。控制节点包括ESP32最小系统、传感器接口、OLED显示接口、输入输出及下载接口等。在设计控制节点结构时考虑到了ESP32单片机所拥有的外设资源,并对应将来系统要实现的功能加入了按键、OLED等显示交互器件,使得控制节点模块更容易配置和使用[6])控制节点硬件结构如图2所示。
图2控制节点硬件结构框图
2.2控制节点原理图设计
控制节点应用核心ESP32-D0WD芯片具有最
高240MHo主频,使用UART0串口作为下载程序接口。控制核心将芯片中外设资源对应的I引出,包括3路ADC输入,4路10控制输出,温湿度传感器10,电源电压采集ID,OLED的I2C接口的IO,UART 串行口的UART1和UART0。控制节点核心控制器最小系统原理图如图3所示。
U22 +3.3
GND
丄EN+3.3V|
口R70ND,l|—
GPIO364 :C5GPIO395
GPIO346
GPIO357
GPIO328
GPIO339
GPIO2510
GPIO2611
GPIO2712
GPI01413
GPI01214
ESP32S
GND
3V3
EN
SVP
SVN
34
35
32
33
25
26
27
14
12
GND23
22
TXDO
RXD0
21
NG
19
18
5
17
16
_4
Q emQXoi n u
UiSSOQSSiZ
GND「|”r-oo6o I e e
I I—e z z z
G G
GPIOO
EN
RXDO
TXDO
+3.3V|—
P77
1开源mqtt服务器
2
3
4
5
6
—Header6
GND
GND
38
37GPIO23
GND
36SCL1
35TXDO
34RXDO
33SDA1
32||,
31GPI019II1'
30GPI018
29GPI05
28GPI017
27GPI016
26GPI04
25GPIOO.
[^R39 SCXXXXX曹_|l'GND J-3V
LA
图3控制节点核心控制器最小系统原理图ESP32单片机使用3.3V供电,通过TP4056芯 3.3
片给锂电池充电。在USB掉电情况下,系统切换到能使用锂电池供电,锂电池经过AMA1117-3.3输出O
V电压,保持系统持续工作具有UPS供电的功控制节点UPS供电路原理图如图4所示。
UPS供电电路
USB1
10LED1
1
GND GND
图4控制节点UPS供电路原理图
控制节点输入包括温湿度传感器和3路ADC 采集,输出包括4路I电平控制输出。使用通用接口的端子将输入输出引出,可外接不同输入传感器和输出控制设备,使得控制节点的通用性更强。控制节点采集温湿度和输入信息上传服务器,并订阅自己的节点控制指令,控制自己要控制的对应10以
实现节点采集和控制功能。
2.3系统服务器设计
智能家居系统服务器使用的工业控制计算机具有较高稳定性,可以长时间不断电不关机持续运行。服务器使用Ubuntu操作系统,使系统在长时间运行时更加稳定可靠。智能家居服务器作为MQTT Broker实现MQTT的正常通信。MQTT协议是一个基于订阅/发布的轻量级的应用层协议,是一种基于消息代理(Broker)的“发布/订阅”模式的应用层协议,旨在为低带宽、不可靠网络中资源受限的设备提供可靠的网络服务[7])MQTT数据基于消息代理使得各个设备之间数据转发方便,各节点无需关注其他节点的特性和格式,只要订阅其话题就可接收到相应的消息,这使得多节点之间消息传输方便,节省了许多数据处理的工作。使用MQTT通信相对于TCP/UDP传输方式加入了DTLS层和应用层的密码认证,使得整个通信过程更加安全。
3智能家居系统软件设计
3.1服务器软件结构
智能家居服务器的作用是接收控制节点和应用程序的MQTT消息以及用户浏览器的WebSocket消息等,将这些数据流汇总并进行可视化显示和操作,保证智能家居系统传感网正常工作,方便用户登陆服务器查看所连接的设备并进行管理。EMQ(Er-langTnterprise/Tlastic MQTT Broker)是面向5G和物联网通信的一家消息和流处理软件EMQ实现了移动端和物联网场景下海量设备的接入并将各个流的消息汇入,很好地满足了智能家居数据流的监控和正常运行。服务器上面运行开源软件EMQ 作为智能家居
中MQTT消息流的管理中心,则系统中各个控制节点和应用程序之间能通过服务器进行数据交互,进而实现整个智能家居网络层的通信通畅。
3.2控制节点软件结构
智能家居控制节点要先进行服务器连接, ESP32上电初始化UART,I2C,PWM等外设,从EEPROM中读取要连接的WiFi账号密码并进行WiFi 联网,连接完成后创建MQTT客户端,连接MQTT服务器,并开始根据自己连接的传感器订阅和发布与自身传感器相关的话题和信息。如果连接WF-未完成则进入SmartOonfig模式等待用户使用Smart-Config配网,从而重新连接WiFi。控制节点连接服务器流程如图5所示。
初始化ADC,
UART,OLED,
PWM等外设
读取EEPRO M中
商WiFi密码
N
等待用户
SmartConfig配网
图5控制节点连接服务器流程图
MQTT通信在WiFi连接成功之后开始执行。设备连接MQTT服务器,向服务器订阅该节点话题。同时定时采集传感器信息,更新发送Json数据包,向服务器发送该节点的传感器消息。完成服务器与节点之间的消息传递与接收,实现服务器与节点之间的控制与查看。MQTT数据发送接收流程如图6所示。
图6MQTT数据发送接收流程图
4系统调试
4.1系统控制节点调试
控制板使用ESP32作为控制核心,上面3个端子接3路输入,下面3个端子接3路控制输出,右上角蓝的为温湿度传感器,正中央使用OLED显示该控制节点当前的基本状态信息。其中IN1,IN2, ID3为3路
输入的AD值,UUID为该控制节点的序列号。另外显示了温湿度信息和板子自身供电电池电压信息。控制节点连接到EMQ服务器上,显示节点的基本信息上传服务器,同时指示灯变为蓝。系统控制板及控制节点连接成功显示如图7所示
。
图7控制节点连接成功显示效果图
4.2系统服务器工作调试
智能家居服务器上运行开源服务器软件EMQ ,
使用EMQ 能够整合系统中的MQTT 信息和Web- Sockel 信息。使用浏览器登录进入EMQ 的管理界
面Dashboard 可以查看当前系统接入的通信消息节
点。客户端分别有控制节点Smart-ESP32-1 , Smart- ESP32-2接入。另外应用程序my_nodered 也接入到
服务器进行数据处理统计显示,并处理用户的控制 信息发送到智能家居网络中。智能家居服务器还能
通过EMQ 管理界面对连入的节点数据进行查看和 统计,也能够拉黑和踢除一些恶意节点。EMQ
Dashboard 管理界面如图8所示。
图8 EMQ Dashboard 管理界面
4.3系统应用程序调试
节点3的3路输入AD 采样值,并对温湿度数据进
应用程序作为MQTT - client 连接到EMQ 服务
行简单显示和统计,上面4个状态按钮可以控制控
器上,订阅到智能家居网络中的信息并将其显示到 制节点的4路输出状态。
浏览器上。如图9所示,该页面显示控制节点1〜
图 9'控制节点 1 连接成功显示图
(
下转第136页
)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论