APP下载

基于ESP32的楼宇智能监控系统设计

2023-05-08王飞

电脑知识与技术 2023年9期
关键词:远程控制监控系统

王飞

关键词:ESP32;OV2640;监控系统;远程控制

0 引言

随着社会经济的发展,城镇化水平进程突飞猛进。建筑技术的成就进一步催化了城镇化的基建能力,城市面积不断扩张,各种高楼拔地而起。现代化的城市中,各种楼宇已经成为人们工作、购物、休闲、娱乐、医疗等各种生活活动的承担载体[1]。大型楼宇建筑极大地方便了人们的生活,同时也对楼宇的管理工作提出了新的挑战。传统的楼宇管理方式需要花费巨大的人力和物力成本,也不能保证楼宇管理的安全性和有效性[1]。

计算机技术和通信技术的发展带来了现代化的楼宇智能监控系统。智能楼宇监控能利用传感器技术采集楼宇内现场的实时数据,并将采集的数据传输到监控中心和客户端等模块。现代楼宇监控系统在联动安防中为保障了楼宇建筑的内部安全运行发挥了重要作用[2]。

1 系统方案设计

智能监控系统要实现随时随地远程控制,首先必须在互联网上建立一个FRP服务器[3]。

1) 使用FRPS服务端和FRPC客户端对内网中连接的ESP32进行端口映射,使得其在公网环境下能够访问搭建在ESP32上的Web服务。并通过Web端进行远程监控,控制LED照明系统及其他设备[4],并对视频进行抓拍、保存和分辨率切换等操作以适应网络变化,从而保证视频的正常传输。

2) 对ESP32硬件进行配置,使得在内网环境下能够访问并控制设备。然后对Web服务进行完善,设计相应的人性化操作网页以适应多端远程控制的需求[5-6]。客户端和Web服务分别与云端服务器建立好连接后,接下来进行数据发收测试。

3) 客户端使用按Web页面的操作按钮的方式将指令通过网络通信发送数据到服务器,在服务器接收到来自客户端发来的数据后,会把接收到的数据再转发给内网穿透客户机,再通过内网映射将指令下发给ESP32模块。ESP32接收数据如果和发送数据一致并且执行相关指令,则通信正常。

4) 将控制状态传递给ESP32,ESP32使用网络将数据发送到云服务器,云服务器在接收到数据后将数据中继给客户端,并在客户端Web界面上显示数据。如果所传送的数据与所收到的数据相符,则证明通信就是正常的。系统总体框图如图1所示。

本系统利用云端服务器FRP作为互联网中间媒介,实现客户端和ESP32互联互通,从而完成数据传输,远程监视和控制。

2 系统硬件电路设计

2.1 ESP32-CAM 及其微控制芯片最小系统电路

ESP32-CAM采用5V电源供电,从其8号引脚接入,为降低VCC和GND之间的阻抗,在VCC与GND之间接入0.1uF和10uF的电容,使得VCC接近理想电压源。其电路原理图如图2所示。

设计采用的微控制芯片模块为ESP32-S模组,其最小系统由供电&复位电路、串口调试电路两部分组成。

1) 供电&复位电路

将EN端与3.3V高电平相连,当按下开关时EN端接地,可使其正确复位,如图3所示。

2) 串口调试电路

ESP32-S拥有三组收发数据引脚,为避免被其他外围设备占用,因此选择第34引脚RXD0和第35引脚TXD0,如图4所示。将USB to TTL的RXD和TXD分别与ESP32-S的35脚和34脚相连,并且将GND与第38脚共地。

另由IO0控制其何时执行下载调试操作,当IO0接高电平时芯片正常工作,当IO0引脚处的按钮被按下,触发低电平,芯片进入接收数据模式。

2.2 OV2640图像采集电路

电路由FPC接口、相机驱动电路组成。图像数据通过连接FPC接口,经相机驱动电路将采集的图像数据向ESP32-S传输[7-8]。

3 系统软件设计

3.1 视频传输程序

ESP32-S读取OV2640图像数据过程:等待第一个VSYNC信号(帧同步),等待第一个HREF信号(行同步)为高电平。然后等待第一个PCLK上升沿信号读取第一像素的较低字节,第二个上升沿信号读取第一像素的较高字节,第三个上升沿信号读取第二像素的较低字节,以此类推,当同步信号HREF变为低电平时读取完成一行像素数据,而后再等待HREF为高电平读取第二行像素,如此循环直至收到帧同步信号,一帧图像传输完毕。

系统上电时,使用esp_camera_init()按照给定参数初始化,检查ESP32和相机状态,使用空数组接收逐行传输的像素数据。等待接收完一帧完整图片后传输该图片至Web界面并判断是否有新一帧图片,计算画面大小和帧率并输出到串口,循环执行,如图7所示。

3.2 视频分辨率切换程序

当系统上电工作时,Web界面使用给定参数加载界面。若分辨率未作更改时,视频流按原分辨率传输视频,当检测到分辨率设定变更就向ESP32发出更改分辨率请求,ESP32响应后作出更改,并使用回调函数返回最新状态,而后根据status_handler()界面刷新状态。其如图8所示。

3.3 使用FRP 配置内网穿透

内网穿透借助FRP在服务器端和路由端配置映射关系,将局域网内的IP地址和端口号映射到公网,实现远程访问Web界面。并使用域名解析到指定公网端口,实现远程域名访问。其具体配置流程如图9所示。

4 系统测试与分析

4.1 LED 开关及控制继电器测试

LED 照明模块和继电器模块分别通过IO4 和IO12引脚与ESP32-S模组连接,在确认电路正确连接后开启电源,系统上电,程序初始化。当在Web界面分別按下“开灯/关灯”“开机/关机”按钮时,LED照明正常开启或关闭、继电器正常响应开关。图10为LED照明模块及继电器测试结果。

当在Web界面分别按下“开灯/关灯”“开机/关机”按钮时,灯光正常亮起,“开灯”按钮状态改变为“关灯”;继电器正常闭合通电,“开机”按钮状态改变为“关机”。

4.2 视频流、分辨率切换及抓拍测试

该系统通过OV2640图像传感器采集图像,通过图传实现视频流的发送,OV2640 通过FPC 接口与ESP32-S建立连接。Web界面正常传输视频流,可根据需求更改视频传输分辨率,并可完成抓拍。结果如图11所示。

观察串口可查看到视频流编码格式、大小、帧率以及平均值信息可知视频流已经正常传输,并在Web界面可以看到视频流,视频流及切换分辨率测试结果如图12所示。

视频流、分辨率切换测试结果:Web界面正常显示视频流,执行切换分辨率操作后可以看到与之前的画面大小及清晰度有明显改变。视频抓拍测试结果:通过点按抓拍按钮,视频流停止在当前画面,并且“抓拍”按钮变为“视频”,此时右击图片即可选择保存图片,测试结果如图13所示。

4.3 系统重启测试

系统上电后,Web界面正常加载。测试标准:当在Web界面按下重启按钮时,页面显示重启刷新倒计时,ESP-CAM正常重启,10s后界面刷新。结果如图14所示。当按下开关时,ESP-CAM正常重启,Web界面显示刷新倒计时,如图15所示,串口监视器显示其重启过程。重启完成后显示登录界面。

当Web 界面刷新进入登录界面,表示ESP32-CAM重启成功,功能测试完成。

5 结束语

本系统实现了包括网页端操作,远程视频流查看,远程控制设备,远程控制LED照明、实时抓拍监控照片并保存,故障重启等实用功能。在系统设计的过程中,使用了FRP+ESP32的设计模式,将内网和公网使用FRP配置内网穿透来实现公网访问。本设计的优点就是当公网遭受到网络攻击(如:DDOS) 而无法访问时,仍可以通过内网正常访问Web服务,从而保证了监控系统的安全性。本系统使用了OV2640作为图像采集器,确保稳定图像传输的同时,又保证了配置的便捷性。本系统具有极低的成本特性和部署的便捷性,同时具备实用性和经济性的优点。

猜你喜欢

远程控制监控系统
基于GSM的远程控制系统