项目(二) esp32-cam 网页图像人脸
https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide/
ESP32-CAM Pinout
下图显示了ESP32-CAM引脚排列(AI-Thinker模块)。
有三个GND引脚和两个引脚用于电源:3.3V或5V。
GPIO 1和GPIO 3是串行引脚。您需要这些引脚才能将代码上传到您的电路板。此外,GPIO 0也起着重要作用,因为它确定ESP32是否处于闪烁模式。当GPIO 0连接到GND时,ESP32处于闪烁模式。
以下引脚内部连接到microSD卡读卡器:
- GPIO 14:CLK
- GPIO 15:CMD
- GPIO 2:数据0
- GPIO 4:数据1(也连接到板载LED)
- GPIO 12:数据2
- GPIO 13:数据3
视频流服务器
按照以下步骤使用您可以在本地网络上访问的ESP32-CAM构建视频流式Web服务器。
1.安装ESP32插件
在本例中,我们使用Arduino IDE对ESP32-CAM板进行编程。因此,您需要安装Arduino IDE以及ESP32插件。如果您还没有安装ESP32插件,请按照下一个教程之一进行操作:
2. CameraWebServer示例代码
在Arduino IDE中,转到文件 > 示例 > ESP32 > 相机,然后打开CameraWebServer示例。

应加载以下代码。

如果在Arduino IDE中找不到代码,可以从我们的GitHub存储库下载。下载后,解压缩该文件夹,然后打开CameraWebServer.ino文件。
在上载代码之前,您需要在以下变量中插入网络凭据:
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
然后,确保选择正确的相机模块。在这种情况下,我们使用AI-THINKER模型。

所以,评论所有其他模型并取消注释:
#define CAMERA_MODEL_AI_THINKER
现在,代码已准备好上传到您的ESP32
ESP32-CAM上传代码
使用FTDI编程器将ESP32-CAM板连接到计算机。按照下一个原理图:

重要提示: GPIO 0需要连接到GND,以便您能够上传代码。
要上传代码,请执行以下步骤:
- 转到工具 > 板,然后选择ESP32 Wrover模块
- 转到工具 > 端口,然后选择ESP32连接的COM端口
- 在工具 > 分区方案中,选择“ 巨大的APP(3MB无OTA) ”
- 按下ESP32-CAM板载RESET按钮
- 然后,单击上传按钮以上载代码。

重要提示:如果无法上传代码,请仔细检查GPIO 0是否已连接到GND,并在“ 工具”菜单中选择了正确的设置。您还应该按下板载重置按钮以在闪烁模式下重新启动ESP32。
获取IP地址
上传代码后,断开GPIO 0与GND的连接。
以波特率115200打开串行监视器。按ESP32-CAM板载复位按钮。
ESP32 IP地址应打印在串行监视器中。

访问视频流服务器
现在,您可以在本地网络上访问您的相机流媒体服务器。打开浏览器并键入ESP32-CAM IP地址。按Start Streaming按钮开始视频流。

您还可以通过单击“ 获取静止”按钮来拍摄照片。不幸的是,此示例不保存照片,但您可以修改它以使用板载microSD卡存储拍摄的照片。
您还可以使用多种相机设置来调整图像设置。
最后,您可以进行人脸识别和检测。
首先,您需要注册一张新面孔。它将多次尝试挽救面部。在注册新用户之后,它应该稍后检测到面部(主题0)。
就是这样。现在,您可以使用图库中的示例启动并运行带有面部检测和识别功能的视频流式Web服务器。
故障排除
如果您遇到以下任何错误,请阅读我们的 ESP32-CAM故障排除指南:修复了最常见的问题
- 无法连接到ESP32:超时等待数据包标头
- Camera init失败,错误0x20001或类似
- 掉电探测器或古鲁冥想错误
- 草图太大错误 - 选择了错误的分区方案
- COMX的主板不可用 - 未选择COM端口
- Psram错误:未安装GPIO isr服务
- 弱Wi-Fi信号
- Arduino IDE串行监视器中没有IP地址
- 无法打开Web服务器
- 图像滞后/显示大量延迟
包起来
ESP32-CAM提供了一种廉价的方式来构建更先进的家庭自动化项目,包括视频,拍照和人脸识别。
在本教程中,我们测试了CameraWebServer示例以测试摄像头功能。现在,我们的想法是修改示例或编写一个全新的代码来构建其他项目。例如,在检测到动作时拍照并将其保存到microSD卡,在家庭自动化平台(如Node-RED或Home Assistant)中集成视频流等等。
我们希望您发现本教程很有用。如果你还没有ESP32-CAM,你可以在这里抓住它。
如果您喜欢这个项目,您可能也喜欢其他有关相机的项目:
- ESP32-CAM视频流Web服务器(与Home Assistant和Node-RED配合使用)
- 基于CCTV Raspberry Pi的系统,使用MotionEyeOS进行存储
- 使用Raspberry Pi相机的视频流
- 使用Raspberry Pi相机的节点RED(拍照)
项目(二) esp32-cam 网页图像人脸的更多相关文章
- Vue小项目二手书商城:(二)axios前后端数据交互
实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...
- Eclipse+Maven创建webapp项目<二> (转)
Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...
- Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)
实现效果: 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮. 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的 ...
- Vue小项目二手书商城:(三)前端渲染数据
实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...
- Vue小项目二手书商城:(一)准备工作、组件和路由
本项目基于vue2.5.2,与低版本部分不同之处会在(五)参考资料中提出 完整程序:https://github.com/M-M-Monica/bukesi 实现内容: 资源准备(mock数据) 组件 ...
- Eclipse+Maven创建webapp项目<二>
Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...
- [python-opencv]图像二值化【图像阈值】
图像二值化[图像阈值]简介: 如果灰度图像的像素值大于阈值,则为其分配一个值(可以是白色255),否则为其分配另一个值(可以是黑色0) 图像二值化就是将灰度图像上的像素值设置为0或255,也就是将整个 ...
- crm 系统项目(二) admin 后台操作表格
crm 系统项目(二) admin 后台操作表格 1. app下创建 templates 运行的时候 先找全局的templates——> 按照app的注册顺序找templates中的文件 2. ...
- 旋转图像 给定一个 n × n 的二维矩阵表示一个图像。
给定一个 n × n 的二维矩阵表示一个图像. 将图像顺时针旋转 90 度. 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵.请不要使用另一个矩阵来旋转图像. 示例 : 给定 ma ...
随机推荐
- eDiary
多年过去,您经历了BBS.论坛.博客.推特.微博 ...,但在电脑的某个 角落,eDiary始终为你守护发自你内心的声音. eDiary的作用不仅仅在于写日记,您也可以用它来记流水帐.写工作日志, 记 ...
- SpringBoot 基础(一)
目录 SpringBoot 基础(一) 一.简介 二.重要注解 三.基本应用开发 1. lombok的使用 2. SpringBoot 的参数传递 3. 对象参数校验 4. 静态资源 四.Spring ...
- Windows ----tasklist/taskkill
1) Tasklist命令详解 “Tasklist”命令是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数. 作用:结束一个或多个任务或进程.可以根据进程 ID 或图像名来 ...
- [更新] Jetbrains IntelliJ IDEA 2019 的许可证密钥
亲测有效.转载目的:提供一种方法,当然可以看一下原网站的更新及其他方法.转载:[更新] Jetbrains IntelliJ IDEA 2019 的许可证密钥(100%工作),By Gideon ...
- 关于visual studio 2015 智能提示英文,而非中文的解决方案
关于visual studio 2015 智能提示英文,而非中文的解决方案: 找到这个目录 C:\Program Files (x86)\Reference Assemblies\Microsof ...
- <!DOCTYPE html> 详解
前段时间的.netcore web应用程序的项目里面使用Frameset与Frame时候出现了一个问题就是使用不了,今晚准备测试一个bug却得到意外收获o(∩_∩)o 哈哈, 找到了最终原因funny ...
- DataTable求列的最大值、最小值、平均值和样本数
与sql聚合函数相似,会屏蔽null table.Compute("max(ColumnName)", "true"); table.Compute(" ...
- Restart container within pod
https://stackoverflow.com/questions/46123457/restart-container-within-pod 命令 kubectl exec -it [POD_N ...
- 基于tensorflow的简单鼠标键盘识别
import cv2 as cvimport tensorflow as tfimport numpy as npimport random ##以下为数据预处理,分类为cata,总共样本为cata* ...
- Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request对象方法,属性和Response对象,form表单的上传
Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV 在Django中存 ...