Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序

文章目录

    • 基于Arduino的ESP32-CAM开发技术全系列教程
    • 1. 前言
    • 2. ESP32-CAM介绍
      • 2.1 ESP32-CAM特性
      • 2.2 ESP32-CAM 引脚
        • 2.2.1 Power电源相关引脚
        • 2.2.2 Serial串口引脚
        • 2.2.3 下载或者运行模式引脚
        • 2.2.4 microSD卡相关引脚
    • 3.ESP32-CAM软件环境搭建,编译第一个Demo
    • 4.ESP32-CAM硬件环境搭建,运行第一个Demo
      • 4.1 硬件连线
      • 4.2 烧录配置
        • 4.2.1 确保GPIO0接到了GND
        • 4.2.2 连接到电脑后,手动按一下RST复位,选择正确Com口
        • 4.2.3 下载代码
    • 5. 第一个Demo
      • 5.1 串口调试器看看效果
      • 5.2 浏览器看看图像流
    • 6.可能遇到的问题
      • 6.1 Failed to connect to ESP32: Timed out waiting for packet header
      • 6.2 Sketch too big error – Wrong partition scheme selected

基于Arduino的ESP32-CAM开发技术全系列教程

1. 前言

最近闲着没事,准备入手学习一波ESP32-CAM。主要学习资料就是国外大佬的学习网站。

  • https://randomnerdtutorials.com/projects-esp32-cam/https://randomnerdtutorials.com/projects-esp32-cam/

当然,这是全英文的资料,博哥也觉得写得非常好,所以尽量去翻译过来,方便初学者学习。废话不多说,直接上手。

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第1张图片

2. ESP32-CAM介绍

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第2张图片
这个ESP32-CAM是一个搭载ESP32-S芯片的小型摄像头模块(目前大多数是搭载OV2640摄像头)。除了OV2640摄像头和几个连接外设的GPIO外,它还具有一个microSD卡插槽,可用于存储相机拍摄的图像或存储文件以供客户端使用。

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第3张图片
目前市面上的ESP32-CAM没有搭载USB连接器,所以一般开发者都是通过USB-TTL线以及连接模块的串口去下载固件代码。

2.1 ESP32-CAM特性

  • The smallest 802.11b/g/n Wi-Fi BT SoC module
  • Low power 32-bit CPU,can also serve the application processor
  • Up to 160MHz clock speed, summary computing power up to 600 DMIPS
  • Built-in 520 KB SRAM, external 4MPSRAM
  • Supports UART/SPI/I2C/PWM/ADC/DAC
  • Support OV2640 and OV7670 cameras, built-in flash lamp
  • Support image WiFI upload
  • Support TF card
  • Supports multiple sleep modes
  • Embedded Lwip and FreeRTOS
  • Supports STA/AP/STA+AP operation mode
  • Support Smart Config/AirKiss technology
  • Support for serial port local and remote firmware upgrades (FOTA)

因为本身就是基于ESP32进行开发,所以支持绝大部分的ESP特性,剩下就是看内存空间以及特定特性(比如摄像头等等)

2.2 ESP32-CAM 引脚

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第4张图片

2.2.1 Power电源相关引脚

  • 三个GND引脚
  • 两个VCC引脚,包括5V3.3V

2.2.2 Serial串口引脚

  • GPIO1(U0TXD)和GPIO3(U0RXD)属于串口引脚,通过这两个引脚来下载固件代码。
  • GPIO16作为U2RXD,只是一个接收引脚

2.2.3 下载或者运行模式引脚

  • GPIO0决定了ESP32是处于烧录(FlashingModel)模式还是运行(RunningModel)模式。当GPIO0接地,ESP32处于烧录模式。

2.2.4 microSD卡相关引脚

  • GPIO 14: CLK
  • GPIO 15: CMD
  • GPIO 2: Data 0
  • GPIO 4: Data 1 (also connected to the on-board LED)
  • GPIO 12: Data 2
  • GPIO 13: Data 3

当然,如果你不需要用到SD卡,那么这些引脚都可以作为普通引脚使用。

3.ESP32-CAM软件环境搭建,编译第一个Demo

  • 第一步,搭建ESP32 Arduino开发环境。具体参考

ESP32 开发之旅① 走进ESP32的世界 安装开发环境

  • 第二步,安装完环境之后,选择工具->开发板,选择 ESP32 Wrover Module
    Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第5张图片
  • 第三步,选择 文件->示例->ESP32->Camera,打开例程
    Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第6张图片
    Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第7张图片
    修改两个地方:

① 修改Wifi账号和密码
const char* ssid = “REPLACE_WITH_YOUR_SSID”;
const char* password = “REPLACE_WITH_YOUR_PASSWORD”;

②修改模块宏定义
// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第8张图片

这时候如果直接编译会提示内存空间不足,还需要修改编译选项(主要是关注Partition Scheme)。
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第9张图片
基本上,到这一步都能编译成功。

4.ESP32-CAM硬件环境搭建,运行第一个Demo

当然,别问我哪里可以买到ESP32-CAM。。。。

4.1 硬件连线

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第10张图片
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第11张图片
网上很多帖子都是用3.3V,但是博主试过3.3V基本上没有成功过,而是直接使用5V

Many FTDI programmers have a jumper that allows you to select 3.3V or 5V. Make sure the jumper is in the right place to select 5V. (文档也推荐用5V,所以当一直处于Connecting状态的时候,试试5V吧)

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第12张图片
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第13张图片

4.2 烧录配置

4.2.1 确保GPIO0接到了GND

4.2.2 连接到电脑后,手动按一下RST复位,选择正确Com口

4.2.3 下载代码

正常来说,需要花点时间下载,静静泡壶茶等待吧。

5. 第一个Demo

下载完毕之后,记得把GPIO0断开GND,然后按一下RST,进入工作运行模式。

5.1 串口调试器看看效果

打开串口调试器。波特率 115200
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第14张图片
会看到有一个IP地址,我们会通过这个IP地址去访问ESP32的webServer

5.2 浏览器看看图像流

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第15张图片
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第16张图片
这里面有一大堆的按钮操作,同学们慢慢一个个试试玩玩看看效果。

6.可能遇到的问题

https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/
遇到奇奇怪怪的问题都可以去这里看看,是一个宝库。
这里博主挑几个常见的问题翻一下。

6.1 Failed to connect to ESP32: Timed out waiting for packet header

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第17张图片
这个错误意味着ESP32-CAM并不是处于烧录模式,或者没有正确连接到USB下载器(比如RX TX接反了,或者接触不良。。。)

解决思路:

① 接5V电源
Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第18张图片
② GPIO0必须接地
③ 确保连线正常
④ 选择正确的Com口
⑤ USB下载器一般用CP2102

6.2 Sketch too big error – Wrong partition scheme selected

Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序_第19张图片
就是说你的编译选项不对。习惯性选择:

go to Tools > Partition Scheme, select “Huge APP (3MB No OTA)“.

你可能感兴趣的:(Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序)