尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

ESP32-S3-CAM多型号摄像头驱动(GC2145/GC2640/OV2640/OV3660/OV5640)附完整源码与测试程序

ESP32-S3-CAM多型号摄像头驱动(GC2145/GC2640/OV2640/OV3660/OV5640)附完整源码与测试程序
📅 发布时间:2026/7/8 12:42:35

ESP32-S3-CAM多型号摄像头驱动(GC2145/GC2640/OV2640/OV3660/OV5640)附完整源码与测试程序

  • 一、ESP32-S3-CAM开发板简介
  • 二、五款摄像头参数对比
    • 参数对比
  • 三、摄像头引脚
  • 四、实际接线
  • 五、CameraWebServer 代码配置
    • 1.单片机在arduino里的配置
    • 2.测试代码
  • 六、测试现象
  • 七、总结

一、ESP32-S3-CAM开发板简介

ESP32-S3-CAM 是一款基于 ESP32-S3 的摄像头开发板,集成 WiFi、Bluetooth LE、USB 以及摄像头接口,可用于AI视觉,视频监控,图像采集,人脸识别,物联网终端。
主要特点:

  • ESP32-S3 双核240MHz
  • 支持 PSRAM
  • 支持 JPEG 硬件编码
  • DVP Camera Interface
  • USB 下载
  • WiFi 图传
  • 支持 MicroSD
    可以用 Arduino IDE 或 ESP-IDF 进行开发。

二、五款摄像头参数对比

本次测试共使用了五款常见的 DVP 接口摄像头,包括国产 GC 系列和OmniVision的OV 系列。分辨率覆盖了 2MP、3MP 和 5MP 三个等级,能够满足从普通图传到高清图像采集的不同应用需求。

参数对比

型号GC2145GC2640OV2640OV3660OV5640
像素2MP2MP2MP3MP5MP
最大分辨率1600×12001600×12001600×12002048×15362592×1944
输出接口DVP 8bitDVP 8bitDVP 8bitDVP 8bitDVP 8bit
输出格式RAW、RGB565、YUVRAW、RGB565、YUVRAW、RGB565、YUV、JPEGRAW、RGB565、YUV、JPEGRAW、RGB565、YUV、JPEG
硬件JPEG不支持不支持支持支持支持
对焦固定焦固定焦固定焦固定焦固定焦/自动对焦(AF)版本
成本最低较低中等较高最高

三、摄像头引脚

ESP32-S3-CAM开发板的摄像头接口引脚定义

四、实际接线

排线座是翻盖下接的,使用的时候把座子打开,屏幕插接进去,再压下即可。
板子两个USB是两种不同的下载方式,这里选择的是串口COM端进行下载。

PS:
标记USB-OTG的是USB下载口,插上会自动识别USB口。
标记USB-UART的是串口下载口,下载对应的串口驱动才能识别到端口号。

五、CameraWebServer 代码配置

1.单片机在arduino里的配置

ESP32S3配置
1.ARDUINO搭建ESP32环境,选择S3设备。(参考官方社区的离线搭建教程:ARDUINO ESP32环境搭建)
2.端口看设备管理器识别到的端口是COMxx,对应选择就行
3.FLASH选择"16MB",PSRAM选"OPI PSRAM",不然编译可能会报错

2.测试代码

这里用的是ESP32-S3-cam开发板进行测试,程序使用的是CameraWebServer集成了:摄像头初始化,WiFi联网,HTTP服务器,JPEG图片采集,实时视频流(MJPEG),摄像头参数调节。
这里程序我统一设置了RGB565的格式,这个格式对于五款摄像头来说都是支持( GC2145,GC2640,OV2640, OV3660,OV5640),所以这个程序可以同时兼容5款摄像头去使用。

程序整体流程如下:

初始化串口 │ 配置Camera引脚 │ camera_config_t │ esp_camera_init() │ 连接WiFi │ 启动HTTP服务器 │ 浏览器访问IP │ 查看实时视频

代码展示:

#include"esp_camera.h"#include<WiFi.h>#defineCAMERA_MODEL_ESP32S3_EYE// Has PSRAM#include"camera_pins.h"constchar*ssid="skr";constchar*password="123456789";voidstartCameraServer();voidsetupLedFlash(intpin);voidsetup(){Serial.begin(115200);Serial.setDebugOutput(true);//允许ESP-IDF底层日志输出Serial.println();camera_config_t config;//创建camera配置结构体config.ledc_channel=LEDC_CHANNEL_0;config.ledc_timer=LEDC_TIMER_0;config.pin_d0=Y2_GPIO_NUM;config.pin_d1=Y3_GPIO_NUM;config.pin_d2=Y4_GPIO_NUM;config.pin_d3=Y5_GPIO_NUM;config.pin_d4=Y6_GPIO_NUM;config.pin_d5=Y7_GPIO_NUM;config.pin_d6=Y8_GPIO_NUM;config.pin_d7=Y9_GPIO_NUM;config.pin_xclk=XCLK_GPIO_NUM;config.pin_pclk=PCLK_GPIO_NUM;config.pin_vsync=VSYNC_GPIO_NUM;config.pin_href=HREF_GPIO_NUM;config.pin_sccb_sda=SIOD_GPIO_NUM;config.pin_sccb_scl=SIOC_GPIO_NUM;config.pin_pwdn=PWDN_GPIO_NUM;config.pin_reset=RESET_GPIO_NUM;config.xclk_freq_hz=20000000;config.pixel_format=PIXFORMAT_RGB565;// for face detection/recognitionconfig.grab_mode=CAMERA_GRAB_WHEN_EMPTY;config.fb_location=CAMERA_FB_IN_PSRAM;config.frame_size=FRAMESIZE_240X240;//分辨率config.fb_count=2;// camera initesp_err_t err=esp_camera_init(&config);if(err!=ESP_OK){Serial.printf("Camera init failed with error 0x%x",err);return;}sensor_t*s=esp_camera_sensor_get();s->set_vflip(s,1);// flip it backs->set_brightness(s,1);// up the brightness just a bits->set_saturation(s,-2);// lower the saturationWiFi.begin(ssid,password);//开始连接wifiWiFi.setSleep(false);//关闭省电while(WiFi.status()!=WL_CONNECTED){//等待连接delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");startCameraServer();//启动HTTP服务器Serial.print("Camera Ready! Use 'http://");Serial.print(WiFi.localIP());Serial.println("' to connect");}voidloop(){// Do nothing. Everything is done in another task by the web serverdelay(10000);}

需要注意自己使用的时候要把这里改成自己对应要连接的WiFi账号和密码

constchar*ssid="xxx";constchar*password="xxxxxx";

六、测试现象

代码烧录进单片机后,打开串口输出(波特率115200),可以看到板子连接到WiFi后会输出一个IP地址.

把电脑也连接到WiFi后打开对应IP地址,网页端点击Start Stream就可以看到实时视频流了。(Get Still是获取单帧图片)


七、总结

  • 这里给出的是五款摄像头通用的测试代码,官方的示例代码还有提供jpeg格式输出,但是只有OV系列的摄像头有这个格式,GC系列都是不支持jpeg输出的。
  • 如果你使用的不是ESP32S3的,是ESP32-CAM你可以直接把

#define CAMERA_MODEL_ESP32S3_EYE

换成

#define CAMERA_MODEL_AI_THINKER

再把板子选择

就可以直接测试了

  • 这里也总结了原有官方的代码用JPEG格式进行输出(仅OV系列),这里就不赘述了,有需要工程代码的可以留言邮箱获取!!

相关新闻

  • DLSS Swapper完整指南:三步掌握游戏性能调优的终极解决方案
  • 汽车级半桥驱动器设计:多通道驱动与可靠性优化
  • STM32与BMI160传感器开发实战指南

最新新闻

  • 如何5分钟完成Beyond Compare 5激活:两种高效密钥生成方案
  • AD7490与PIC18F4550构建高速数据采集系统
  • 高压隔离技术:ISOM8710与PIC18F86K90的安全设计
  • AI前沿与软件主流差距巨大:Anthropic人均算力支出达200万美元,未来成本走向几何?
  • 485有线方案在酒店客控中的应用强电485混合架构设计
  • 2026年无锡干细胞机构如何考量?解析行业布局与合规焦点

日新闻

  • PROPKA 3深度解析:蛋白质pKa预测的实战指南与算法原理
  • 微信小程序 globalData 监听:基于 Object.defineProperty 的 3 种实现方案对比
  • MySQL 8.0 数据清洗实战:3类异常值识别与 UPDATE/DELETE 批量处理

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号