APP下载

基于ESP32的远程家居控制系统设计

2022-02-20

无线互联科技 2022年24期
关键词:管脚浏览器温湿度

冷 宇

(上海科学技术职业学院,上海 201800)

0 引言

近年来,智能家居概念愈发普及,其利用电子技术、通信技术,将家庭内部的各种电器、家居紧密地联系到一起,通过专用的控制系统进行统一管理,使人们生活更加便捷、舒适,产生了积极影响[1]。本文基于此概念,设计了一套家居控制系统:用户通过手机、电脑中的浏览器访问云服务器所提供的Web页面,该页面能接收、显示家中的温湿度状态信息,用户还能通过页面上的按钮组件对烧水壶等电器进行操控。这套系统的使用不受地理限制,只需要用户能够接入互联网即可。

1 系统总体设计

为了实现用户的远程操作,需要云服务器作为数据中转。在云服务器上开发后台应用,一方面,接受家中控制器发起的网络连接,获取控制器传来的温湿度数据,以及向控制器发送电器运行指令;另一方面,为用户提供Web页面作为控制台,将温湿度数据实时展示到控制台上并接收用户在控制台上对电器的控制指令。整个系统结构如图1所示。

图1 系统架构

2 系统硬件设计

由于系统中的控制器需要网络连接的能力,故采用乐鑫公司设计研发的ESP32微控制器。该芯片专为可穿戴电子产品、移动设备和物联网应用场景而设计,将天线、功率放大器、电源管理、滤波器等功能集于一体,使得其最小系统只需较少的外围器件。同时,ESP32提供了SPI,SDIO,I2C,UART等接口,便于与外围功能模块进行连接。最重要的是,该款芯片支持TCP/IP联网、ESP-MESH联网及TLS 1.0、TLS 1.1、TLS1.2等各种WiFi网络协议。系统运行时,该控制器就可以连接到家中的WiFi网络,并与云服务器建立WebSocket连接。

2.1 温湿度测量模块

温湿度测量模块种类较多,本文设计选用DHT11温湿度传感器,其内部具有自动校准模块可对所采集到的温湿度数据进行整合处理,相比于其他型号传感器,具有响应快、数据处理能力强、抗干扰性能高等优点[2]。应用时将其1号脚、4号脚分别与ESP32的VDD,GND相连,作为电源供电,将其2号管脚经5 KΩ的上拉电阻与ESP32的P21管脚相连,用作数据读取,如图2所示。

图2 温湿度测量模块电路

2.2 继电器控制模块

继电器控制模块用于控制如烧水壶、照明灯等用电设备的工作,故选用最大负载为250VAC的继电器。将控制器的P22管脚作为控制管脚,连接到三极管的基极,利用三极管的开关作用驱动继电器的线圈工作。电路中还需要在电磁铁回路中使用二极管,抑制继电器开关瞬间产生的感应电动势,防止三极管被击穿;R1电阻用于控制管脚由高电平转为低电平时,迅速释放基极与发射极之间电容上的电荷,使三极管能够快速截止[3],如图3所示。

图3 继电器控制模块电路

3 系统软件设计

本文设计的控制器与云服务器之间、浏览器与云服务器之间的通信均是双向的,如既需要控制器主动向云服务器发送温湿度数据,也需要云服务器主动向控制器发送电器的控制信号,故采用WebSocket作为它们之间的网络通信协议。

WebSocket协议便能实现在单个TCP连接上进行全双工通信,于2011年被IETF定为标准RFC 6455。WebSocket应用之前,很多网站为了实现实时推送功能,所用的技术都是轮询,即以特定的时间间隔(如每5 s),由浏览器自动对服务器发起HTTP请求,再由服务器返回最新的消息数据给客户端浏览器。这种传统的模式带来比较明显的缺点,即浏览器需要不断地向服务器发出请求,且由于HTTP请求可能包含较长的头部,真正有效的数据可能只占很小的一部分,明显浪费宝贵的带宽资源。在这种情况下,HTML5中定义了WebSocket协议,能更好地节省服务器资源和带宽,能更实时地进行全双工通信。

3.1 控制器软件设计

(1)控制器初始化,具体包括先根据固化的SSID及密码进行WiFi连接,连接成功后,再向服务器的特定Websocket地址发起连接请求。(2)在Websocket连接的receive回调函数中,解析云服务器发来的数据,侦测电器工作的控制信号,若使电器工作,则输出P22管脚为高电平,控制继电器的电磁铁吸合,接通电器的电源回路,否则,输出P22管脚为低电平。(3)以2 s为周期,对温湿度模块进行轮询,读取温湿度数据后,再通过Websocket连接的send回调函数将数据发送到云服务器。

3.2 服务器软件设计

服务器软件使用Django框架开发[4]。(1)为控制台页面的访问提供HTTP路由服务,使用户可以通过手机、电脑中的浏览器访问到控制台。(2)接受客户端和控制器端发起的Websocket请求,对控制器端产生的温湿度数据以及客户端产生的电器运行控制信号进行中转。

3.3 浏览器端软件设计

通过VUE框架开发用户控制台页面,该页面同样向服务器发起WebSocket连接请求,作为数据交换通道[5]。为保证安全性,防止其他人对家居的非法操控,用户访问控制台时,需输入密码,服务器后台程序校验无误后,才能接受该客户端的Websocket连接请求。

(1)同控制器软件设计类似,在Websocket连接的receive回调函数中侦测云服务器转发的温湿度数据,并实时更新显示在页面中。

(2)页面中的开关组件一旦被用户触发,则通过send回调函数向云服务器发送电器工作控制信号。

4 测试

在服务器端启动后台程序。将控制器的外围电路进行焊接,确保各元件没有虚焊、短路等情况,再将程序下载至ESP32中运行。在浏览器中输入地址进入登录页面,再输入登录密码后,顺利显示控制台页面。

控制台中的温湿度显示组件能够显示出温湿度测量模块所处环境的温湿度数据,并且按2 s为周期更新数据,说明该模块与控制器间的通信正常。点击控制台中的照明灯开关组件为工作状态,可使esp32的P22管脚输出高电平,控制继电器吸合,成功将家中的照明灯打开,再次点击该组件,可使家中照明灯关闭,说明继电器控制模块与控制器间的通信同样正常。可见,云服务器能够起到数据中转作用,系统能够按设计的要求进行工作。

5 结语

本文设计了一个基于ESP32的远程家居控制系统,通过温湿度传感器采集温湿度数据,再经由服务器转发到用户页面,也可将用户在页面中的触控指令,通服务器转发到ESP32,进而实现对家用电器的远程操控。本文实现的功能虽然较为简单,但整体的研究为智能家居控制系统提供了一个实现方式,后期研究可以此为基础,进行功能上的拓展,如人脸识别、安防监控等。

猜你喜欢

管脚浏览器温湿度
温湿度控制器在回收砂冷却系统中的应用
基于DSP的多路温湿度监测系统
反浏览器指纹追踪
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
CMOS数字IC管脚电容的估算与测量
环球浏览器
HC08芯片JVT测试方法的探究