ESP32 Cam摄像头使用总结

最近买了一个ESP32 Cam,也就是ESP32带个摄像头。

由于是山寨货(便宜),不是安信可原版,所以遇到一些问题,这里列出来做个笔记。

首先是ESP32-S 开发板信息,通过Arduino打出来的:

09:27:55.540 -> mode:DIO, clock div:1
09:27:55.540 -> load:0x3fff0030,len:1344
09:27:55.540 -> load:0x40078000,len:13864
09:27:55.540 -> load:0x40080400,len:3608
09:27:55.540 -> entry 0x400805f0
09:27:56.101 -> ESP32芯片型号 = ESP32-D0WDQ5 版本 1
09:27:56.101 -> 核心 2
09:27:56.101 -> 芯片ID: d
09:27:56.101 -> 总堆大小 363932 
09:27:56.101 -> 可用堆大小 339180 
09:27:56.101 -> PsRAM大小 4192139 
09:27:56.101 -> PsRAM可用大小 4192139 
09:27:56.101 -> 时钟频率 240 
09:27:56.101 -> Flash大小 4194304 
09:27:56.135 -> Flash速度 80000000 
09:27:56.168 -> 当前固件大小 261264 
09:27:56.168 -> 可用固件大小 1310720

驱动依然是CH340。

用它做摄像头应用,主要有两类选择,一是使用MicroPython,二是使用Ardunio.

MicroPython版

问题比较多:

  1. Arduino下能进入MicroPython shell,然操作不便
  2. Thonny等MicroPython专用IDE进不了shell,原因是下载板的GND和IO0是一直接地的,唯一的好处就是自动下载,太坑了,需要单独用个USB转TTL的接口来接开发板,懒得弄了。
  3. 程序上传后能启动,但是网站访问500,不知道哪的问题,即使可能成功,Python的处理速度也决定了用它做不了什么。
  4. webrepl不能上传文件,这也在很大程度上限制了用它开发别的东西,毕竟上传太不方便了。可先安装micropython-urequests,再请求文件写入到开发板里

鉴于问题过多,决定不折腾MicroPython版了。

部署参考

ESP32 cam micropython:

  1. 固件下载
  2. 视频
  3. 博客
  4. upyCam源码

步骤

烧录MicroPython固件

固件从上面的Github上下载最新的,然后执行

esptool.py --port /dev/tty.wchusbserial14110 erase_flash
esptool.py --chip esp32 --port /dev/tty.wchusbserial14110 write_flash -z 0x1000 ~/Downloads/micropython_camera_feeeb5ea3_esp32_idf4_4.bin

烧录成功即可通过Arduino与MicroPython Shell交互(是不是感觉怪怪的。。。),Thonny不行,原因上面说过了。

依赖

  1. picoweb
  2. micropython-ulogging
  3. micropython-urequests

Arduino版

使用esp32-cam-webserver,重合名 myconfig.sample.hmyconfig.h,修改里面的essidpassword,编译上传后直接就可以启动了,所在局域网的80端口为web界面,81为stream.

默认的800*600的分辨率正好,往下不清晰,往上延迟较明显。

另外板载PCB天线信号干扰严重,有横纹,真要用,还得是外接天线的,最好买安信可的8M版本。

总结

可直接使用Arduino版,只作摄像功能用即可,至于其它功能,用其它MicroPython正常的板子吧,毕竟MicroPython用着方便些。

Leave a Comment

豫ICP备19001387号-1