使用ESP32-CAM开发版和Tasmota搭建网络摄像头
ESP32-CAM摄像头开发板是安信可(Ai-Thinker)发布的小尺寸的摄像头模组,而 Tasmota 的 ESP32 WebCam 固件对其进行了适配。结合二者,可以搭建一个简单的网络摄像头,通过浏览器访问。
ESP32-CAM 开发板 🔗
安信可科技官网的《ESP32-CAM摄像头开发板》 页面介绍了开发板。下图来自官网(注意这个图片中不包含摄像头模块)。这个开发板并不像 NodeMCU 那样提供 MicroUSB 接口。因此需要使用 USB 转TTL模块进行烧录。
目前在安信可的天猫店中,已经搜不到这款开发板了(也许有了新品?)。但是在其他店铺中,还可以购买。实际上,市面上有多个厂商的 ESP32-CAM 开发板。安信可的做工最好,印刷清晰,应该也是用料扎实,性能最稳定的,因此也被成为“原装正品”。开发板上的ESP32芯片上,印有安信可的LOGO。另外,还有一些“不知名“的厂商,也制造了这款开发板,做工粗糙,字样模糊甚至无法识别,价格略低,但兼容性可能会差一些。
我的亲身经历:我在2020年购买过一款非安信可的开发板,无法在 Arduino 中刷入 CameraWebServer 的示例代码(也可能是刷入之后,无法使用)。因此如果想少一些“惊喜”,那么最好使用安信可的开发板;而我现在手边的这个开发板,针脚的文字标识非常模糊,完全看不清楚,我只好在网上找图片来仔细确认针脚。
Tasmota32 WebCam 固件 🔗
Tasmota 为 ESP32-CAM 开发板提供了单独的固件:Tasmota32 WebCam。Tasmota 的 《Ai-Thinker Camera (ESP32-CAM)》 页面介绍了烧录方法。如果使用 WebInstaller,那么选择 “Tasmota32 WebCam。Tasmota (english)” 即可。注意这个固件没有中文版。
物料准备 🔗
- ESP32-CAM 开发板和摄像头
- FTDI USB 转 TTL 模块
- Mini USB 口数据线
- 杜邦线若干
注意:由于 ESP32-CAM 开发板本身不自带 USB 转 TTL 模块。因此需要FTDI 模块模块进行烧录。在某宝上,其价格大概在 5元到7元 左右。我购买的模块如下所示,6个针脚和旁边的跳线距离很近,遮住了针脚的部分文字标识。因此,尽管 FTDI 模块很便宜,但是设计和做工还是有差异的,购买的时候多加注意。
目前的 FTDI 模块大部分都是 Mini USB 口,因此还需要一条 Mini USB 的数据线。
搭建步骤 🔗
接线 🔗
FTDI 模块支持输出为 3.3V 和 5V。参考模块上的图示,跳线帽短接合适的针脚,确保选择的是 5V 输出。然后,使用杜邦线连接 FTDI 模块和 ESP32-CAM 模块,如下图所示(图片来源 https://randomnerdtutorials.com/program-upload-code-esp32-cam/ ):
烧录固件 🔗
确保接线无误后,使用数据线连接 FTDI 模块和电脑 USB接口。然后打开 Tasmota 的 WebInstaller,选择“Tasmota32 WebCam (english)”。然后根据提示烧录。烧录完成后,WebInstaller 又会弹出烧录的窗口。这是因为此时短接了 GND
和 IO0
,开发板处于烧录模式(Programming Mode)。此时不要担心,也不要再次烧录。
配置 🔗
断开 GND
和 IO0
的连线,然后重置开发板(也许可以直接按开发板上 RST 按钮,但我直接拔下了 USB数据线,又插到电脑上)。开发板重启后,再次选择 “Tasmota32 WebCam。Tasmota (english)”(这一步似乎很重要),然后点击 Connect,页面上就会弹出如下选择框:
点击 CHANGE WI-FI,设置无线网络。设置好之后,再点击 VISIT DEVICE,就会打开 Tasmota 的 WebUI。在设置好了 Wifi 之后,开发板只需要 5V 供电即可。除了 5V 和 GND,其他的连线就可以断开了。
此时就会看到摄像头拍摄的画面。且慢,ESP32-CAM还自带了一个 LED 灯珠,可作为补光灯。点击 Configuration
,再点击 Module
,然后将 IO GPIO4
设置为 Relay
(继电器)。然后点击 Save
进行保存。此时 Tasmota 会保存并重启,烧等几秒,再次进入 WebUI 首页时,就会开到一个 Toggle 按钮。点击这个按钮,就会打开和关闭 LED 灯。如下图所示: