外观
摄像头与视觉
ESP32 搭配 OV2640 等摄像头模组,就能做出几十元的联网摄像头。画质和性能远不能和专业 IP 摄像头比,但可定制、可嵌入,适合做门铃、宠物观察、延时摄影和读表。
这是什么玩法
常见方向:
- 串流和抓拍:网页里看实时画面,或定时拍照上传。
- 延时摄影:每隔几分钟拍一张,保存到 SD 卡或服务器。
- 门铃和监控:配合 PIR 或雷达触发拍照,推送到手机。
- 边缘 AI:在设备上做人脸检测、物体识别、数字识别。
- 表计读数:给水表、电表、燃气表拍照,识别数字写入 HA。
典型硬件
| 板子 | 说明 |
|---|---|
| ESP32-CAM | 安信可出品,经典款,OV2640,带 SD 卡槽,通常没有 USB 转串口,需要外接下载器 |
| XIAO ESP32S3 Sense | 拇指大小,带摄像头扩展板和麦克风,S3 的 PSRAM 更大 |
| ESP32-S3 系列带摄像头开发板 | 厂商很多,注意摄像头排线接口和引脚定义 |
| ESP32-P4 | 带 MIPI-CSI 接口,可以接更高分辨率的摄像头,适合做更强的视觉应用,官方开发板见 ESP32-P4 Function EV Board |
ESP32-P4 本身不含 Wi-Fi 和蓝牙,通常需要与其他芯片配合,请以官方规格书为准。
软件与项目
- ESPHome:
esp32_camera组件,几行配置即可把画面接入 HA。 - 乐鑫官方 esp32-camera 驱动库,ESP-IDF 与 Arduino 均可使用,见 ESP-IDF 和 Arduino-ESP32。
- ESP-WHO:乐鑫的人脸检测和识别框架,基于 ESP-DL,见 乐鑫官方方案。
- AI-on-the-edge-device:jomjol 开发,用 ESP32-CAM 读取水表、电表等表盘数字,结果可以通过 MQTT 或 HA 使用。
- 自带 Arduino 示例 CameraWebServer,作为最简单的入门例程。
入门路径
- 买一块带下载底座的 ESP32-CAM 套件,或者直接买带 USB 的 XIAO ESP32S3 Sense。
- 在 Arduino 里打开 CameraWebServer 示例,改好 Wi-Fi 与摄像头型号,上传。
- 浏览器打开串口显示的 IP,调分辨率和画质。
- 用 ESPHome 接入 HA,在仪表盘里添加摄像头卡片。
- 再加上触发逻辑,例如 PIR 触发后拍照推送。
进阶方向
- 延时摄影:深度睡眠加定时唤醒,每次拍一张后上传,电池可以持续较长时间。
- 抄表:固定光线和角度,用补光 LED,并先拍一批样张训练或配置识别区域。
- 人脸检测:用于计数或打开屏幕,而不是门禁;识别精度和防欺骗能力有限。
- 低延迟画面:Wi-Fi 串流的分辨率和帧率受限,想要流畅 1080p 以上画面,应使用专业 IP 摄像头。
- 云台和追踪:配合舵机,见 机器人。
注意事项
隐私与网络暴露
影响范围:摄像头画面属于高度敏感数据。串流端口、默认无密码的网页服务一旦暴露到公网,可能被陌生人观看;拍摄他人也涉及法律和伦理问题。
前置条件:
- 只在你拥有或获得许可的场所使用,不要对着邻居、公共厕所、更衣室等场景。
- 示例中的 CameraWebServer 默认没有认证,不要放到公网;远程查看请走 VPN 或有认证的反向代理。
- 如果在家中有家人、访客、保姆,告知并留意当地法规。
回退:断开电源,重新刷固件,修改 Wi-Fi 密码;敏感画面泄露后应清理存储并更换相关凭据。
- 发热:ESP32-CAM 持续串流会明显发热,影响稳定性,可降低帧率或加散热片。
- 供电:摄像头模组峰值电流较高,USB 供电不稳会导致复位,常见表现是图像出现噪点或重启。
- ESP32-CAM 烧录时 GPIO0 要接地进入下载模式,上传完成后需断开重启。
- 画质受传感器和镜头所限,夜间画面差,红外补光需要配套滤光片的镜头。