当前位置:   article > 正文

【智能门禁】[ESP32Cam]2024最新-断电记忆-人脸识别门禁模块 简易开源教程 解决 fr_flash:Not found_esp32 人脸识别

esp32 人脸识别

【完美解决 fr_flash:Not found 没有分区表导致fr_flash.c报错人脸无法储存的bug】www.bilibili.com/video/BV1m64y1A7AS

最新保姆级教程【修复版】2024最新-断电记忆 -人脸识别门禁模块 简易开源教程(完美解决没有分区表导致fr_flash报错人脸无法储存的bug——fr_flash:Not found)

教程原文


本次修复fr_flash:Not found错误,方法见第三章

目录

时间戳
前言
资料下载
硬件购买
说明书:
一、程序由来
二、环境安装
三、flash版操作步骤(新版,推荐)
分区表实现flash存储原理
人脸识别原理
界限参考视频
四、SD卡版操作步骤(旧版,不推荐)

时间戳

上一期更新:2024年1月20日
本文更新时间:2024年1月22日(更新分区表版免插卡)
代码资源更新时间:2024年1月24日
代码解释(注释)预计2024年1月24日夜间上线

前言

开发环境必须按照此教程第二章《软件开发环境搭建》进行配置
不按该方法配置,库版本不对必出问题
纯新手先做一遍【新手入门】[Blinker]2024-最新开发环境+温湿度节点+继电器  详细开源教程比较好
地址:Arduino中文社区
上述新手教程找新手测试过,步骤截图全,本教程未测试,出现问题群里找群主
本人全部合集https://arduino.me/s/35?aid=2757
免费调试QQ1836035711,任何问题都可以问

资料下载

1.资料内容

人脸识别爆改成功.rar
包含
face_test.ino(花20买的CSDN的代码,发现SD卡用不了,自己改了两周才改好)
ESP32 的1.0.6库安装包(新库从2.0.1开始不支持人脸识别,所以必须要换1.0.6)

2.下载方式

暂时仅能从QQ 群的群文件下载
点灯开源项目分享群850881351
此群只提供各类开源分享,可向群主投稿,为避免打扰,不聊天
教程等任何问题都可找群主,免费调试,有空就回
群文件:

3.资料注意

调试出现任何问题先看【新手必看】[Blinker]2024最新-常见问题大全
如有咨询需要,也可前往点灯官网>开发文档>加点灯2000人官方群。

硬件购买

只要是安信可的ESP32Cam开发板(带烧录底板)都可以,microSD卡(TF卡)必须256MB~4GB,格式化为FAT格式,否则无法写入人脸信息

目前找到的最便宜、质量最好的是这家:
只要¥27包邮就可以拿下开发板和烧录底板
其它店多是¥30以上,质量还没他好(之前别的店买过两次,各坏一半气得我半死)
【ESP32-CAM开发板测试板WiFi+蓝牙模块ESP32串口转 摄像头模块模组】
【ESP32-CAM开发板测试板WiFi+蓝牙模块ESP32串口转 摄像头模块模组】复制¥7f0Dphk64T5ab¥,打开【手机阿里】查看:https://qr.1688.com/s/75Aj9WGg CZ9754


 

使用说明书(资料附带Word档说明书)

一、程序由来

(建议观看以下视频后再食用本教程)

1.原视频

【基于esp32cam人脸识别开锁完整教程&独家教程】
www.bilibili.com/video/BV1mS4y137Q5/?share_source=copy_web&vd_source=43a31abdbf3a9adbc8907c51881a1423

此视频附带程序基于ESP官方库开发,未实现修改flash分区表来存储人脸ID,断电即丢失,程序来自ESP官方

2.二创文章

单片机开发---基于ESP32-CAM的人脸识别应用
http://t.csdnimg.cn/ojpi5

此文章
也未实现修改flash分区表来存储人脸ID
但是自己写了一段复现比较困难的SD卡驱动存储人脸ID

3.本文(三创)添加分区表

效果展示【¥27超低成本人脸识别模块-哔哩哔哩】

版本一 通过改进二创文章SD卡操作方式,实现容易复现的SD卡存储人脸ID

**版本二 通过修改flash分区记忆人脸ID,断电不丢失,不需要插SD卡(推荐)**代码来自原视频的ESP官方程序

4.请注意:

ESP32算力有限,做人脸识别只能将图像和脚本传到浏览器,识别后返回人脸ID,所以无法脱离上位机运行,没有电脑或手机的浏览器开着,人脸识别计算就停了,所以表面是20元实际还要带上一个安卓平板或开着的电脑或旧手机,只适用于有上位机的门禁/智能家居系统

二、软件开发环境搭建

下载完资料包解压,然后打开文件夹,其中exe尽量管理员身份运行

1.安装Arduino

1.右键管理员身份运行

装过的忽略,Arduino2.0亦可,后面几步基本一样

2.安装硬件库(必须V1.0.6)

Arduino开发板库添加有两种方式,Arduino库管理器
或点灯官网资源下载栏的离线安装包


1.右键管理员身份运行esp32_package_1.0.6_arduino.cn.exe即可

注:ESP32不做人脸识别,则安装2.0.7; 做人脸识别安装1.0.6(2.0版库开始不支持人脸识别)
 
2.安装完硬件库后检查开发板库的位置
自动前往在地址栏粘贴%LOCALAPPDATA%/Arduino15/packages/esp32/hardware/esp32
并回车

亦可手动点击文件夹C:\用户\用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32
注:用户名是你自己的Windows用户名!
注:AppData是隐藏文件夹,要点击查看

开启隐藏的项目

才能查看
注:不管Arduino装在哪,这个硬件库都装到了C盘的用户文件夹!

3.如果安装过其他版本的esp32 package,请先删除或剪切走,再使用本安装包
删除方法:文件管理器地址栏粘贴%LOCALAPPDATA%/Arduino15/packages/esp32/hardware/esp32
即可进入C:\Users\这里替换为用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32
ESP32文件夹剪切走新版1.0.7文件夹,贴外部(2.0以上没有人脸识别,只能留1.0.6)


贴别的地方也可以

3.安装软件库(有的环境自带了不装也能编译,最好装上)

1.手动复制(推荐):
把 

复制或剪切到C:\Users\用户名\Documents\Arduino\libraries
 


注:不管Arduino装在哪,这个软件库都在C盘的用户文件夹!

2.自动添加(不推荐):Arduino>项目>加载库>添加.ZIP库
 

4.设置Arduino——管理网址、行号、折叠、编译信息

打开Arduino>文件>首选项>附加开发板管理器网址>

 ,粘贴:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
http://x.iaoye.xin/package_esp8266com_index.json
http://wechat.doit.am/package_esp8266com_index.json
https://github.com/esp8266/Arduino/releases/download/2.5.0/package_esp8266com_index.json
https://raw.githubusercontent.com/DFRobot/FireBeetle-ESP8266/master/package_firebeetle8266_index.json
https://dl.espressif.com/dl/package_esp32_index.json
https://arduino.me/packages/esp32.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
 

三、flash版操作步骤

1.确保您已经配置好上述开发环境

2.打开face_test文件夹的face_test.ino(见前文资料下载)


如图选择AI Thinker(安信可)开发板(在正中间,不太好找)
连接USB线,选择好端口

4.修改为自己的WiFi名、密码、开门引脚(接线见资料包图片)

5.上传

上传详细步骤见入门教程第八章《烧录》
【新手入门】[Blinker]2024-最新开发环境+温湿度节点+继电器  详细开源教程
Arduino中文社区

以下为简版步骤:

上传前打开Arduino串口监视器确认通信
按住烧录底板RST和IO0按钮
插USB线
打开arduino串口监视器
先松开RST按钮,再松开IO0按钮

看到语句:waiting for download 等待下载
即可点击arduino右箭头上传代码
若没有则在工具里面切换端口,直到有,没端口说明要重装串口驱动


若出现报错,显示ESP32库问题
则在地址栏粘贴%LOCALAPPDATA%/Arduino15/packages/esp32/hardware/esp32
即可进入C:\Users\这里替换为用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32
ESP32文件夹剪切走新版1.0.7文件夹,贴外部(2.0以上没有人脸识别,只能留1.0.6)

6.调试

正常编译并上传后出现连接WiFi、检测flash分区(如图)
若串口监视器无信息,波特率115200,并按RST重置
得如下调试记录
 


复制上图最后一行网页地址粘贴手机或电脑浏览器(必须在同一个WiFi下)
进入界面,例如 http://192.168.1.102

点击STREAM CAMERA开启视频流
DETECT FACES识别人脸(绿色框显示是否识别)
白色输入框输入英文名,点击ADD USER,等待添加人脸(闪光灯闪5次,绿色框显示成功即可)
SCCESS CONTROL 开启门禁模式,识别到人脸电脑发出响声,按资料包图片接线,或通过UDP发送到门禁机(下次更新)
 


录好人脸,断电,不会丢失,就完成了


 

7.模块IP地址固定

默认IP地址路由器自动分配,如需固定,请在setup函数外添加

  1. //上联路由器的静态IP WiFi.config
  2. IPAddress sip(192,168,1,200); //手动设置静态IP 连接网络ip
  3. IPAddress sip1(192,168,1,1); //本地网关
  4. IPAddress sip2(255,255,255,0); //本地子网掩码

并在setup函数内的WiFi.begin前添加

  1. //上联路由器wifi
  2. WiFi.config(sip,sip1,sip2); //设置上联路由器网络参数

如图所示:
 


完成后同样上传

添加分区表partitions.csv实现flash存储原理

官方没给分区表,导致官方flash存储功能失效,我查了好久,2023.3改SD卡版,2024.1再次分析fr_flash.h,终于找出来怎么分区

分区大小可以自己改,用计算器程序员模式十六进制计算即可,目前容量存几十个人应该够用

修改时不要超出4MB(0X400000),偏移不写默认在上一分区结尾开始

存ino一个文件夹即可,编译器会吃进去

人脸识别代码原理

ESP官方静态库函数(编译成了二进制,改不了,位置在硬件库源码部分,github上倒是可以搜到fr_flash.c这个文件,上面分区表原理分析截图里面就是)
把网页、脚本、人脸发送到电脑或手机的浏览器去计算ID,然后返回ESP32Cam
意味着无法脱离上位机运行,没有浏览器开着人脸识别计算就停了
ESP官方用到的是一些开源算法,可以自己去查MTMN开源项目
https://blog.csdn.net/qq_39217004/article/details/128129391

接线(借视频做参考)

电源必须5V2A ~5V 3A

实际接线参考视频
【esp32 人脸识别门禁系统 保姆级教程由于接触不久为了改进断网也能运行肝了两天】 www.bilibili.com/video/BV1KN4y1B7ui/?share_source=copy_web&vd_source=43a31abdbf3a9adbc8907c51881a1423
【esp32人脸识别 门禁 最终上门实战】 https://www.bilibili.com/video/BV1i94y1M7xv/?share_source=copy_web&vd_source=43a31abdbf3a9adbc8907c51881a1423

预告:智能门禁其它8个开门方式和开门动作机构将于今年年底前发布在开源群

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/441069
推荐阅读
相关标签
  

闽ICP备14008679号