1. 产品描述
1.1 产品简介
ESP32-S3 AI CAM是一款基于ESP32-S3芯片设计的智能摄像头模组,专为视频图像处理和语音交互打造,适用于视频监控、边缘图像识别、语音对话等AI项目。ESP32-S3支持高性能神经网络运算与信号处理能力,赋予设备强大的图像识别和语音交互功能。
强大的AI处理能力,智能图像与语音识别
ESP32-S3 AI CAM内置ESP32-S3芯片,具备卓越的神经网络计算能力。它不仅可以在摄像头图像中进行智能识别,还能进行复杂的边缘计算任务。同时,麦克风和扬声器的集成使其支持语音识别、语音对话,能够实现远程指令控制、实时互动等多种AI功能,适用于物联网设备和智能监控应用。
广角红外摄像头,适应全天候监控需求
ESP32-S3 AI CAM的广角红外摄像头结合红外补光灯和光敏传感器,在弱光和完全黑暗的环境中依然能保持出色的图像清晰度。无论是白天还是夜晚,ESP32-S3 AI CAM都能确保监控画面的稳定性和清晰度,为安防和监控系统提供可靠支持。
语音交互与控制,实现智能自动化
ESP32-S3 AI CAM内置麦克风和扬声器,可实现语音识别与对话功能。在智能家居、物联网(IoT)设备中,这一功能可以帮助用户通过语音控制摄像头或其他设备,简化操作流程,增强智能化体验。
联网支持,扩展在线AI功能
除了本地AI处理能力,ESP32-S3 AI CAM可通过Wi-Fi接入互联网,通过云端或在线大模型扩展更多智能功能。通过Wi-Fi联网,该模组可以与云端AI平台进行对接,调用在线的大规模语言模型和视觉模型,实现更复杂的任务处理,如高级的图像分类、语音翻译、自然语言对话等功能。这使得ESP32-S3 AI CAM不仅限于本地计算,还能依托在线资源进行远程智能操作,显著提升其在物联网(IoT)设备中的应用潜力。
1.2 产品特性
- 多样的AI玩法
- 边缘图像识别(基于EdgeImpulse)
- 在线图像识别(openCV、yolo)
- 语音、图像在线大模型(ChatGPT)
- 具有广角夜视摄像头,红外补光,昼夜可用
- 板载MIC、功放,单板实现语音交互
- 提供多种AI模型,提供训练模型教程,快速上手
2. 技术规格
2.1 产品参数
基本参数
- 工作电压: 3.3V
- Type-C输入电压: 5V DC
- VIN输入电压:5-12V DC
- 工作温度:-10~60℃
- 模块尺寸:42*42mm
摄像头参数
- 传感器型号:OV3660
- 像素:200W
- 感光:可见光、940nm红外
- 可视角度:160°
- 焦距:0.95
- 光圈:2.0
- 畸变:<8%
硬件信息
- 处理器:Xtensa® 双核32位LX7微处理器
- 主频:240 MHz
- SRAM:512KB
- ROM:384KB
- Flash:16MB
- PSRAM:8MB
- RTC SRAM:16KB
- USB: USB 2.0 OTG全速接口
WIFI
- WIFI协议:IEEE 802.11b/g/n
- WIFI频宽: 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
- WIFI模式:Station 模式、SoftAP 模式、SoftAP+Station 模式和混杂模式
- WIFI频率:2.4GHz
- 帧聚合: TX/RX A-MPDU, TX/RX A-MSDU
蓝牙
- 蓝牙协议:Bluetooth 5、Bluetooth mesh
- 蓝牙频率:125 Kbps、500 Kbps、1 Mbps、2 Mbps
2.2 板载功能示意
- OV3660:160°广角红外摄像头
- IR:红外补光灯(GPIO47)
- MIC:I2S PDM麦克风
- LED:板载LED灯(GPIO3)
- ALS:LTR-308环境光传感器
- ESP32-S3:ESP32-S3R8芯片
- SD:SD卡槽
- Flash:16MB Flash
- VIN:5-12V DC输入
- HM6245:电源芯片
- Type-C:USB Type-C接口用于供电烧录代码
- Gravity
- +: 3.3-5V
- -:GND
- 44:GPIO44,ESP32-S3原生RX
- 43:GPIO43,ESP32-S3原生TX
- RST:复位按键
- BOOT:BOOT按键(GPIO0)
- SPK:MX1.25-2P喇叭接口
- MAX98357:I2S功放芯片
2.3 板载功能引脚定义
3. 首次使用
3.1 添加板卡
当您首次使用ESP32,您需要了解以下步骤
- 在Arduino IDE添加ESP32开发板(如何在Arduino IDE添加ESP32开发板?)
- 选择开发板以及串口
- 烧录程序
3.2 选择开发板
- 点击Tools->Board:,选择对应型号的开发板"ESP32S3 Dev Module"

- 在烧录代码前需设置开发板
- USB CDC On Boot:
- Enabled: 通过USB接口打印串口数据
- Disable: 通过TX、RX打印串口数据
- Partition Scheme: 磁盘分区方案,请根据开发板Flash选择合适的存储空间
- Port: 开发板端口(COM号正确即可,与后面芯片型号无关)
- USB CDC On Boot:

3.3 烧录代码
- 将代码复制到窗口内,点击"Upload"上传代码
int led = 3;
void setup() {
pinMode(led,OUTPUT);
}
void loop() {
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}

- 等待烧录完成,即可看见板载LED灯开始闪烁
- 若LED灯没有闪烁,请复位开发板
- 若无法烧录请查看常见问题

4. ESP32通用教程
FireBeetle 2 ESP32-S3基础教程
FireBeetle 2 ESP32-S3进阶教程
5. 功能示例
通过功能示例可以快速的验证开发板板载功能是否正常
5.1 获取环境光数据
通过该示例可获取环境光数据,并在串口打印(波特率:115200)
使用前请安装LTR308传感器库
#include <DFRobot_LTR308.h>
DFRobot_LTR308 light;
void setup(){
Serial.begin(115200);
//如果使用了摄像头,请将摄像头的初始化放在LTR308初始化之前,否则会出现读取数值为0的情况
while(!light.begin()){
Serial.println("Initialization failed!");
delay(1000);
}
Serial.println("Initialization successful!");
}
void loop(){
uint32_t data = light.getData();
Serial.print("Original Data: ");
Serial.println(data);
Serial.print("Lux Data: ");
Serial.println(light.getLux(data));
delay(500);
}
5.2 录音&播放
通过该示例可以实现录音、放音功能。烧录代码并复位开发板,LED灯点亮后开始录音5秒,LED灯熄灭后通过喇叭播放录音。
#include <Arduino.h>
#include <SPI.h>
#include "ESP_I2S.h"
#define SAMPLE_RATE (16000)
#define DATA_PIN (GPIO_NUM_39)
#define CLOCK_PIN (GPIO_NUM_38)
#define REC_TIME 5 //Recording time 5 seconds
void setup()
{
uint8_t *wav_buffer;
size_t wav_size;
I2SClass i2s;
I2SClass i2s1;
Serial.begin(115200);
pinMode(3, OUTPUT);
i2s.setPinsPdmRx(CLOCK_PIN, DATA_PIN);
if (!i2s.begin(I2S_MODE_PDM_RX, SAMPLE_RATE, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO)) {
Serial.println("Failed to initialize I2S PDM RX");
}
i2s1.setPins(45, 46, 42);
if (!i2s1.begin(I2S_MODE_STD, SAMPLE_RATE, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO)) {
Serial.println("MAX98357 initialization failed!");
}
Serial.println("start REC");
digitalWrite(3, HIGH);
wav_buffer = i2s.recordWAV(REC_TIME, &wav_size);
digitalWrite(3, LOW);
//Play the recording
i2s1.playWAV(wav_buffer, wav_size);
}
void loop()
{
}
5.3 CameraWebServer
烧录示例代码或bin文件,打开串口监视器(波特率115200),根据提示输入WiFi SSID和Password,即可连接WiFi。连接成功后通过浏览器访问串口监视器打印的IP地址即可监控后台,通过“Start Stream”按钮即可获取图像流。
6. 应用示例
6.1 基于电脑openCV实现物体轮廓识别
该示例主要演示了电脑端使用openCV实现物体轮廓识别。
步骤
- 给模块烧录"CameraWebServer"示例代码,查看模块IP地址
- 安装python环境(https://www.python.org/)(如果安装过,请看下一步)
- 安装python库
- 按下Win+R,输入cmd进入命令窗口
- 输入"pip install numpy" 安装numpy库
- 输入“pip install opencv-python” 安装opencv-python库
- 输入“pip install opencv-contrib-python” 安装opencv-contrib-python库
- 将openCV-demo.py中第5行的IP地址改为ESP32-S3的IP地址
- 打开python的IDLE,File->Open...,选择openCV-demo.py,在弹出的新窗口中按下F5,即可看到识别画面和识别结果
6.2 基于电脑yoloV5实现物体分类
该示例主要演示了电脑端使用yoloV5实现物体分类。
步骤
- 给模块烧录"CameraWebServer"示例代码,查看模块IP地址
- 安装python环境(https://www.python.org/)(如果安装过,请跳过)
- 安装yoloV5库
- 按下Win+R,输入cmd进入命令窗口
- 输入"pip install numpy" 安装numpy库
- 输入“pip install yolov5” 安装yolov5库
- 将yoloV5-demo.py中第8行的IP地址改为ESP32-S3的IP地址
- 打开python的IDLE,File->Open...,选择yoloV5-demo.py,在弹出的新窗口中按下F5,即可看到识别画面和识别结果
6.3 基于EdgeImpulse实现图像识别
该示例代码主要演示了,如何在模块上使用EdgeImpulse实现图像识别。
注:SDK版本不同可能会出现编译报错(演示demo SDK版本 3.0.1)
步骤
- 将训练完成的模型库文件解压到"arduino->libraies"中
- 替换"src\edge-impulse-sdk\tensorflow\lite\micro\kernels"中的"depthwise_conv.cpp"和"conv.cpp"文件
- 将edge_camera文件夹及其子文件移动到模型库文件的examples中
- 打开arduino IDE,选择edge_camera示例,将代码中的第一行改为模型库的.h文件,填入WiFi账号密码,然后编译烧录
- 打开串口监视器即可看到IP地址和识别结果,访问IP即可看到摄像头画面
6.4 自定义EdgeImpulse模型
通过该项目,你将学会如何通过EdgeImpulse训练自己的模型并部署到ESP32-S3 AI CAM模块上。
教程链接
6.5 接入HomeAssistant
基于该教程可以将ESP32-S3摄像头模组添加到HomeAssistant中,并看到监控画面
教程链接
6.6 接入小智
通过“flash_download_tool”烧录固件,即可实现接入小智AI大模型
- 小智固件 - 语音对话
- 使用方法:烧录固件,根据配网教程配网过后,即可进行对话交流
- 小智固件 - 图文问答
- 使用方法:烧录固件,根据配网教程配网过后,使用“画面中有什么”、“你看到了什么”等关键词,即可实现识别摄像头中的画面
- 小智配网教程
- 小智项目链接
6.7 接入OpenAI RTC(基于ESP-IDF)
通过这个示例代码,您可以与OpenAl进行实时对话。
注意
- 此代码在ESP-IDF下运行。
- 接入OpenAI需要特殊网络
https://github.com/DFRobot/openai-realtime-embedded-sdk
6.8 OpenAI图像问答
此示例演示了ESP32-S3 Al CAM与openAl的连接,用于语音和图像识别。在S烧录代码后,按住boot按钮并向模块提问,例如“你看到了什么?”?“这是什么植物?”?“他在干什么?”?该模块将音频和图像数据发送到opeiAl或识别,以语音的形式播放识别结果。
注意
- 接入OpenAI需要特殊网络
7. FLASH下载工具使用教程
https://wiki.dfrobot.com.cn/FLASH_Download_Tool_Usage_Tutorial
8. MicroPython教程
https://wiki.dfrobot.com.cn/ESP32_MicroPython_Usage_Tutorial
9. PIO教程
https://wiki.dfrobot.com.cn/ESP32_Platform_IO
10. ESP-IDF教程
11. 常见问题
- 无法将代码下载到开发板 / 找不到COM口 / COM口不断出现又消失 / 串口不断打印复位信息
- 请按住BOOT按键,然后点击RST,再下载代码即可