arduino编程闪光灯教程,arduino闪灯教程
arduino编程闪光灯教程,arduino闪灯教程
用Arduino IDE开发ESP32-CAM的视频播放和人面识别功能
这篇文章是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服务器,并使用库中的示例进行面部检测和识别。
故障排除
如果你在实验现下面的错误,请访问这个网址:
连接ESP32失败:等待数据包头超时
Camera init失败,错误为0x20001或类似
浏览器检测器或Guru meditation error
草图错误太大-选择了错误的分区方案
COMX上的板不可用–未选择COM端口
Psram错误:未安装GPIO isr服务
弱Wi-Fi信号
Arduino IDE串行监视器中没有IP地址
无法打开web服务器
图像滞后/显示大量延迟
结束
ESP32-CAM为建立更先进的家庭自动化项目提供了一种廉价的方法,这些项目包括视频、拍照和人脸识别。
在本教程中,我们测试了CameraWebServer示例以测试相机功能。现在,我们的想法是修改示例或编写一个全新的代码来构建其他项目。
原文地址: