跳过导航,直接进入主要内容跳过导航,直接进入主要内容跳过导航,直接进入主要内容

硬件手册

1. 开发板

XIAO ESP32-S3 Sense — Seeed Studio 出品的超小型 ESP32-S3 开发板,板载摄像头接口和 TF 卡槽。

  • 尺寸:21 × 17.5 mm
  • USB Type-C 供电与烧录
  • 板载 OV2640 摄像头模组(可替换 OV3660)
  • 板载 TF 卡槽(Micro SD)
  • 1 个用户 LED(GPIO21,低电平有效)
  • 1 个 BOOT 按钮(GPIO0)

2. 芯片规格

参数 规格
芯片型号 ESP32-S3-WROOM-1-N8R8
CPU Xtensa 双核 LX7,最高 240 MHz
Flash 8 MB(内嵌)
PSRAM 8 MB Octal(内嵌)
WiFi 802.11 b/g/n,2.4 GHz
蓝牙 Bluetooth 5 (BLE)
USB USB OTG(支持 CDC + JTAG)
工作电压 3.3 V
工作温度 -40°C ~ 85°C

PSRAM 配置

本项目使用 Octal PSRAM 模式(8 线),在启动时初始化(CONFIG_SPIRAM_BOOT_INIT=y)。摄像头帧缓冲分配在 PSRAM,双缓冲模式(fb_count = 2),每帧大小取决于分辨率和 JPEG 质量。

  • 保留内部 RAM:16 KB(SPIRAM_MALLOC_ALWAYSINTERNAL)
  • 保留给 DMA/内设:32 KB(SPIRAM_MALLOC_RESERVE_INTERNAL)
  • 允许外部栈:是(SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY)

3. 引脚定义

摄像头接口(DVP)

功能 GPIO 说明
XCLK 10 主时钟输出(16 MHz)
SIOD (SDA) 40 SCCB 数据线(I²C)
SIOC (SCL) 39 SCCB 时钟线(I²C)
D0 18 数据位 0
D1 17 数据位 1
D2 16 数据位 2
D3 15 数据位 3
D4 14 数据位 4
D5 12 数据位 5
D6 11 数据位 6
D7 48 数据位 7
VSYNC 38 垂直同步
HREF 47 水平参考
PCLK 13 像素时钟
PWDN -1 未使用
RESET -1 未使用

麦克风(MEMS PDM)

引脚 GPIO 功能
DATA GPIO41 I2S PDM RX 数据
CLK GPIO42 I2S PDM 时钟
  • 类型:MEMS PDM(脉冲密度调制)数字麦克风
  • 接口:I2S PDM RX,8kHz/16-bit/单声道
  • 处理:硬件 PDM 转 PCM(DSR_16S,1.024 MHz PDM 时钟)→ DC 去除 → 频谱减法(256 点 FFT)→ 噪声门 → G.711 μ-law 编码

TF 卡接口(SDMMC)

功能 GPIO 说明
CLK 7 SD 时钟
CMD 10 SD 命令/响应(与摄像头 XCLK 共享)
D0 8 SD 数据线 0

其他

功能 GPIO 说明
状态 LED 21 低电平有效(Active-low)
BOOT 按钮 0 低电平有效,按住 5 秒恢复出厂

重要:GPIO10 同时用于摄像头 XCLK 和 SD 卡 CMD。通过使用 1-line SDMMC 模式(仅 CLK + CMD + D0),在摄像头和 SD 卡之间共享 GPIO10。4-line SDMMC 模式不可用于本硬件。


4. 摄像头

支持型号

型号 PID 最大分辨率 说明
OV2640 0x2642 2MP (UXGA) 默认配置,XIAO 板载
OV3660 0x3660 3MP (QXGA) 可替换模组

系统在初始化时通过 SCCB 读取传感器 PID 自动检测型号,无需手动配置。

分辨率配置

配置值 分辨率 像素
0 VGA 640 × 480
1 SVGA 800 × 600(默认)
2 XGA 1024 × 768

采集参数

参数 范围 默认 说明
FPS 1-30 — 帧率目标
JPEG 质量 1-63 — 数值越小质量越高
帧缓冲 3(固定) — 三缓冲,PSRAM 分配
抓取模式 CAMERA_GRAB_WHEN_EMPTY — 等待空闲缓冲,防止丢帧
XCLK 频率 16 MHz — 摄像头主时钟(所有传感器统一)

运行时传感器自动检测

固件支持运行时自动检测以下摄像头传感器(无需重新编译):

型号 分辨率 特性 说明
OV2640 2MP (UXGA) 片上 JPEG 默认配置,XIAO 板载
OV3660 3MP (QXGA) DSP 压缩 JPEG 可替换模组
OV5640 5MP (5MP) 高分辨率 仅非自动对焦版本

固件在初始化时通过 SCCB 读取传感器 PID 自动检测型号。只需更换摄像头模组并重启即可,无需烧录不同固件版本。

OV5640 AF 版本不支持

本项目不支持 OV5640 AF(自动对焦)版本。esp32-camera 的 Kconfig 只能编译一个 OV5640 驱动(ov5640.c 或 ov5640_af.c)。AF 版本需要在初始化时加载对焦固件到传感器 RAM,配置复杂度与项目"简洁一刀切"原则冲突。如需 AF 支持,请参考 esp32-camera 官方的 AF 固件加载示例。

统一 XCLK 配置

所有传感器统一使用 16MHz XCLK(一刀切策略)。这是 OV3660 的最优频率(驱动有专门代码路径),OV2640 和 OV5640 在此频率下也能稳定工作。代价是 OV2640 的最大帧率相比 20MHz 略降约 20%,对监控场景无实际影响。

日夜模式

对于使用红外摄像头模组(IR-cut 滤镜已移除)的用户,固件提供日夜模式切换,通过 Web 配置页面调整,无需重新编译:

模式 值 说明 使用场景
彩色 0 正常彩色输出 白天或有 IR-cut 滤镜的模组
黑白 1 灰度输出 红外模组避免偏色(IR-cut 移除后可见光+红外混合会导致粉/红/绿偏色)
自动 2 预留模式 当前等同彩色(未来版本可能基于时间或光敏自动切换)

切换通过 Web UI → 配置页面 → 日夜模式,即时生效。红外夜视需要外部 IR 光源(如 940nm LED),固件不控制 IR 补光硬件。

广角镜头说明

不同广角镜头(FOV)的畸变差异不做软件校正。监控场景下广角桶形畸变是预期行为(增大视野),ESP32-S3 无法实时做畸变校正。超广角(如 160°+)配合小尺寸传感器(如 OV3660 的 1/5")会导致边缘分辨率物理性下降,这是光学极限,非软件问题。

5. TF 卡

硬件要求

参数 要求
卡类型 Micro SD / SDHC / SDXC
文件系统 FAT32
速度等级 Class 10 或更高
接口模式 SDMMC 1-line
分配单元 64 KB
最大同时打开文件 8

存储结构

/sdcard/
├── recordings/              # 录像根目录
│   └── YYYY-MM/
│       └── DD/
│           ├── REC_YYYYMMDD_HHMMSS.avi
│           └── ...
└── config/                  # 配置覆盖目录
    ├── wifi.txt             # KEY=VALUE 格式
    └── nas.txt              # KEY=VALUE 格式

循环存储策略

  • 每段录像完成后检查剩余空间
  • 剩余 < 20%:自动删除最旧的录像文件
  • 持续删除直到剩余 ≥ 30%
  • 单次清理安全上限:100 个文件

6. LED 状态指示

状态 LED 连接在 GPIO21,低电平有效(输出 0 = 亮,输出 1 = 灭)。

状态 LED 表现 触发条件
LED_STARTING 常亮 系统启动中
LED_AP_MODE 慢闪(1 秒周期) WiFi AP 模式(等待配置)
LED_WIFI_CONNECTING 快闪(200ms 周期) WiFi STA 正在连接
LED_RUNNING 熄灭 正常运行中
LED_ERROR 双闪(闪两下,停 1 秒) 错误状态(SD 卡故障等)

双闪时序

ON 200ms → OFF 200ms → ON 200ms → OFF 1000ms → 循环

通过 FreeRTOS 软件定时器实现,定时器周期 200ms,使用状态机计数器控制双闪逻辑。


7. 电源

参数 规格
供电方式 USB Type-C
电压 5V
最小电流 1A(推荐)
工作电压 3.3V(板载 LDO)

功耗参考

模式 估算功耗
待机(WiFi 连接) ~100 mA
录像(SVGA 15fps) ~200 mA
录像 + 流媒体 + NAS 上传 ~300-400 mA
WiFi AP 模式 ~120 mA

注意:使用 USB 3.0 端口或独立 5V/1A 以上电源适配器供电,避免因 USB 端口供电不足导致不稳定。

可访问性增强功能已加载,支持焦点管理、键盘导航和屏幕阅读器
页面已加载完成,可访问性功能已启用