这篇文章是ESP32-CAM板的一个快速学习指南。我们将在这篇文章中详细讲述如何在5分钟之内设置视频流web做事器用于人面识别和侦测。
(把稳:在这篇文章中,我们利用了arduino-esp32的库,不讲解如何修正这些库)
视频教程
视频地址
须要哪些硬件
要学习这篇教程,你须要准备下面的硬件:
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/