0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32项目分享:智能门禁锁系统

机智云 2024-09-12 08:04 次阅读

项目成品图片:

90695fb4-709a-11ef-bb4b-92fbcf53809c.jpg

01

项目简介

1.功能详解


基于STM32智能门禁锁系统。

功能如下:


按键解锁:系统通过4×4矩阵键盘模块输入密码进入主菜单

门禁刷卡:通过RFID模块刷卡进入主菜单,卡片可以添加或者覆盖删除

指纹识别:通过AS608指纹识别模块识别指纹开锁

蓝牙APP解锁:通过蓝牙APP输入密码解锁

实时时间显示:OLED屏幕显示当前时间,可通过按键修改

步进电机:步进电机模拟门锁开关

OLED显示:显示用户解锁界面,主菜单以及各项功能界面

蜂鸣器报警:密码输入错误蜂鸣器报警

2.材料清单


STM32F103C8T6最小系统板

OLED显示屏(7针SPI协议)

4×4矩阵键盘

RFID门禁模块(加卡片)

AS608指纹模块

蓝牙模块(BT04-A)

蜂鸣器

02


原理图设计

9082fa78-709a-11ef-bb4b-92fbcf53809c.png

03


PCB硬件设计

1.PCB图

909306de-709a-11ef-bb4b-92fbcf53809c.jpg

90aa9790-709a-11ef-bb4b-92fbcf53809c.jpg

2.PCB板焊接实物及元器件

90ce7796-709a-11ef-bb4b-92fbcf53809c.jpg

04


程序设计

int main(void){ u16 set=0; u8 err=0; int key_num; int time1; int time2; //锁屏时间 char arrow=0; //箭头位子 delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 printf("串口功能正常\r\n"); Button4_4_Init(); //初始化与按键连接的硬件接口 OLED_Init(); //显示初始化 Walkmotor_Init(); BEEP_Init(); //蜂鸣器初始化

usart2_init(usart2_baund); //初始化指纹模块 PS_StaGPIO_Init(); OLED_Clear(); starting();//开机信息 logo err = RTC_Init(); //RTC初始化 if(err) { OLED_Clear(); Show_Str(12,13,128,20,"RTC CRY ERR!",12,0); OLED_Refresh_Gram();//更新显示 delay_ms(3000); } SysPartInit(); //系统参数初始化 while(1) {//锁屏界面 MAIN: OLED_Clear(); OLED_Show_Font(56,48,0);//显示锁图标 while(1) { time1++; Display_Data();//时间显示:每1000ms更新一次显示数据

if(DisFlag == 1) { DisFlag = 0; OLED_Fill(0,24,16,63,0); OLED_Refresh_Gram();//更新显示 } if((time1%100)==1) { //MFRC522解锁 time1=0; MFRC522_Initializtion(); Error=MFRC522_lock(); if(Error==0) { goto MENU; } else { OLED_Show_Font(56,48,0);//锁 } //手机蓝牙解锁密码1 Error=usart1_cherk((char*)sys.passwd1); if(Error==0) { OLED_Clear_NOupdate(); Show_Str(12,13,128,20,"蓝牙密码1:正确",12,0); OLED_Refresh_Gram();//更新显示 delay_ms(800); DisUnLock(); goto MENU; } else {} //手机蓝牙解锁密码2 Error=usart1_cherk((char*)sys.passwd2); if(Error==0) { sys.errCnt = 0; OLED_Clear_NOupdate(); Show_Str(12,13,128,12,"蓝牙密码2:正确",12,0); OLED_Refresh_Gram();//更新显示 delay_ms(800); DisUnLock(); goto MENU; } else {} } //指纹解锁 if(PS_Sta) //检测PS_Sta状态,如果有手指按下 { while(PS_Sta) { Error=press_FR();//刷指纹

if(Error==0) { goto MENU; //跳到解锁界面 } else { OLED_Show_Font(56,48,0);//锁 } } } //密码锁 key_num=Button4_4_Scan(); //按键扫描 if(key_num!=-1) { Error=password();//密码解锁函数 if(Error==0) { goto MENU; //跳到解锁界面 } else { OLED_Show_Font(56,48,0);//锁 } } delay_ms(1); }/********************主界面**************************/ MENU: OLED_Clear(); MENUNOCLR: OLED_Fill(0,0,20,48,0); //主页菜单显示 if(arrow<3) { Show_Str(5,arrow*16,128,16,"->",16,0);//显示箭头 set=0; } else { Show_Str(5,(arrow-3)*16,128,16,"->",16,0); set=3; } Show_Str(25,0,128,16,setup[set],16,0); Show_Str(25,16,128,16,setup[set+1],16,0); Show_Str(25,32,128,16,setup[set+2],16,0); Show_Str(0,52,128,12,"上 下 确定",12,0); OLED_Refresh_Gram();//更新显示

time2=0; while(1) { //超时锁屏 time2++; if(time2>100 | key_num==4){ OLED_Clear(); DisLock(); if(time2>100) beep_on_mode2(); time2 =0; OLED_Clear(); goto MAIN; } //手机蓝牙锁定

if(memcmp(USART_RX_BUF,"lock",4)==0) { DisLock(); goto MAIN; } //功能选项选择 key_num=Button4_4_Scan(); if(key_num) { if(key_num==13) { if(arrow>0)arrow--; goto MENUNOCLR; } if(key_num==15) { if(arrow<5)arrow++; goto MENUNOCLR; } if(key_num==16) { switch(arrow) { case 0:Add_FR(); break;//录指 case 1:Del_FR(); break;//删指纹 case 2:SetPassworld();break;//修改密码 case 3:Set_Time(); break; //设置时间 case 4:Add_Rfid(); break; //录入卡片 case 5:Massige(); break; //显示信息 } goto MENU; } } delay_ms(1); } } }

05


实验效果


90ea4688-709a-11ef-bb4b-92fbcf53809c.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pcb
    pcb
    +关注

    关注

    4292

    文章

    22755

    浏览量

    393084
  • STM32
    +关注

    关注

    2256

    文章

    10821

    浏览量

    352375
  • 智能门禁锁
    +关注

    关注

    0

    文章

    3

    浏览量

    1624
收藏 人收藏

    评论

    相关推荐

    智能可视化门禁系统项目_V2.0

    智能可视化门禁系统项目_V2.0
    发表于 08-16 16:27

    基于STM32智能门禁系统

    `我最近做了一个项目,有兴趣看的就赞一个,我就发源码上来基于STM32智能门禁系统;(1)界面显示用户号、密码输入界面;界面友好漂亮;(2
    发表于 11-22 21:20

    【NRF51822申请】智能门禁系统

    申请理由:项目构想:打造安全方便的生活环境。为家居的智能化增添可能性。验证成功后准备付诸于实施,在原有的智能基础上,提供另外一种备用的操作。使用手机的蓝牙功能以及APP来控制
    发表于 05-05 14:31

    诚接stm32项目

    诚接stm32项目价格私聊
    发表于 05-17 10:20

    STM32CubeEx快速生成Keil5项目添加的所有项目文件消失

    自动生成了,其他芯片的话这些都是要去配置寄存器了,好爽!2,打开自动生成的这个Keil5项目,添加自己的项目文件,编译通过3,当再回到STM32CubeEx,做些更改,如调整管脚,之后点击’生成代码
    发表于 10-22 08:52

    stm32项目搭建基础

    初学者吧stm32项目搭建基础好吧进入主题,我们现在要搭建一个stm32项目我还是把问题写在最开始把1. 注册keil你的keil需要注册当你编写了几行类似于helloworld的小
    发表于 08-23 08:47

    如何在IAR for ARM中创建STM32项目

    如何在IAR for ARM中创建STM32项目
    发表于 11-30 07:16

    STM32项目开发中超级实用技巧分享

    STM32项目开发中超级实用技巧一. 利用软启动打补丁二. 优化等级尽量选择不优化三. 合理利用开关总中断所有的热爱都要不遗余力,真正喜欢它便给它更高的优先级,和更多的时间吧!关于STM32其它
    发表于 01-21 06:22

    CubeMX如何创建stm32项目

    CubeMX如何创建stm32项目
    发表于 02-14 06:24

    基于HAL库的STM32项目问题描述

    问题描述最近在做的一个基于HAL库的STM32项目需要从多个SPI总线设备读取数据并通过DMA从串口发送,程序如下:(RxData为从SPI总线读取到的数据)sprintf(tempt, "
    发表于 02-28 11:25

    K3项目实施方案书

    K3项目实施方案书
    发表于 09-08 11:00 5次下载
    K3<b class='flag-5'>项目</b>实施方案书

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)

    STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)
    发表于 11-15 15:21 49次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>设计:基于<b class='flag-5'>STM32</b>F4的mp3、wav音乐播放器 (UCOSIII操作<b class='flag-5'>系统</b>、GUI控件)

    ADF2022项目开源

    电子发烧友网站提供《ADF2022项目开源.zip》资料免费下载
    发表于 07-05 09:42 2次下载
    ADF2022<b class='flag-5'>项目</b>开源

    STM32项目分享:智能家居(机智云)系统

    STM32项目分享:智能家居(机智云)系统
    的头像 发表于 07-28 08:10 467次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b>家居(机智云)<b class='flag-5'>系统</b>

    STM32项目分享:智能大棚/智慧农业系统

    01—项目简介1.功能详解基于STM32的智慧农业系统。功能如下:温湿度采集:使用DHT11温湿度传感器采集环境温湿度土壤湿度采集:
    的头像 发表于 08-30 12:15 275次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>项目</b>分享:<b class='flag-5'>智能</b>大棚/智慧农业<b class='flag-5'>系统</b>