基于单片机的人脸识别的智能门禁系统设计

文章目录

  • 前言
  • 资料获取
  • 设计介绍
  • 功能介绍
  • 设计清单
  • 核心代码
  • 具体实现截图
  • 参考文献
  • 设计获取


前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

资料获取

文章底部名片,详细资料联系我。

设计介绍

普遍来讲门禁管理系统的主要在以下的范围使用:职员办公室、数据中心、实验室、社区出入口、高档宾馆房间门等重要场所。如今,门禁控制大多是机械结构的,由于机械门禁系统中缺乏电子设备,因此相对可靠。可以说,这是一种带有密码的机械密码门禁。机械门禁的内部结构非常简单,但安全系数很低,这也导致了时常会发生盗窃事件。
在当前的技术背景下,本文精心打造了一款前沿的视频识别门禁控制系统。该系统以STM32F103C8T6作为核心控制单元,用SG90作为舵机驱动开关门,TFT彩屏可以显示具体信息。该系统不仅支持传统的键盘手动输入方式,更融合了先进的人脸识别技术,为用户提供了更为便捷、智能的开门体验。这款智能门禁系统凭借其卓越的性能,展现了多个显著优势。首先,其高度灵敏的识别能力确保了用户操作的即时响应;其次,强大的保密性设计使得系统能够抵御各类非法入侵,保障用户安全;再者,高安全系数的设计使得系统更加稳定可靠,为用户提供了持久的安全保障。此外,系统内部活动部件的稀少或不存在,极大地减少了磨损,从而延长了使用寿命,为用户带来了更加经济实惠的选择。本文所设计的视频识别门禁控制系统,以其卓越的性能、便捷的操作体验和长久的使用寿命,无疑将成为未来门禁系统发展的新标杆。

功能介绍

本次设计的人脸识别的门禁控制系统其硬件部分是以STM32F103C8T6为核心的单片机,采用0V2640摄像头对人员的人脸识别,采用矩阵按键对系统的操作以及密码的输入,使用蜂鸣器来作为报警模块,开门装置是电子锁控制,显示设备采用OLED液晶显示,无线模块在一番思索后选择了蓝牙模块传输。[5]系统框图如图2.1所示:
在这里插入图片描述

图2.1 系统框图
要求达到功能如下:
(1)可从键盘进行相关设定和功能选择等;
(2)实现对到访人员人脸的视频检测功能,能够对用户人脸信息进行录入、删除、修改、识别等功能;
(3)能够实现键盘密码输入、在密码正确时解门禁,三次输入密码错误时,在一定时间内禁止密码输入并且蜂鸣器报警;
(4)LCD12864液晶可对相关信息进行显示;相关的报警信息会使用蓝牙模块发送到手机APP,可以使用手机APP远程对门禁的开启操作。

设计清单

步进电机元件清单
1.7*9万用板
2.四位一体共阳.36数码管
3.STC89C51
4.步进电机

核心代码

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "key_m.h"
#include "lcd1602toOLED.h"
#include "buzzer.h"	
#include "stmflash.h"
#include "password.h"
#include "IOout.h"
#include "usart.h"
#include "usart2.h"
u8 err=0;
//u8 error = 0;
enum MODE_e{OPENDOOR=0,//搜索授权LOGIN_IC,//注册IC卡LOGOUT_IC,//注销IC卡LOGIN_FG,//注册指纹LOGOUT_FG,//注销指纹RESET_PW //重置密码   
};
//刷卡用
u8 ICbuf[4]={0};//IC缓存
char str[]="0123456789abcdef";
u8 refresh = 1;
u8 sta;
u8 error = 0;
u8 consgOK=0;
u8 size[4];
const u8 cmd1[]={0xEF,0xAA,0x12,0x00,0x00,0x00,0x00,0x12};//识别指令
const u8 cmd2[]={0xEF,0xAA,0x13,0x00,0x00,0x00,0x00,0x13};// 注册指令
void Relay(u8 _sta);
//显示函数
void DisIC_hex(void);
void Dis_LOGIN_IC(void);
void Dis_LOGOUT_IC(void);void sendAPP(void);void OPEN_THE_DOOR(u8 id)
{char str2[50];err = 0;LCD_GotoXY(3,1);//"0123456789abcdef"LCD_Print("授 权 进 入");switch (id){case 0://密码开锁sprintf(str2,"密码正确.-->已开锁\r\n");break;case 1://IC卡开锁sprintf(str2,"IC%02X%02X%02X%02X-->已开锁\r\n", ICbuf[0],ICbuf[1],ICbuf[2],ICbuf[3]);           break;case 2://指纹开锁sprintf(str2,"人脸识别正确-->已开锁\r\n");break;case 3:sprintf(str2,"wifi ctrl-->已开锁\r\n");//printf()break;default:break;}APPsendValue(str2,"","",0,0,0);delay_ms(1000);RelaySW(1);delay_ms(2000);RelaySW(0);   APPsendValue(" "," ","",0,0,0);	
}
extern void SaveFlash(void);
extern void ReadFlash(void);  
char str1[50];
int main(void)
{u8 cnt;u8 key;u8 sta;u8 mode=OPENDOOR;s8 i;u8 errCnt;//使用内部高速晶振HSI RC(8Mz)//配置SYSCLK->36MHz,HCLK->36MHz //APB1->36MHz,APB2->36MHz,ADC1,2->18MHzsysClockHSI_Config();MY_NVIC_PriorityGroupConfig(2);        delay_Init(SysClockFreq/1000000);uart_init(SysClockFreq/1000000,9600);USART2_Init(36,115200);	LED_Init();delay_ms(50);LCD_Init();Buzzer_Init();KeyM_Init();RelaySW(0);ReadFlash();LCD_GotoXY(0,1);
//    LCD_Print(str); delay_ms(1000);   Beep(200);
Start:      mode=OPENDOOR;LCD_Clear();LCD_GotoTitle(20);LCD_Print(" 人脸识别密码锁");disHome(); APPsendLable0("信息","提示","","","","");while(1){delay_ms(1);cnt++;if(cnt>200){cnt = 0;LED = !LED;//人脸识别成功if(consgOK==1){LCD_GotoXY(0,1);LCD_Print("  face id   ok  ");	SetBeep(1);delay_ms(1000);LCD_GotoXY(0,1);LCD_Print("    --------    ");SetBeep(0);consgOK = 0;Clr_InputPW();buzzer=1;LCD_GotoXY(0,0);LCD_Print("Authorization OK");LCD_GotoXY(0,3);LCD_Print(" Open The Door  ");delay_ms(600);buzzer=0;delay_ms(900);OPEN_THE_DOOR(2);error=0;delay_ms(500);goto Start;}//人脸识别失败else if(consgOK==2){LCD_GotoXY(0,1);LCD_Print("  face id   err ");SetBeep(1);	delay_ms(1000);LCD_GotoXY(0,3);LCD_Print("    --------    ");SetBeep(0);consgOK = 0;LCD_GotoXY(0,1);LCD_Print(" password error!");Beep(100);Beep(100);Beep(100);error++;if(error>=3){while(1){Beep(100);}}delay_ms(800);goto Start;}//sendAPP();if(err>=3){errCnt = 0;while(errCnt<50)//锁机时间{errCnt++;Beep(200);while(1){Beep(200);}}err = 0;}            }key = Key_Map(KeyScan(0));//扫描矩阵按键if(key==0){if(keyUSART){key = keyUSART;keyUSART = 0;}}if(key){Beep(200);              if(key=='C')//人脸注册{for(i=0;i<8;i++)Send_Char_Com2(cmd2[i]);		LCD_GotoXY(0,1);LCD_Print(" reg face  id   ");				delay_ms(1000);LCD_GotoXY(0,1);LCD_Print("    --------    ");			}else if(key=='D')//人脸识别{for(i=0;i<8;i++)Send_Char_Com2(cmd1[i]);LCD_GotoXY(0,1);LCD_Print(" conf face id   ");				delay_ms(1000);LCD_GotoXY(0,1);LCD_Print("    --------    ");			}else {sta = InputPassword(key);if(0xFF == sta){LCD_GotoXY(0,0);//"0123456789abcdef"LCD_Print(" Input A New PW."); disHome();        mode = RESET_PW;}else if(0x0F==sta)//开门{OPEN_THE_DOOR(0);goto Start;}else if(0xEE==sta)//密码错误{LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("password [error]");//printf("password [error]");APPsendValue("password [error]","","",0,0,0);Beep(200);Beep(200);Beep(200);delay_ms(1000);err++;goto Start;}}            }while(mode == RESET_PW)//重置密码{key = Key_Map(KeyScan(0));if(key==0){if(keyUSART){key = keyUSART;keyUSART = 0;}}            if(key=='A'||key=='B'||key=='C'||key=='D')goto Start;//放弃密码重置else if(key){Beep(200);sta = SetPassword(key);if(sta==0xFF){LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("reset PW. [OK]  ");//printf("reset PW. [OK]\r\n");APPsendValue("reset PW. [OK]","","",0,0,0);Beep(1000);delay_ms(1000);goto Start;    }else if(sta==0xEE){LCD_GotoXY(0,1);//"0123456789abcdef"LCD_Print("reset PW. [err] ");//printf("reset PW. [err]\r\n");APPsendValue("reset PW. [err]","","",0,0,0);Beep(200);Beep(200);Beep(200);delay_ms(1000);goto Start;    }}}                }     
}

具体实现截图

请添加图片描述

在这里插入图片描述

参考文献

[01]贾川. 浅谈人脸识别技术应用及发展趋势[J]. 中国安防,2010,(03):91-94
[02]崇玉海. 基于二维图像表示的人脸检测与识别技术研究[D]. 中国优秀硕士学位论文全文数据库,2014,(03):
[03]姚丽君. 人脸识别技术的发展与应用[J]. 科技创新导报,2010,(21):35
[04]张红岩. 基于神经树的人脸识别方法研究[D]. 中国优秀硕士学位论文全文数据库,2011,(06):
[05]杨敏英, 陈辉煌, 杨阿弟, 佘明辉. 一种家庭智能门禁语音报警控制设计与实现[J]. 长春大学学报,2016,(4):6
[06]刘康, 林如威, 熊宇, 崔晓, 曾贵娥. LED控制器设计[J]. 电子技术与软件工程,2022,(17):4
[07]曹义 邢玉秀 张琳 刘亿文. PCB设计课程项目驱动教学改革的探索[J]. 电子世界,2014,(01):178-179
[08]田雅楠. 基于单片机的肥箱料位检测装置设计与试验研究[D]. 中国优秀硕士学位论文全文数据库.2020,(09):
[09]韩兴会. 基于STM32和LwIP的无线传感器网络网关研究与应用[D]. 中国优秀硕士学位论文全文数据库2018,(02):
[10]王静. 基于单片机的数据串口通信[D]. 中国优秀硕士学位论文全文数据库,2013,(02):
[11]王伟. 基于STM32的大功率LED老化电源的设计[D]. 中国优秀硕士学位论文全文数据库,2017,(04):
[12]陈隐宏. 简易船舶GPS、艏向显示仪的设计[D]. 中国优秀硕士学位论文全文数据库,2015,(11):
[13]孙强强, 丁小伟. 基于52单片机的机场智能寄存柜设计[J]. 长江信息通信,2021,(05):113-115
[14]周文龙. 基于单片机控制的电子密码锁设计[J]. 大众商务:下半月,2009,(3):2
[15]牛国锋. 基于瑞萨MCU的温度预警系统设计与实现[D]. 中国优秀硕士学位论文全文数据库,2013,(10):

设计获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏👇🏻

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

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

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

相关文章

教师节特辑:AI绘制的卡通人物,致敬最可爱的人‍

【编号&#xff1a;9】教师节到了&#xff0c;今天我要分享一组由AI绘制的教师节主题卡通人物插画&#xff0c;每一幅都充满了对老师的敬意和爱戴。让我们一起用这些可爱的卡通形象&#xff0c;向辛勤的园丁们致敬&#xff01; &#x1f393;【教师形象】 这…

并发编程 - NSThread

引言 关于并发编程&#xff0c;我们在前面的博客中已经介绍过了GCD和NSOperation&NSOperationQueue。这两种方案足以覆盖大多数开发场景。然而&#xff0c;理解NSThread仍然是有必要的。虽然它在现代开发中使用较少&#xff0c;但对于理解底层线程管理和并发编程的基础&am…

量化交易backtrader实践(一)_数据获取篇(2)_tushare与akshare

上一节回顾 在上一节中&#xff0c;从股票的基本功能和主要数据进行小结&#xff0c;明确了进行backtrader回测所需要的数据&#xff0c;并且学习了backtrader的数据来源以及PandasData的格式要求&#xff0c;已经做到假设拿到.txt或.csv文件后&#xff0c;能把里面的股票基本…

赎金信--力扣383

赎金信 题目思路一方法一&#xff1a;哈希表思路二方法二 数组 题目 思路一 我们使用哈希表map的思路&#xff0c;A能不能由B组成&#xff0c;说明B包含的元素个数要大于等于A。 所以我们先利用map的key和value分别对magazine中的出现的字符以及出现的次数存储起来。 然后我们…

【射频通信电子线路基础第三讲】射频网络与阻抗匹配包括射频电路与网络、二端口射频网络参数,阻抗匹配解析法

一、射频电路与网络 1、物理等效电路与网络等效电路 &#xff08;1&#xff09;物理等效电路&#xff1a;是基于电流电压的等效电路&#xff0c;采用集总参数&#xff0c;反应电路内部的原理 &#xff08;2&#xff09;网络等效电路&#xff1a;是基于功率的等效电路&#x…

页面水印的实现以及防删除方案

水印相关 引言绘制一个水印输出背景图封装一点点细节图片加水印防止水印删除问题解决方案 引言 在企业里为了防止信息泄露和保护知识产权&#xff0c;通常会在页面和图片上添加水印 前端页面水印的添加一般有这几种方式&#xff1a;dom 元素循环、canvas 输出背景图、svg 实现…

企业财税自动化解决方案的成本效益分析与投资回报预测

随着企业规模的扩大和业务复杂度的增加&#xff0c;企业在财务管理方面也面临着诸多挑战&#xff0c;传统的财务管理方式逐渐无法满足企业经营需求&#xff0c;借助财税自动化解决方案来提高财务效率和准确性、降低人力成本&#xff0c;为企业带来长期的效益提升&#xff0c;已…

通过战略性SEO整合提升B2B内容的可见性、权威性和投资回报率

精明的市场营销者知道&#xff0c;尽管B2B营销的重点是推动商业采购&#xff0c;但归根结底&#xff0c;商务买家依然是消费者。无论你是针对返校购物的父母的鞋子品牌&#xff0c;还是寻找新的内容制作合作伙伴以扩大内容计划的市场营销领导者&#xff0c;搜索引擎优化&#x…

航空航天混合动力(2)电动飞机发展中的电气连接挑战

航空航天混合动力(2)电动飞机发展中的电气连接挑战 1.概述2.更高的电压(千伏)和功率(兆瓦)2.缓解局部放电/电晕效应3.提高可靠性,更恶劣的环境,频繁的维护和检查,冲击和振动4.减重5.抗电弧跟踪和液压油阻力6.严格的可燃性,毒性和烟雾要求7.海拔和气压的影响8.工作温度范围…

远程存储 RDMA

什么是 RDMA RDMA&#xff08;Remote Direct Memory Access&#xff09;指的是远程直接内存访问&#xff0c;这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。 Remote&#xff1a;数据通过网络与远程机器间进行数据传输。 Direct&#xff1a;没有内核的参与&am…

【区块链 + 人才服务】CERX- 基于联盟链的研学资源交换网络 | FISCO BCOS应用案例

CERX 是定位于面向高校科学研究与教学的分布式研学资产交换网络&#xff0c;构建一个用于数据、算法模型、论文和课程的研学资源价值流转平台。该平台采用 FISCO BCOS 联盟链为核心区块链层。 CERX 基于“交叉学科”的人才培养生态&#xff0c;围绕“科研、课件、课程、证书”…

Linux基础3-基础工具1(什么是工具,yum,vim基础)

目录 一.什么是工具 二.yum 2.1 yum基础 2.2 yum拓展 2.3 rzsz 三.vim基础 四.下章内容 1. vim 插入模式&#xff0c;底行模式&#xff0c;命令模式下详解。vim基础配置 2. gcc/g 基础 一.什么是工具 工具的本质是也是指令。通过工具我们能快速的实现某些功能 二.yum 2.1…

JVM合集

序言: 1.什么是JVM? JVM就是将javac编译后的.class字节码文件翻译为操作系统能执行的机器指令翻译过程: 前端编译:生成.class文件就是前端编译后端编译:通过jvm解释(或即时编译或AOT)执行.class文件时跨平台的,jvm并不是跨平台的通过javap进行反编译2.java文件是怎么变…

任意论文一键变播客,谷歌正式发布Illuminate,它能重构研究者的学习方式吗?

先来听一段英文播客&#xff0c;内容是不是很熟悉&#xff1f; &#xff0c;时长04:27 是的&#xff0c;这俩人就是在聊那篇《Attention is All You Need》。在 4 分半的对话里&#xff0c;他们介绍了论文的核心内容&#xff0c;一问一答&#xff0c;听上去相当自然。 播客原址…

SpringBoot大学生租房平台:技术实现与市场分析

第2章 开发环境与技术 大学生租房平台的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对大学生租房平台用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xff0c;没有办…

[最优化方法] 《最优化方法》个人问答式学习笔记 with LLM

《最优化方法》问答式学习笔记 with LLM 文章目录 《最优化方法》问答式学习笔记 with LLM写在前面每周提问的链接表格绪论 | 第一周 | [answer by 文心一言]Q1 请为我解释一下最优化方法研究的核心重点主要是哪些&#xff1f;一、问题定义与建模二、求解方法三、算法性能与优化…

HTML5+CSS+JS制作中秋佳节页面

HTML5CSSJS制作中秋佳节页面 中秋节&#xff0c;是中国民间的传统节日。每年农历八月十五庆祝。 在中秋节这一天&#xff0c;人们会通过各种方式庆祝&#xff0c;其中最重要的活动之一就是赏月。家人团聚在一起&#xff0c;共同欣赏明亮的月亮。同时&#xff0c;吃月饼也是中秋…

Delphi 12.1安卓APP开发中获取硬件信息及手机号

Demo与代码已上传到CSDN下载。 这里简单说一下代码内容&#xff0c;完整代码请自行下载&#xff0c;不清楚的欢迎留言交流。 前言 演示Demo使用了我自己开发的一个控件&#xff0c;TLayoutPro 《Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡》请查看并下载控…

2024年【上海市安全员C证】考试题库及上海市安全员C证报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【上海市安全员C证】考试题库及上海市安全员C证报名考试&#xff0c;包含上海市安全员C证考试题库答案和解析及上海市安全员C证报名考试练习。安全生产模拟考试一点通结合国家上海市安全员C证考试最新大纲及上海…

Vue 3 + Element Plus 封装单列控制编辑的可编辑表格组件

在Web应用开发中&#xff0c;经常需要提供表格数据的编辑功能。本文将介绍如何使用Vue 3结合Element Plus库来实现一个支持单列控制编辑功能的表格&#xff0c;并通过封装组件的形式提高代码的复用性。通过本教程&#xff0c;你将学会如何构建一个具备单列控制编辑功能的表格组…