最近买了一个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版
问题比较多:
- Arduino下能进入MicroPython shell,然操作不便
- Thonny等MicroPython专用IDE进不了shell,原因是下载板的GND和IO0是一直接地的,唯一的好处就是自动下载,太坑了,需要单独用个USB转TTL的接口来接开发板,懒得弄了。
- 程序上传后能启动,但是网站访问500,不知道哪的问题,即使可能成功,Python的处理速度也决定了用它做不了什么。
- webrepl不能上传文件,这也在很大程度上限制了用它开发别的东西,毕竟上传太不方便了。
可先安装micropython-urequests,再请求文件写入到开发板里
鉴于问题过多,决定不折腾MicroPython版了。
部署参考
ESP32 cam micropython:
步骤
烧录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不行,原因上面说过了。
依赖
- picoweb
- micropython-ulogging
- micropython-urequests
Arduino版
使用esp32-cam-webserver,重合名 myconfig.sample.h
为myconfig.h
,修改里面的essid
和password
,编译上传后直接就可以启动了,所在局域网的80端口为web界面,81为stream.
默认的800*600的分辨率正好,往下不清晰,往上延迟较明显。
另外板载PCB天线信号干扰严重,有横纹,真要用,还得是外接天线的,最好买安信可的8M版本。
总结
可直接使用Arduino版,只作摄像功能用即可,至于其它功能,用其它MicroPython正常的板子吧,毕竟MicroPython用着方便些。