ESP32-CAM带OV2640摄像头视频显示
关于ESP32-CAM
ESP32-CAM是安信可发布的一款小体积并且带有OV2640摄像头模组(也可以更换为OV7670)的ESP32开发板,尺寸仅为27x40.5x4.5mm,主频高达240MHZ,拥有内置的520 KB SRAM和外置的8MB PSRAM,板载有闪光灯并且带有TF卡接口(可以用来保存拍照的图片),拥有以上配置那么我们接下来将验证ESP32在网页上显示视频。
本期文章还是之前在B站看到乐鑫发布的资源,本次我们仅仅只是对方案进行验证,程序来源于乐鑫,也感谢乐鑫提供了ESP32还提供了各种各样的资源让我们互相学习互相进步!
使用前准备
在使用前我们肯定需要准备一块ESP32-CAM的模块
准备好最主要的控制器模块之后我们需要一个OV2640的摄像头模组用来采集图像传输给ESP32的,当然,买ESP32-CAM的时候一般会有一块OV2640,如果有就不用准备了
最后我们准备一个USB-TTL用来下载程序和串口通信使用,杜邦线若干
例程修改
我们本次采用的验证方案为ESP32和电脑都连接到手机热点之后再电脑端打开ESP32的IP地址接收视频,接下来我们打开例程,看到下面部分,需要修改wifi名称与密码参数(需要例程可以在下方留言邮箱,也可以在网上自行寻找,开源的)
//Viral Science www.youtube.com/c/viralscience www.viralsciencecreativity.com
//Blynk ESP32 CAM Simple Monitor System
//While Uploading Code on ESP32 Board 1, comment the lines number: 17,36 and Uncomment lines: 16,35
//While Uploading Code on ESP32 Board 2, comment the lines number: 16,35 and Uncomment lines: 17,36
#include "esp_camera.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Select camera model
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
#include "camera_pins.h"
#define PHOTO 14 //ESP32 CAM 1
//#define PHOTO 15 //ESP32 CAM 2
#define LED
const char* ssid = "---------"; //wifi name
const char* password = "---------"; //password
char auth[] = "---------------------------------vPmZua_9e2p2Wd_gp2cRrpmMFKutvKoW"; //Auth Code sent by Blynk
String local_IP;
int count = 0;
void startCameraServer();
我们找到手机上的热点功能,看到开放的热点名称与密码,将名称与密码分别填入下面这段代码的参数ssid
和password
中
const char* ssid = "---------"; //wifi name
const char* password = "---------"; //password
我的手机热点名称为 OnePlus 8 Pro 密码为 YXDZ1234 ,代码修改之后如下
const char* ssid = "OnePlus 8 Pro"; //wifi name
const char* password = "YXDZ1234"; //password
后面还有一段需要填入的参数 auth[]
是用在手机软件连接拍照是使用的,我们这里不用这个功能就不动这个参数就行
程序烧录
程序上我们在网页上查看仅需修改例程中的ssid和password两个参数即可,相对来说较为简单,我们按照上面修改完,接下来进入烧录步骤
需要注意的是ESP32-CAM上并没有板载下载电路以及接口,因此我们需要自行准备一个下载器,也就是USB-TTL的小模块,下面我们看到ESP32-CAM的引脚来进行接线
我们进行串口连接进行下载的时候需要注意要将IO0
接到GND
,目前是为了让模块进入下载模式,下载完之后我们拔掉IO0
的接线即可,接线我们参照下表即可
USB-TTL | ESP32-CAM |
---|---|
5V | 5V |
TXD | U0RXD |
RXD | U0RXD |
GND | GND & IO0 |
GND & IO0
指IO0
和GND
均接到GND
端口,接下来打开电脑设备管理器查看端口号,如果是其他或者位置设备自行百度安装CH340驱动即可,下面看一张接好线的图片作对比
先将电脑连接到手机开的热点上去,方便一会下好程序可以直接打开IP地址
接下来把USB-TTL插到电脑上,在设备管理器中查看端口号,我这里是COM20
,不同电脑不同,一会根据自己的来选择
下一步打开我们之前修改好的例程,开发板选择AI Thinker ESP32-CAM
,端口选择之前查看的,我这里是COM20
,点击上传,程序有点大上传时间略久
网页连接
上传完程序之后将IO0
和GND
之间的那根线拔下来,打开串口监视器,按下上面的RST
复位按键,在连接上手机的热点之后将打印输出我们需要查看的IP地址,将IP地址复制到浏览器中打开即可看到相机参数配置界面
需要注意的是电脑和ESP32必须要在同一个网络内,也就是我们前面让电脑和ESP32都连接到手机的操作
打开网页后面可以看到下方有很多参数,几个主要的参数第一个Resolution用来配置分辨率的,下方红色部分Get Still用来获取一帧图像,可以认为拍了一张照片比较类似,旁边的Start Stream可以实时显示画面,可以看成视频类似
基本上有上面三个参数就可以获取完整的图像了,其他的还有一个WB模式,放大倍数之类的可以都试看什么效果,这里就不做说明了,下面是配置之后拍的一个灯球的效果演示
总结
本期对ESP32-CAM通过wifi无线显示视频效果上来说还是比较满意的,分辨率较高的时候刷新速度慢看起来会有点卡顿不过相对制作成本来说个人感觉还是蛮不错,有几个比较需要注意的地方是一些小伙伴在测试的时候可能会出现画面上出现线条的情况,比较大的概率是由于供电不足导致的,建议用5V 2A以上功率的电源,由于在使用的时候IO0有连接到摄像头的XCLK,所以在下载完程序之后不要将IO0接到高电平,断开什么都不接就好
需要程序等资料的小伙伴可以在下方留言邮箱,也可以自行网上下载,欢迎留言交流,大家互相学习互相进步!