准备
需要一个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芯片右上角有个天线接口,旁边有个小贴片电阻,如果要使用外接天线,要把那个贴片电阻朝着天线接口焊才能使用外接天线