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

本文主要是介绍【智能门禁】[ESP32Cam]2024最新-断电记忆-人脸识别门禁模块 简易开源教程 解决 fr_flash:Not found,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【完美解决 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函数外添加

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

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

    //上联路由器wifiWiFi.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个开门方式和开门动作机构将于今年年底前发布在开源群

这篇关于【智能门禁】[ESP32Cam]2024最新-断电记忆-人脸识别门禁模块 简易开源教程 解决 fr_flash:Not found的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834892

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.