ESP32-CAM搭建Arduino及简单使用

ESP32-CAM搭建Arduino及简单使用

准备

需要一个ESP32-CAM模块,我买的是这种,下面带了个下载模块的,接上USB就能用了,很方便,如果没有买下面那个那就得自行用USB-TTL了
在这里插入图片描述

配置环境

有了硬件,下面就是软件的事情了,Arduino IDE本身没有ESP32或ESP8266的开发板,所以需要自己去安装

方法一 用Arduino IDE进行安装

打开Arduino IDE,找到文件 → 首选项,然后把下面两个链接加上去

http://wechat.doit.am/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json

如图所示
在这里插入图片描述
然后找到:工具 → 开发板 → 开发板管理器,搜索esp32,这个时候就出现了esp32的板子了
在这里插入图片描述
安装速度比较慢,等待安装完毕即可

方法二 从github下载并安装

先到乐鑫的github仓库将所有文件打包下载
https://github.com/espressif/arduino-esp32

到自己的Arduino安装目录下,找到hardware文件夹,建立文件夹espressif,然后在里面再建立一个esp32文件夹
在这里插入图片描述
然后把刚刚github下载的文件解压到Arduino安装目录/hardware/espressif/esp32/
确保自己电脑上有python环境,运行get.exe即可
在这里插入图片描述
很慢,耐心等待

程序

到这里我们就有了ESP32的开发环境了,开始烧写代码

在 工具 → 开发板 可以看到有ESP32的相关板子了,用ESP32 Dev Module或者 ESP32 Wrover Module都可以
在这里插入图片描述
然后打开ESP32-CAM的例程
在这里插入图片描述
打开后,找到前面一堆#define,把默认的摄像头模块注释掉,解开#define CAMERA_MODEL_AI_THINKER的注释

//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM

然后找到ssid和password输入自己的Wifi名称和密码,就可以尝试编译上传了

const char* ssid = "xxxx";
const char* password = "xxxx";

如果上传过程中IDE出现这个报错
在这里插入图片描述

可以在IDE中把Partition Scheme换成Huge APP,就能够成功编译上传了
在这里插入图片描述
烧写成功后,打开串口监视器,波特率设置为115200,重启板子,可以看到板子的ip,浏览器输入ip就能够看到摄像头的图像了
在这里插入图片描述

ESP32-CAM的初步使用就完成了~

小改进

例程是让ESP32去连接Wifi来使用,如果希望ESP32以热点(AP)的形式来连接也是可以的
ESP32有三种工作模式:
1.连接现有Wifi,即STA模式
2.作为热点发射信号,即AP模式
3.STA、AP模式共存

更多有关wifi的配置可以参考这里,ESP32和ESP8266的配置方式基本相同

我选择的是第三种模式,在有wifi的时候连接wifi,没有wifi的时候也可以连接热点来使用
首先在前面设置连接wifi账号密码下加了个AP的名称和密码

const char* ssid = "xxxx";
const char* password = "xxxx";

const char* AP_ssid = "ESP32_AP";
const char* AP_password = "12345678";

然后修改例程代码,然后注释掉原来的
连接wifi尝试了六次,还是连不上就放弃了,这个时候就只能用AP进行访问

  WiFi.mode(WIFI_AP_STA);
  WiFi.softAP(AP_ssid, AP_password);
  Serial.print("AP IP = " + WiFi.softAPIP()); 
  WiFi.begin(ssid, password);
  int i = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      if(i == 6){
        Serial.println("\nWiFi connect failed,break...");
        break;
      }
      i++;
  }
//    WiFi.begin(ssid, password);
//    while (WiFi.status() != WL_CONNECTED) {
//      delay(500);
//      Serial.print(".");
//    }
//    Serial.println("");
//    Serial.println("WiFi connected");

AP模式下,客户端连上ESP32后,默认的地址是192.168.4.1,浏览器输入这个地址就能够访问了

要注意下,ESP32芯片右上角有个天线接口,旁边有个小贴片电阻,如果要使用外接天线,要把那个贴片电阻朝着天线接口焊才能使用外接天线