arduino编程闪光灯教程,arduino闪灯教程

11个月前 (04-23)

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示例以测试相机功能。现在,我们的想法是修改示例或编写一个全新的代码来构建其他项目。

原文地址: