搭载 ESP32-S3R8 高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
支持 2.4GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
内置 512KB 的 SRAM 和 384KB ROM,叠封 8MB PSRAM 和外接 16MB Flash
采用 Type-C 接口,提高了用户的使用便捷性和设备的兼容性
板载 24pin DVP 摄像头接口,兼容多款摄像头
板载 18pin 屏幕接口,支持 SPI 以及 QSPI
配备双麦克风阵列,可实现降噪和回声消除等音频算法,适合精准的语音识别和近场 / 远场语音唤醒应用
板载 PWR、BOOT 两个可自定义功能的侧边按钮,方便使用按钮进行自定义功能开发
板载 3.7V GH1.25 锂电池充放电接口
摄像头参数对比
| 型号 | 最大分辨率 | 输出接口 | 输出格式 | Lens Size | 焦距 | 光圈 | 视场角 |
|---|---|---|---|---|---|---|---|
| OV5640 摄像头 | 2592×1944 | DVP | RGB565 YUV YCbCr422 | 1/4inch | 4.1mm | 2.8 | D:68° H:55° V:42° |
| OV3660 摄像头 | 2048×1536 | DVP | 8/10-bit Raw RGB data JPEG compression YUV/YCbCr422 RGB565 | - | 3.2mm | 2.4 | D:68° |
| GC2145 摄像头 | 1616×1232 | DVP | RGB565 YCbCr422 8bit Raw RGB data | 1/5inch | 2.38mm | 2.4 | D:68° H:60° V:46.8° |
| GC0308 摄像头 | 648×488 | DVP | Grayscale YCbCr422 RGB565 | 1/6.5inch | 2.5mm | 2.4 | D:58° H:46° V:35° |



为了让用户能够快速了解产品的各个功能,我们提供了一系列的测试例程,方便客户了解各个接口的使用。除了 ESP32-S3-CAM-OVxxxx 主机和配套的线材之外,为了能够运行例程,需要准备的器件如下:
CH32V003 芯片作为扩展 IO,用于复位、关闭/打开背光等控制。若出现 无法识别端口 的情况,请进入 Boot 模式:
下载完成后,重新上电运行程序。
示例程序位于 示例程序包 的 Firmware 目录中。
选择对应屏幕的固件进行烧录,例如 ESP32-S3-CAM-OVxxxx-Factory-LCD_1_83.bin 支持 1.83 的固件




拥有 WIFI 扫描和配网功能,点击 WIFI 界面 wifi config可以扫描二维码进行配网操作
可以调节显示亮度以及音量大小
显示电池 ADC 电压
产品关于界面,可以查看 MAC 地址

支持 (OV5640、OV3660、GC2145、GC0308) 更多摄像头正在适配中
点击 APP 图标,屏幕立即进行图像推流,任意点击屏幕位置退出图像显示,同时可以查看摄像头信息,以及水平镜像和垂直翻转操作

模拟音乐播放器的界面,此 APP 需要插入内存卡,并在 music 目录下放入 MP3 文件才能正常运行

此例程可以进行双麦克风收音测试,点击开始按钮即开始录音,再次点击停止录音,然后会自动播放录制的音频
录制的音频文件保存在内存卡根目录下

此示例展示 squareline 制作的 LVGL demo

点击 APP 即可进入小智 AI 应用,跟小智官网适配的版本一致,操作方式相同,长按 boot 按键可以回到 brookesia 界面

请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。
要运行示例,需要安装对应的库。
可从 该处 下载 ESP32-S3-CAM-OVxxxx 开发板的示例程序包。包内的 arduino\libraries 目录已包含本教程所需的全部库文件。
| 库或文件名称 | 说明 | 版本 | 安装方式 |
|---|---|---|---|
| es7210 | 音频编码器驱动 | —— | 手动安装 |
| es8311 | 音频解码器驱动 | —— | 手动安装 |
| lvgl | lvgl 显示显示框架 | v8.4.0 | 通过库管理器或手动安装 |
| ESP32-audioI2S-master | 音频播放组件 | v3.4.4 | 通过库管理器或手动安装 |
LVGL 及其驱动库的版本之间存在较强的依赖关系。例如,为 LVGL v8 编写的驱动可能不兼容 LVGL v9。为确保示例能够稳定复现,推荐使用上表列出的特定版本。混合使用不同版本的库可能导致编译失败或运行时异常。
安装步骤:
进入已下载的 示例程序包。
将其 Arduino\libraries 目录下的所有文件夹(ESP32-audioI2S-master、lvgl 等)复制到 Arduino 的库文件夹中。
Arduino 库文件夹的路径通常是:c:\Users\<用户名>\Documents\Arduino\libraries。
也可以在 Arduino IDE 中通过 文件 > 首选项,查看“项目文件夹位置”来定位。库文件夹就是此路径下的 libraries 文件夹。
其他安装方式请参考:Arduino 库管理教程。
ESP32-S3-CAM-OVxxxx 所需开发板安装说明
| 板名称 | 板安装要求 | 版本号要求 |
|---|---|---|
| ESP32 by Espressif Systems | “离线”安装/“在线”安装 | ≥3.2.0 |
Arduino 示例程序位于 示例程序包 的 Arduino/examples 目录中。
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_lvgl_example | 展示了基本的图形库功能,也可以用于测试显示屏的基础性能 | lvgl |
| 02_CameraWebServer | 网页摄像头测试,通过连接 WIFI,创建 HTTP 服务器,获取摄像头图像 | —— |
| 03_audio_out_no_tf | 音频播放测试 | es8311 |
| 04_SDMMC_Test | TF 卡挂载以及读写文件测试 | LVGL,SensorLib |
| 05_audio_out_tf | LVGL 演示 | LVGL,Arduino_DriveBus ,Adafruit_XCA9554 |
| 06_esp_sr | ES7210 驱动示例,拾取人声检测 | —— |

初始化 I2C 以及背光:
DEV_I2C_Init();
IO_EXTENSION_Init();
IO_EXTENSION_Output(IO_EXTENSION_IO_6, 1);
IO_EXTENSION_Pwm_Output(100);
初始化显示屏、触摸、以及 LVGL
lcd_driver_init();
touch_driver_init();
lvgl_driver_init();
加载 LVGL demo
lvgl_port_lock(0);
lv_demo_widgets();
// lv_demo_benchmark();
// lv_demo_keypad_encoder();
// lv_demo_music();
// lv_demo_stress();
lvgl_port_unlock();

初始化摄像头
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
esp_camera_deinit();
Serial.printf("Camera init failed with error 0x%x", err);
config.frame_size = FRAMESIZE_QVGA;
config.pixel_format = PIXFORMAT_RGB565;
esp_camera_init(&config);
}
填写 ssid 以及 password 连接 WIFI
WiFi.begin(ssid, password);
开启 HTTP 服务器
startCameraServer();
上电等待 WIFI 连接后,打开串口监视器可以看到 IP 地址,在浏览器打开

初始化 I2C 控制器和外部拓展 IO
DEV_I2C_Init();
IO_EXTENSION_Init();
IO_EXTENSION_Output(IO_EXTENSION_IO_6, 1);
初始化 ES8311
es8311_codec_init();
初始化 I2S 并使能功放 PA 引脚
setupI2S();
IO_EXTENSION_Output(IO_EXTENSION_IO_4, 1);
在 loop 循环中不断写通过 I2S 向 ES8311 写数据
void loop() {
i2s.write((uint8_t *)audio_data, AUDIO_SAMPLES * 2);
}
设置 SDIO 接口引脚,并挂载文件系统
if(! SD_MMC.setPins(clk, cmd, d0)){
Serial.println("Pin change failed!");
return;
}
if (!SD_MMC.begin("/sdcard", true)) {
Serial.println("Card Mount Failed");
return;
}
读写文件测试
listDir(SD_MMC, "/", 0);
createDir(SD_MMC, "/mydir");
listDir(SD_MMC, "/", 0);
removeDir(SD_MMC, "/mydir");
listDir(SD_MMC, "/", 2);
writeFile(SD_MMC, "/hello.txt", "Hello ");
appendFile(SD_MMC, "/hello.txt", "World!\n");
readFile(SD_MMC, "/hello.txt");
deleteFile(SD_MMC, "/foo.txt");
renameFile(SD_MMC, "/hello.txt", "/foo.txt");
readFile(SD_MMC, "/foo.txt");
testFileIO(SD_MMC, "/test.txt");
Serial.printf("Total space: %lluMB\n", SD_MMC.totalBytes() / (1024 * 1024));
Serial.printf("Used space: %lluMB\n", SD_MMC.usedBytes() / (1024 * 1024));

初始化 I2S 以及音频解码库,并设置播放路径
audio.setPinout(I2S_BCK_PIN, I2S_LRCK_PIN, I2S_DOUT_PIN,I2S_MCLK_PIN);
audio.connecttoFS(SD_MMC, "ff-16b-1c-44100hz.mp3");
-烧录程序自动播放 MP3 音乐
初始化 I2S 以及 ES7210 音频编码器
Wire.begin(I2C_PIN_SDA, I2C_PIN_SCL);
es7210_init();
i2s.setPins(I2S_PIN_BCK, I2S_PIN_WS, I2S_PIN_DOUT, I2S_PIN_DIN, I2S_PIN_MCK);
i2s.setTimeout(1000);
i2s.begin(I2S_MODE_STD, 16000, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO);
注册语音唤醒以及语音识别回调事件,并开启 ESP-SR
ESP_SR.onEvent(onSrEvent);
ESP_SR.begin(i2s, sr_commands, sizeof(sr_commands) / sizeof(sr_cmd_t), SR_CHANNELS_STEREO, SR_MODE_WAKEWORD);

对于 ESP32-S3-CAM-OVxxxx 开发板,需要使用 ESP-IDF V5.5.1 以上版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。

请耐心等待两个文件下载完成。
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。

接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。

当看到如下界面时,表示 ESP-IDF 已安装成功。

建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。

下载并安装 Visual Studio Code。
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
在 VS Code 中,点击侧边活动栏中的 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。
| 示例程序 | 基础例程说明 |
|---|---|
| 01_simple_video_server | 在局域网络上使用不同端口创建多个 HTTP 服务器,通过网页浏览器访问,提供视频流功能 |
| 02_esp_sr | 通过 ESP-SR 组件演示语音识别及语音唤醒功能 |
| 03_audio_play | 此示例扫描 TF 卡,并播放 MP3 |
| 04_dvp_camera_display | 此示例展示摄像头画面推流到 LCD 屏幕并显示 |
| 05_lvgl_brookesia | 通过 brookesia 组件展示 LVGL APP 风格 UI |
| 06_usb_host_uvc | 模拟 UVC 设备,演示 USB 摄像头功能 |
example_connect():初始化 WIFI 连接start_cam_web_server():初始化 http 服务器和初始化摄像头

Speech_Init():初始化麦克风以及创建识别任务bsp_audio_codec_microphone_init()返回麦克风控制句柄Speech_register_callback():注册识别事件回调函数
bsp_io_expander_init();():初始化外部扩展 IObsp_sdcard_mount():挂载 TF 卡Search_Music():搜索并保存 TF 卡内的 MP3 文件路径Audio_Play_Init():初始化音频播放器Volume_Adjustment():设置音量大小Audio_Play_Music():播放 MP3
bsp_display_start():BSP 初始化显示相关资源bsp_display_backlight_on():打开背光new ESP_Brookesia_Phone(disp):初始化 Brookesia 组件new PhoneCameraConf(1,0);:安装摄像头 APP![]() ![]() ![]() ![]() |
|---|
bsp_display_start():BSP 初始化显示相关资源-展示效果为 2inch 屏幕


uvc_device_config()配置 UVC 设备相关接口函数uvc_device_init():开始初始化 UVC 设备
开发板设计文件
ESP32-S3 芯片官方手册
数据手册
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
