基于ESP32的WiFi数据流设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于 ESP32的 WiFi数据流设计与实现
1.摘要
针对当前消防工作者在进行消防工作时需要及时地获取现场的情况以及需要
针对现场形势进行合理的工作部署的问题,设计一个基于ESP32的WiFi数据流
传输替代有线数据采集传输系统是必然的趋势。

该系统是由ESP32作为主控芯片
的无线数据采集传输系统,将OV2640摄像头采集到的图像数据传输给ESP32并
缓存,再通过ESP32的WiFi模块连接指定的WiFi,将缓存的数据通过WiFi无线
传输给上位机系统并存储和实时显示。

关键词:ESP32;0V2460;WiFi数据流;无线传输
2.项目背景
传统的灭火方式捕获信息慢,处理响应不够及时,因此如何高效、快速地获取
并传递信息,进而针对被困人员展开施救,成为灭火救援面临的一个新问题。


用无线WiFi替代有线传输现场视频,从而获取和掌握现场情况就显得十分重要。

基于此背景条件下,本项目借助无线WiFi以及ESP32-CAM模块来实现无线数据
流传输,可以让视频的传输速度提高、传输稳定性增加。

通过外设采集现场图像
视频传到消防员手中,从而了解到火场的情况,保证了救援人员的安全,又给救
援工作的进行提供帮助[1]。

3.系统总体方案设计
基于ESP32的WiFi数据流设计与实现主要使用搭载了OV2640摄像头的
ESP32-CAM视频传输模块,将此模块搭载在无人机上面就可以实现距离较长的图
像视频传输。

当ESP32-CAM视频传输模块接通5V电源后,初始化各个模块。

当系统在运行时,加在ESP32模块驱动OV2640摄像头外设在初始化之后采
集图像,再将采集到的信号数据传输给OV2640自带的一个8位微处理器进行图
像压缩等,可以将采集到的图像转换成JEPG等图像格式数据输出并周期性地发
给ESP32模块,ESP32模块会对所采集到的数据进行缓存。

在此之前需要设定所
连接的WiFi局域网,建立服务器,并通过AP(无线访问接入点)建立与上位机(电脑)之间的以太网络连接,将所收集到的数据通过WiFi网络发送到上位机上,同时上位机就会对数据进行存储及实时显示。

系统总体硬件结构如图1所示[2]。

图1 系统总体硬件结构图
本设计中各个模块的功能及作用:
①OV2640摄像头模块:当系统开始运行时,ESP32驱动OV2640摄像头外设
在初始化之后采集图像,并将采集到的图像数据转换成JEPG格式输出并周期性
地发给ESP32模块。

②ESP32模块:缓存OV2640模块收集到的图像数据,并通过WiFi模块将缓
存的图像数据传输到上位机存储并实时显示。

4.系统软件设计
(一)初始化NVS存储和WiFi模式配置
ESP32芯片采用低功耗双核32位CPU,是体积超小的802.11b/g/n Wi-Fi + BT/BLE SoC模块,支持STA/AP/STA+AP工作模式,支持图片WiFi上传以及高速WiFi传输。

本设计采用STA模式,使用WiFi_init_sta()函数进行STA模式配置。

使用STA模式之前,需要配置WiFi账号和密码才能连接到指定的AP。

NVS是将
数据存储到flash中,掉电或重启后数据仍然存在,flash类似于PC上磁盘[3]。

(二)数据发送配置
在STA模式下,采用TCP模式传输可以减少传输过程中数据的丢失。

在Arduino IDE中配置好指定的WiFi网络,再将程序烧录到ESP32中后,ESP32就
可以连接上WiFi并获取到AP分配的IP。

在获取IP后,就可以通过ESP32和上
位机之间建立通信的Socet接口与上位机建立通信,来发送获取到的数据。

在浏
览器里面输入IP后,就可以在电脑上实时显示OV2640摄像头所获取到的图像数据。

ESP32主动对上位机发起连接请求,上位机在连接前开启监听的Scoket接口,来实时监听客户端的请求。

总体流程图如图2所示[4]。

图2 数据发送总体流程图
5.系统硬件设计
(一)OV2640摄像头模块
OV2640摄像头模块系统中的图像采集模块OV2640是一款1/4寸的CMOS UXGA图像传感器,其输出图像最高像素可达1600×1200,用户也可以根据需求调
整像素规格。

OV2640通过SCCB总线选择输出图像格式和图像数据帧的位数,选择
的输出图像数据格式为JPEG,输出数据帧的位数有8位和10位。

SCCB总线与I2C总线协议类似,使用SI0-0和SI0-1两根数据线进行传输和
控制。

SI0-0是控制线,提供传输过程中的时钟脉冲控制信号,SIO-1是串行双
向数据传输线,根据控制信号通过串行的方式发送数据。

采用I/O口模拟SCCB
总线的要点如下:对于SCL所连接的引脚,在寄存器中设置为输出,而SDA所接
的引脚,在数据传送过程中,基于IODIR值的改变,动态改变引脚为输入或输出
方式。

(二)图像数据压缩处理
通过JPEG压缩处理后的图像,降低了图像的数据量,一帧图像数据的发送
时间和功耗明显降低。

传输JPEG 压缩格式的图像时,不仅能够提高发送速率,
而且提高了其工作时长。

JPEG压缩算法简单的分为以下4个主要的步骤[5]:
1.
预处理:颜色空间的变换(RGB变换至YCbCr),色彩信号的抽样
2.
离散余弦变换
3.
量化和Zigzag重排
4.
编码。

包括直流(DC)系数的编码、交流(AC)系数的编码和熵编码。

(三)WiFi图像传输系统
ESP32模块利用WiFi可以实现STA、AP、STA+AP等三种方式,ESP32 IDE固件中集成了一款在嵌入式中应用很广的轻量级TCP/IP协议栈lwip。

利用这套协议栈我们就可以接受和发送数据了。

利用TCP发送数据时,设备分为两种角色:服务端,客户端。

ESP32与上位机建立通信后就可以通过WiFi将缓存的所采集的图像数据(JEPG格式)发送给上位机,上位机接收到ESP32发送的数据后缓存并实时显示出来[6]。

(四)无人机硬件设备
采用常规的F450机架四旋翼机架,电调采用好赢40A电调,电机采用恒飞X2122电机,电池采用驯龙者3s5200mA电池。

6.结束语
本设计使用了ESP32-CAM开发板,主要由OV2640图像采集、WiFi无线传输组成。

该设计在消防无人机的上的应用可以实现视频无线实时传输,来达到采集现场图像视频,让消防工作者更加了解到现场情况的目的。

虽然无法解决距离比较长的情况的视频传输,但是相信可以用更好的处理器更好的算法来实现距离更加远、更加稳定的视频以及其它数据流传输功能。

7.参考文献
[1] 宋诚,高思琦,欧馨雅. 一种智能化避障无人机系统的设计研究[J]. 数码设计(下),2021,10(3):42.
[2] 林勇.一种通过WiFi实现实时传输音视频的方法及系统 [J].信息记录材料,2019,20(02):46.
[3] 高培,何栋炜. 基于ESP32的无线数据采集系统设计[J]. 佳木斯大学学报(自然科学版),2021,39(1):134-139.
[4] 邱绪林. 基于wifi的无线视频传输系统[J]. 中国新通
信,2017,19(4):31.
[5] 温全,成天乐,苏泽亚. 基于STM32和OV2640的自主循迹四旋翼飞行器设计[J]. 微型机与应用,2016,35(22):105-107.
[6] 祁凯. 基于WiFi视频传输技术的应用[J]. 电子世界,2015(23):185-186.。

相关文档
最新文档