STM32项目设计:人脸识别门禁系统

文章目录

  • 项目简介
  • 硬件设计

请添加图片描述
项目视频链接:【还在制作中,制作好会发在哔哩哔哩:化作尘my,记得先关注】
项目实物链接:【可以看看某鱼:化作尘my】
有需要可以购买一个实物,会提供相应的参考资料学习

项目简介

人脸识别门禁密码锁是一种既可以通过密码输入,指纹识别也可以通过识别IC卡来实现门禁的开启关闭功能。在日常生活种它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的门禁密码锁是以芯片为核心,通过编程来实现的。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性通过软件程序来控制整个系统实现门禁密码锁的基本功能,其主要具有如下功能:
●人脸识别
●指纹识别
●手机蓝牙控制
●密码通过键盘输入,若密码正确,则将锁打开
●密码输入错误,蜂鸣器将报警提示
●用户可以自由设定密码
●RC522射频卡识别
●OLED显示
●步进电机控制电路

人脸识别模块使用的是海凌科FR1002人脸识别模块,以下是模块简介
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这个人脸识别的特点就是没用到彩屏显示摄像头获取的视频信息,直接用OLED显示提示信息就可以了,可以节约很多成本,因为一个带屏幕的人脸识别模块超级贵,模块一个就要200元

硬件设计

首先考虑的就是电源,我一开始用5V供电通信很不稳定,于是把电源改到了9V左右,使用了一个开关电源,果然更换电源之后通信就稳定多了
在这里插入图片描述
然后考虑到外设比较多,直接上64脚的MCU STM32F103RBT6

在这里插入图片描述
把人脸识别模块接到串口3上面
在这里插入图片描述
其他模块就随便接到单片机引脚先
在这里插入图片描述
然后考虑到有人脸识别模块电流会比较大,该用TYPEC接口,可以用快充去供电
接了1k电阻后,TYPEC-TYPEC直接接手机,手机就可以当充电宝给设备供电啦
在这里插入图片描述
然后绘制以下PCB图,这是我做的第一版本PCB,
在这里插入图片描述
还有点毛病,二级管和电感封装画大了,自己没有那么大的电感只好用器件管脚接起来了在这里插入图片描述
然后装上人脸识别模块才发现人脸模块是有方向的,必须横着放才能正常识别人脸,以下是错误接法
在这里插入图片描述
接下来就是写程序了,拿到人脸识别模块我开始找客服要程序,结果我懵逼了,压根没有历程
在这里插入图片描述
然后只得到两个PDF和一个上位机,没办法,不能偷懒了,硬着头皮干吧
在这里插入图片描述
打开上位机,用串口转TTL连接好人脸识别模块,发现发指令它没反应,怀疑是供电的问题,于是我用两节18650外接供电,这次是成功连接上了,然后开始用上位机录入人脸和删除人脸等操作,并记录串口数据。。。

1、获取模组当前状态
发送:ef aa 11 00 00 11
返回:EF AA 00 00 03 11 00 00 12 
上位机
1、打开串口
发送:EF AA 30 00 00 30 EF AA 24 00 00 24 
返回: 
2、删除所有用户
发送:EF AA 21 00 00 21 
返回: 
删除所有用户成功
3、人脸注册
发送:
EF AA 26 00 28 01 4D 42 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 10 00 00 00 42
EF AA 26 00 28 01 48 5A 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 10 00 00 00 4F 
ef aa 26 00 28 00 48 5a 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 0a 00 00 00 42 
返回: 
[2023-12-01 11:40:13.250]
RX:EF AA 01 00 11 01 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 
[2023-12-01 11:40:14.713]
RX:EF AA 00 00 05 26 00 00 01 01 23 EF AA 00 00 02 23 00 21
请直视摄像头
注册成功,已分配用户id为 1, 用户名为 MBS
4、删除选中的用户
发送: EF AA 20 00 02 00 01 23 
返回: 
id为 01 的用户删除成功
5、人脸匹配
发送: EF AA 12 00 02 00 0A 1A 
返回:RX:EF AA 01 00 11 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 EF AA 00 00 26 12 00 00 01 6D 62 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 48 
[2023-12-01 11:41:18.814]
RX:EF AA 01 00 11 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 
[2023-12-01 11:41:20.012]
RX:EF AA 01 00 11 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 
[2023-12-01 11:41:21.414]
RX:EF AA 00 00 02 12 05 15 EF AA 00 00 02 12 0D 1D 
[2023-12-01 11:41:37.276]
匹配成功,用户id为 01 用户名为 mbs
6、已获取所有已注册用户ID
发送: 0xEF 0xAA 0x24 0x00 0x00 0x24
返回: EF AA 00 00 22 30 00 23 58 53 31 30 30 31 5F 56 31 2E 31 2E 31 5F 31 2E 30 2E 33 2E 30 33 32 30 5F 30 30 30 30 30 30 1F EF AA 00 00 CB 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF 

收集到一些数据后,再看看PDF,大概的通信原理已经搞清楚了,然后可以开始写人脸识别模块的通信驱动了
在这里插入图片描述
直接写代码在这里插入图片描述
在这里插入图片描述
断断续续写了一个多月,总算是可以正常一点的使用了
人脸识别可以正常识别,可以正常录入人脸
可以删除人脸。。
程序这个东西没什么好讲的,懂得人看代码就懂,不懂的人和它讲很多也是一窍不通
现在开发到这里,也只能识别人脸、添加人脸、删除所有人脸的功能
但是添加人脸还可更多功能,比如现在添加人脸并不能输入自己的名字,后续可以研究一下怎样可以显示自己的名字到上面,添加简易的输入法或者是借助外接设备输入等方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/240672.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNAS认可是什么?湖南长沙CNAS专业第三方软件检测机构有哪些?

CNAS是中国合格评定国家认可委员会(China National Accreditation Service for Conformity Assessment)的缩写,是专门负责评定和认可各类检验机构、实验室、认证机构和校验机构的国家认可机构。CNAS认可的好处在于,它证明了软件企业和软件产品具备严格的…

k8s集群环境搭建以及插件安装

前置条件 终端工具MobaXterm很好用。 1、虚拟机三台(ip按自己的网络环境相应配置)(master/node) 节点ipk8s-master192.168.200.150k8s-node1192.168.200.151k8s-node2192.168.200.152 2、关闭防火墙(master/node) systemctl stop firewalld systemc…

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型

在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型 0. 背景1. 安装依赖2. 开发 main.py3. 运行 main.py 0. 背景 看了一些文章之后,今天尝试在 Windows 11 上通过 Autoawq 启动 Mixtral 8*7B 大语言模型。 1. 安装依赖 pip install torch torchvision …

django后台手机号加密存储

需求: 1 :员工在填写用户的手机号时,直接填写,在django后台中输入 2:当员工在后台确认要存储到数据库时,后台将会把手机号进行加密存储,当数据库被黑之后,手机号字段为加密字符 3&am…

【时间复杂度】时间复杂度优化法则简讲

一、引言 时间复杂度是衡量算法运行效率的一项重要指标,它描述了随着输入规模的增加,算法的执行时间如何增长。在算法设计与分析中,我们经常面临着优化时间复杂度的任务,以便提高程序的性能。本博客将深入探讨时间复杂度的优化法…

PXE批量高效网络装机

总结 1实验流程只能抄老师,记忆浅 2排错能力几乎无 3 指令用的太死, 一 系统装机的三种引导方式 启动 操作 系统 1.硬盘 2.光驱(u盘) 3.网络启动 pxe 重装系统? 在已有操作系统 新到货了一台服务器&#xff…

[go语言]输入输出

目录 知识结构 输入 1.Scan ​编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入,从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别,将直接进行代码演示。 三者区别的结论:Scanf格式化输入&#x…

【linux】linux系统安装与更新软件

前言 linux系统安装软件有许多的方式,本文列举的是类似于windows从应用商店安装软件的方法。也是最常用最省事的方法。 但是呢linux系统是有许多发行版本的,不同版本的命令不同,但语法基本是一模一样。 概念插入 windows系统中&#xff0c…

【备战蓝桥杯】——Day1

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-xKn7nmq36s9pgUXR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

如何在Linux运行RStudio Server并实现Web浏览器远程访问

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. …

【汇编】 13.3 对int iret和栈的深入理解

书中示例 assume cs:codecode segment start:mov ax,csmov ds,axmov si,offset lpmov ax,0mov es,axmov di,200hmov cx,offset end0-offset lpcldrep movsb ;lp到end0的指令传送到0:200处mov ax,0mov es,axmov word ptr es:[7ch*4],200hmov word ptr es:[7ch*42],0 ;设置7c表项…

YOLOv8在NX上的tensorrt的加速部署(60帧率)

所需环境 所有过程均可以参考本人所写的文章 (1)虚拟环境工具 MInforge3-Linux-aarch64 Jetson 平台都是RAM架构,平常的conda都是基于X86架构平台的。环境搭建参考文章 (2)YOLOv8_ros代码,采用自己创建的yolov_ros代码。yolov8_ros参考文章 (3)jetpack 环境(本篇文章…

Tomcat10.X部署老版本axis2 webservice项目不生效

目录 一、使用场景 二、问题描述 三、原因排查 四、解决方案 一、使用场景 原来项目是OpenJDK8tomcat9构建,现在需要升级到OpenJDK17tomcat10的组合。原来的webservice项目打包成aar格式,通过axis2部署在tomcat上。 二、问题描述 在配置好jdk和to…

vue3 知识

vue3介绍 Vue3的变化: 1、vue3完全兼容vue2,但是vue3不建议用vue2的写法 2、拥抱TypeScript,ts完全兼容js 3、组合式API和配置项API vue2 是配置项api vue3 组合式api vue3项目创建和启动 # 创建vue3项目&a…

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M 在中低容量存储领域,除了FLASH的使用,,还有铁电存储器FRAM的使用,相对于FLASH,FRAM写操作时不需要预擦除,所以执行写操作时可以达到更高的速度&#xff0…

在分类任务中准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,如何在python中使用呢?

在机器学习和数据科学中,准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,用于评估分类模型的性能。 1. 准确率(Accuracy)…

LeetCode、2542. 最大子序列的分数【中等,排序+小顶堆】

文章目录 前言LeetCode、2542. 最大子序列的分数【中等,排序小顶堆】题目及类型思路及代码实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领…

FindMy技术与相机结合

FindMy是苹果公司提供的设备追踪服务,用来帮助用户定位丢失的设备。自苹果公司开放Findmy网络之后,FindMy技术便与各种生活设备相结合,比如与相机的结合。 想象一下,你正在外出办事或者旅行时,突然意识到相机丢了&…

esxi-vSphere

esxi安装 vCenterServer 安装 给予 esxi,一般一个esxi ,就安装一个 vCenter 关于 vCenter Server 安装和设置 比较清晰教程: 【VCSA 8】安装vCenter Server Appliance(VCSA) 8.0-CSDN博客 vcsa 的安装 不是在 esxi 页面添加虚拟机方式,而是…

前端(二)VUE功能集锦

一、引言 作者开发工具平台的时候,用到了vue和element-ui,这里写一下各种功能使用,有的是绕点弯路,有的是需要结合实现需要自己改写一下。 二、功能 先看看环境,作者后端是SpringBoot,前端是VUEElementUI&a…