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

Posted 单片机菜鸟哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序相关的知识,希望对你有一定的参考价值。

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

1. 前言

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

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

在这里插入图片描述

2. ESP32-CAM介绍

在这里插入图片描述
这个ESP32-CAM是一个搭载ESP32-S芯片的小型摄像头模块(目前大多数是搭载OV2640摄像头)。除了OV2640摄像头和几个连接外设的GPIO外,它还具有一个microSD卡插槽,可用于存储相机拍摄的图像或存储文件以供客户端使用。

在这里插入图片描述
目前市面上的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 引脚

在这里插入图片描述

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
    在这里插入图片描述
  • 第三步,选择 文件->示例->ESP32->Camera,打开例程
    在这里插入图片描述
    在这里插入图片描述
    修改两个地方:

① 修改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
在这里插入图片描述

这时候如果直接编译会提示内存空间不足,还需要修改编译选项(主要是关注Partition Scheme)。
在这里插入图片描述
基本上,到这一步都能编译成功。

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

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

4.1 硬件连线

在这里插入图片描述
在这里插入图片描述
网上很多帖子都是用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吧)

在这里插入图片描述
在这里插入图片描述

4.2 烧录配置

4.2.1 确保GPIO0接到了GND

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

4.2.3 下载代码

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

5. 第一个Demo

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

5.1 串口调试器看看效果

打开串口调试器。波特率 115200
在这里插入图片描述
会看到有一个IP地址,我们会通过这个IP地址去访问ESP32的webServer

5.2 浏览器看看图像流

在这里插入图片描述
在这里插入图片描述
这里面有一大堆的按钮操作,同学们慢慢一个个试试玩玩看看效果。

6.可能遇到的问题

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

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

在这里插入图片描述
这个错误意味着ESP32-CAM并不是处于烧录模式,或者没有正确连接到USB下载器(比如RX TX接反了,或者接触不良。。。)

解决思路:

① 接5V电源
在这里插入图片描述
② GPIO0必须接地
③ 确保连线正常
④ 选择正确的Com口
⑤ USB下载器一般用CP2102

6.2 Sketch too big error – Wrong partition scheme selected

在这里插入图片描述
就是说你的编译选项不对。习惯性选择:

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

以上是关于Arduino ESP32-CAM 学习之旅① 认识ESP32-CAM,搭建环境,运行第一个程序的主要内容,如果未能解决你的问题,请参考以下文章

乐鑫Esp32学习之旅 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,拍照图片通过有线串口传到上位机PC端。(附带设备端+PC端源码)

乐鑫Esp32学习之旅 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,拍照图片通过有线串口传到上位机PC端。(附带设备端+PC端源码)

乐鑫Esp32学习之旅 安信可 ESP32-Cam 摄像头开发板二次开发 C SDK编程,拍照图片通过有线串口传到上位机PC端。(附带设备端+PC端源码)

Android Studio + Esp32Cam 实现手机APP实时传输监控视频

ESP8266开发之旅 基础篇① 走进ESP8266的世界

最简单DIY基于ESP32CAM的物联网相机系统①(用网页实现拍照图传)