这篇文章是ESP32-CAM板的一个快速学习指南。
我们将在这篇文章中详细讲述如何在5分钟之内设置视频流web做事器用于人面识别和侦测。

(把稳:在这篇文章中,我们利用了arduino-esp32的库,不讲解如何修正这些库)

视频教程

视频地址

用Arduino IDE开拓ESP32CAM的视频播放和人面识别功能

须要哪些硬件

要学习这篇教程,你须要准备下面的硬件:

1.带OV2640摄像头的ESP32-CAM开拓板

2.FTDI 编码器

3.母对母杜邦线

ESP32-CAM简介

ESP32-CAM是一个基于ESP32-S芯片的大略小巧的摄像头模块,代价大约10美元,(淘宝价格在40多元,我买成26元)。

搭载OV2640摄像头,和几个GPIOs,用于连接外网设备。

其余它还有mrcroSD卡接口,能够用于存储摄像头拍摄的图像,或者存储从做事器传输过来的文件。

ESP32-CAM没有USB连接器,因此你须要一个FTDI编码器用于上传代码,紧张通过U0R和U0T引脚。

功能

以下是ESP32-CAM的一些功能:

最小的802.11b/g/n Wi-Fi BT SoC模块

低功耗32位CPU,也可为运用场置器做事

最高160MHz时钟速率,总打算能力高达600 DMIPS

内置520 KB SRAM,外部4MPRAM

支持UART/SPI/I2C/PWM/ADC/DAC

支持OV2640和OV7670摄像头,内置闪光灯

支持图像WiFI上传

支持TF卡

支持多种就寝模式

嵌入式Lwip和FreeRTOS

支持STA/AP/STA+AP操作模式

支持智能配置/AirKiss技能

支持串行端口本地和远程固件升级(FOTA)

ESP32-CAM引脚

下图展示了ESP32-CAM的引脚(AI-Thinker版本的)

有3个GND引脚和2个电源引脚:一个3.3v和一个5v的。

GPIO1和GPIO3是串口引脚,你须要通过这些引脚上传代码到你的开拓板上。
其余GPIO0也是非常主要的,常日是通过它来决定ESP32是否处于烧录模式。
当GPIO0连接到GND的时候,ESP32处于烧录模式。

以下插针内部连接到microSD读卡器:

GPIO 14: CLK

GPIO 15: CMD

GPIO 2: Data 0

GPIO 4: Data 1 (also connected to the on-board LED)

GPIO 12: Data 2

GPIO 13: Data 3

视频流做事器

接下来我们将在ESP32-CAM上建立一个视频流web做事器,当然你能通过本地网络访问这个做事器。

(把稳事变:请先确保你的Arduino IDE更新到最先的ESP32附加组件)

1.安装ESP32附加组件

在本篇教程中,你将利用Arduino IDE来开拓ESP32-CAM开拓板。
因此,你将不得不在Arduino IDE中安装好ESP32的附加组件。
关于ESP32在Arduino IDE中的配置,我们在前面的教程中已经说过,大家可以找找。

2.CameraWebServer例子代码

在Arduino IDE中,以此打开File->Examples->ESP32->Camera并且打开CameraWebServer的例子。

下面的代码将被加载进来。

在烧录代码之前,你须要配置你当前利用的wifi的凭据,像下面这样配置:

const char ssid = "REPLACE_WITH_YOUR_SSID";

const char password = "REPLACE_WITH_YOUR_PASSWORD";

然后,确定你选择了精确的摄像头模块,在这篇教程中,我们利用了AI-THINKER的开拓板。

因此,注释所有其他模型并取消注释此模型:

// Select camera model

//#define CAMERA_MODEL_WROVER_KIT

//#define CAMERA_MODEL_ESP_EYE

//#define CAMERA_MODEL_M5STACK_PSRAM

//#define CAMERA_MODEL_M5STACK_WIDE

#define CAMERA_MODEL_AI_THINKER

如果这些都不符合您正在利用的相机,则须要在camera_pins.h选项卡中添加特定板的管脚分配。

现在统统都配置好后,可以开始烧录到ESP32上了。

3.ESP32-CAM上传代码

用FIDI编码器通过电脑连接到ESP32-CAM开拓板。

像下图所示:

许多FTDI编码器都有一个跳线许可你选择3.3v或者5v。
因此得确保跳线在精确的位置选择5v。

(把稳点:GPIO 0须要连接到GND才能上载代码。

ESP32-CAMFTDI Programmer

GNDGND

5VVCC (5V)

U0RTX

U0TRX

GPIO 0GND

烧录代码须要下面几步:

1)点击Tools->Board,并选择AI-Thinker ESP32-CAM

2)点击Tools->Port,并选择与ESP32连接的COM端口

3)然后点击上传按钮上传代码

4)如下图所示,当您开始在调试窗口上看到这些提示时,请按ESP32-CAM开拓板上的RST按钮。

然后等几秒钟,代码将成功上传到你的开拓板上。

得到IP地址

上传完代码后,记得断开GPIO0和GND的连接。

以115200的波特率打开串行监视器。
按下ESP32-CAM车载重置按钮。

ESP32的IP地址将打印到串口监视器中。

访问视频流做事器

现在你能通过本地网络访问你的摄像头视频流做事器了,打开一个浏览器并且输入ESP32-CAM的IP地址。
点击开始视频流按钮就可以看到摄像头拍摄的画面了。

您还可以通过单击“静止”按钮来拍摄照片。

不幸的是,这个例子没有保存照片,但是您可以修正它以利用开拓板上的microSD卡来存储拍摄的照片。

还可以利用多个相机设置来调度图像设置。

末了,你可以做人脸识别和检测。

首先,你将须要注册一张新的面孔,它将多次试图保存这个面孔。
当你成功注册这个新的面孔后,稍后它就将侦查到这个面孔。

就这样。
现在,您已经启动并运行了视频流web做事器,并利用库中的示例进行面部检测和识别。

故障打消

如果你在实验中涌现下面的缺点,请访问这个网址:

https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/

连接ESP32失落败:等待数据包头超时

Camera init失落败,缺点为0x20001或类似

浏览器检测器或Guru meditation error

草图缺点太大-选择了缺点的分区方案

COMX上的板不可用–未选择COM端口

Psram缺点:未安装GPIO isr做事

弱Wi-Fi旗子暗记

Arduino IDE串行监视器中没有IP地址

无法打开web做事器

图像滞后/显示大量延迟

结束

ESP32-CAM为建立更前辈的家庭自动化项目供应了一种廉价的方法,这些项目包括视频、拍照和人脸识别。

在本教程中,我们测试了CameraWebServer示例以测试相机功能。
现在,我们的想法是修正示例或编写一个全新的代码来构建其他项目。

原文地址:

https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide/