项目简介
本项目基于C语言和ESP-IDF框架开发,借助ESP32模块及摄像头模块,可实现图像的捕获、传输,支持多种图像格式,还具备强大的QR码识别功能,能对图像中的QR码进行识别和解码。
项目的主要特性和功能
- 多摄像头支持:支持OV2640、OV7725、OV7670等摄像头模块,部分其他OV7xxx、OV5xxx系列摄像头经配置调整后也可使用。
- 图像格式多样:支持OV2640输出JPEG格式,支持OV2640、OV7725和OV7670输出灰度格式。
- QR码识别:集成QR码识别库,能准确识别并解码图像中的QR码。
- HTTP服务器:可设置HTTP服务器,通过HTTP请求提供摄像头捕获的图像。
- 图像流处理:具备处理图像流的HTTP请求处理函数,可将摄像头捕获的图像作为流发送给客户端。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件,且已安装ESP-IDF开发环境,熟悉ESP32和ESP-IDF的基本操作。
具体步骤
-
硬件连接
- 准备好ESP32模块、摄像头模块、PC(安装有esp-idf)以及相机库esp32-camera。
-
按照以下表格连接ESP32和摄像头(有ESP32 DevKitJ和Ai-Thinker CAM board两种引脚映射方案): | Interface | Camera Pin | Pin Mapping for ESP32 DevKitJ | Ai-Thinker CAM board | | :--- | :---: | :---: | :---: | | SCCB Clock | SIOC | IO27 | IO27 | | SCCB Data | SIOD | IO26 | IO26 | | System Clock | XCLK | IO21 | IO0 | | Vertical Sync | VSYNC | IO25 | IO25 | | Horizontal Reference | HREF | IO23 | IO23 | | Pixel Clock | PCLK | IO22 | IO22 | | Pixel Data Bit 0 | D2 | IO4 | IO5 | | Pixel Data Bit 1 | D3 | IO5 | IO18 | | Pixel Data Bit 2 | D4 | IO18 | IO19 | | Pixel Data Bit 3 | D5 | IO19 | IO21 | | Pixel Data Bit 4 | D6 | IO36 | IO36 | | Pixel Data Bit 5 | D7 | IO39 | IO39 | | Pixel Data Bit 6 | D8 | IO34 | IO34 | | Pixel Data Bit 7 | D9 | IO35 | IO35 | | Camera Reset | RESET | IO2 | 3.3V | | Camera Power Down | PWDN | see Note 1 | GND | | Power Supply 3.3V | 3V3 | 3V3 | IO32 | | Ground | GND | GND | GND |
-
注意:“Camera pin”列指的是OV7725摄像头模块的引脚排列;“Camera Power Down”引脚无需连接到ESP32 GPIO,可用10 kOhm电阻下拉到地。
- 代码获取与更新
- 由于项目包含子模块,复制代码时需使用
--recursive
选项:git clone --recursive <项目仓库地址>
。 - 若之前未使用
--recursive
复制,可运行git submodule update --init
更新子模块。 - 编译与烧录
- 使用ESP-IDF编译工具编译项目。
- 若在烧录时遇到因摄像头复位线上拉导致的连接问题,可采取以下解决办法:
- 使用ESP-WROVER V1时,烧录时将GPIO2连接到GND。
- 移除摄像头模块的电源(如从插座中取出或拔掉3.3V线)。
- 将摄像头复位线映射到ESP32的其他GPIO引脚,如
GPIO15
。
- 功能测试
- 烧录完成后,打开串口终端。
- 通过HTTP请求测试图像捕获和传输功能。
- 若要使用QR码识别功能,运行
make menuconfig
,打开ESP32 Camera Demo Configuration
菜单选项,勾选QR recognize Support,然后在app_main.c
文件中进行如下设置: ```c
define CAMERA_PIXEL_FORMAT CAMERA_PF_GRAYSCALE
define CAMERA_FRAME_SIZE CAMERA_FS_QVGA
`` - 注意:若要识别QR码,
CAMERA_PIXEL_FORMAT必须设置为
CAMERA_PF_GRAYSCALE`,照片尺寸不能超过VGA,否则可能导致内存溢出。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】