【智能门禁】[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

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据