目标:让浏览器里能蹲到一个 30 fps 的小监控,全程 30 min 搞定,踩坑算我的。


1. 驱动:CH340 一路畅通

插上板子没反应?八成差驱动。
官网直接撸 CH343SER.exe,装完在“设备管理器”看到 COM× 就算过关。

小提示:如果后面上传一直卡“Connecting...”,先别怀疑线,把驱动重装一遍再说,CH340 就这点脾气。


2. Arduino IDE:两步搞定环境

  1. 装 IDE:
    官网 arduino.cc 下个最新版,一路 Next。
  2. 装 ESP32 全家桶:
    • 打开 IDE → 文件 → 首选项 → 附加开发板管理器网址,粘进去
      https://dl.espressif.com/dl/package_esp32_index.json
    • 工具 → 开发板 → 开发板管理器,搜 “esp32” → 安装(体积略大,喝杯奶茶)。

安装完重启 IDE,开发板选 “ESP32 Worver Module”,其他默认即可。


3. 让摄像头“上网”

3.1 拿官方例程

文件 → 示例 → ESP32 → Camera → CameraWebServer,点一下就打开。

3.2 改三行代码

const char* ssid     = "你家WiFi";
const char* password = "WiFi密码";
#define CAMERA_MODEL_AI_THINKER   // 把别的型号注释掉,只留这一行

3.3 进入下载模式并上传

  • 接线:
    USB-TTL ESP32-CAM
    5V → 5V
    GND → GND
    TXD → U0R (RX)
    RXD → U0T (TX)
    IO0 → GND (下载时必须拉低

  • 步骤:

    1. 按住 RESET → 2. 点 IDE 上传 → 3. 看到 “Connecting...” 松 RESET → 4. 进度条跑完自动重启。

上传成功马上断开 IO0 与 GND,再按一次 RESET,板子就会连 WiFi。


4. 看视频去

工具 → 串口监视器,波特率 115200,等个几秒出现:

Camera Ready! Use 'http://192.168.x.x' to connect

把 IP 复制到浏览器,点 “Start Stream”,画面秒出。


5. 帧率不够?三行参数秒提 FPS

回到 CameraWebServer.ino,搜到下面几个值,照着改:

config.frame_size  = FRAMESIZE_SVGA;     // 800×600 够用
config.jpeg_quality = 12;                // 画质降一点,数据量小
config.grab_mode    = CAMERA_GRAB_LATEST;// 永远拿最新帧,延迟最低

重新上传,肉眼可见地流畅许多。


6. 容易翻车的点

  • 供电:电脑 USB 口经常喂不饱,外接 5 V 1 A 以上电源最稳。
  • 下载失败:IO0 没接地、接触不良、线太长,按 RESET 的时机不对,都可能导致 “No serial data received”。
  • Brownout 报错:画面一卡一卡还重启,就是电压掉坑,换粗线 + 换 USB3.0 口,或直接上独立 5 V。

7. 完工!

一块不到 30 块的板子,加几行代码就能在局域网里“直播”,帧率 20-30 fps 毫无压力。
想再玩花一点,把 MJPEG 流嵌到 Node-RED、HomeAssistant,甚至加上人脸识别,都是后话了。

今天先这样,去喝杯咖啡,欣赏一下自己的小监控吧。