使用ESP32-CAM开发版和Tasmota搭建网络摄像头

2025-01-01#Tasmota#ESP32#IoT

ESP32-CAM摄像头开发板是安信可(Ai-Thinker)发布的小尺寸的摄像头模组,而 Tasmota 的 ESP32 WebCam 固件对其进行了适配。结合二者,可以搭建一个简单的网络摄像头,通过浏览器访问。

ESP32-CAM 开发板 🔗

安信可科技官网的《ESP32-CAM摄像头开发板》 页面介绍了开发板。下图来自官网(注意这个图片中不包含摄像头模块)。这个开发板并不像 NodeMCU 那样提供 MicroUSB 接口。因此需要使用 USB 转TTL模块进行烧录。

ESP32-CAM开发板-来自官网

目前在安信可的天猫店中,已经搜不到这款开发板了(也许有了新品?)。但是在其他店铺中,还可以购买。实际上,市面上有多个厂商的 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

目前的 FTDI 模块大部分都是 Mini USB 口,因此还需要一条 Mini USB 的数据线。

搭建步骤 🔗

接线 🔗

FTDI 模块支持输出为 3.3V 和 5V。参考模块上的图示,跳线帽短接合适的针脚,确保选择的是 5V 输出。然后,使用杜邦线连接 FTDI 模块和 ESP32-CAM 模块,如下图所示(图片来源 https://randomnerdtutorials.com/program-upload-code-esp32-cam/ ):

Wiring

烧录固件 🔗

确保接线无误后,使用数据线连接 FTDI 模块和电脑 USB接口。然后打开 Tasmota 的 WebInstaller,选择“Tasmota32 WebCam (english)”。然后根据提示烧录。烧录完成后,WebInstaller 又会弹出烧录的窗口。这是因为此时短接了 GNDIO0,开发板处于烧录模式(Programming Mode)。此时不要担心,也不要再次烧录。

配置 🔗

断开 GNDIO0 的连线,然后重置开发板(也许可以直接按开发板上 RST 按钮,但我直接拔下了 USB数据线,又插到电脑上)。开发板重启后,再次选择 “Tasmota32 WebCam。Tasmota (english)”(这一步似乎很重要),然后点击 Connect,页面上就会弹出如下选择框:

ESP32-WebCam-Select

点击 CHANGE WI-FI,设置无线网络。设置好之后,再点击 VISIT DEVICE,就会打开 Tasmota 的 WebUI。在设置好了 Wifi 之后,开发板只需要 5V 供电即可。除了 5V 和 GND,其他的连线就可以断开了。

此时就会看到摄像头拍摄的画面。且慢,ESP32-CAM还自带了一个 LED 灯珠,可作为补光灯。点击 Configuration,再点击 Module,然后将 IO GPIO4 设置为 Relay (继电器)。然后点击 Save 进行保存。此时 Tasmota 会保存并重启,烧等几秒,再次进入 WebUI 首页时,就会开到一个 Toggle 按钮。点击这个按钮,就会打开和关闭 LED 灯。如下图所示:

ESP32-WebCam

参考资料 🔗