
STM32按键密码锁--带指纹
简介
全插件器件方便焊接,支持按键解锁、指纹解锁、密码断电记忆
简介:全插件器件方便焊接,支持按键解锁、指纹解锁、密码断电记忆开源协议
:GPL 3.0
描述
项目介绍
基于立创-地阔星STM32的密码锁项目;全插件器件方便焊接,支持按键解锁、指纹解锁、密码断电记忆。

项目分析

将相关引脚进行引出,需注意串口引脚与无源蜂鸣器的PWM引脚,需使用硬件串口与硬件定时器,不是所有引脚都有的;

12个6 * 6按键,支持0-9密码按键,*、# 密码按键,每个按键各有作用;

使用无源蜂鸣器进行报警提示,可以实现不同音调,D1第二个位续流二极管,串联75R是防止电流过大损害蜂鸣器;

使用插件AT24C02实现断电存储密码;

使用0.96寸OLED屏幕显示数据,这里使用成品模块,还需要自己再购买一个1 * 4p排母;

支持HLK的ZW101指纹模块解锁,这里连接指纹模块的排线需要注意线序买反序的;

使用两个5mm的指示灯做状态提示;
功能逻辑说明
- 密码固定为6位,初始密码为123456,密码允许出现重复数字;
- 按键输入时,蜂鸣器需要进行按下声音提示,当SW10(字符*)按下时,清除当前输入的密码,相当于重新输入;
- 当输入完密码后,单击SW11(字符#)可以确认密码输入,若密码正确,则进行声音提示,且绿色指示灯常亮3s;若密码不正确,则红色指示灯常亮1s,同样需要进行声音提示;
- 输入完密码后,需要等待指示灯熄灭后才能重新输入,比如正确输入密码后,再次重新输入需要等待3s,错误输入密码后,需要等待1s;
- 长按SW11(字符#)按键可以修改密码,此时绿色指示灯500ms闪烁;若输入密码超过6位或不足6位,则进行声音提示,红色指示灯点亮1s,清除相关输入的密码,1s后可重新输入;密码符合6位,短按SW11(字符#)可确认修改密码,此时绿色指示灯常亮2s并进行声音提示,2s后才能重新操作按键进行解锁或重新修改密码。
- 长按SW10(字符*)按键可以添加指纹,添加指纹时,绿色指示灯500ms闪烁,添加指纹成功后,绿色指示灯常亮2s并进行声音提示,若添加失败,红色指示灯常亮2s,同样需要进行声音提示,添加指纹的时间为3min,超时视为添加失败;添加指纹时操作其余按键是无效的;必须等待指示灯还原为熄灭状态才能正常操作按键解锁或修改密码;
- 指纹模块解锁与按键密码解锁一致,若指示灯没有熄灭或进入了修改密码、新增指纹状态,此时是无法解锁的,但是支持按键输入密码时,此时指纹模块是可以匹配指纹并解锁的,解锁成功后与密码解锁成功状态一致;若密码正确,则进行声音提示,且绿色指示灯常亮3s;若密码不正确,则红色指示灯常亮1s,同样需要进行声音提示;
- 一旦解锁成功,不管是指纹解锁还是密码解锁,需要将之前的输入密码进行清除,给下一次输入做准备;
- 声音提示需要有差异;
- 密码按下时,需要显示当前输入的密码长度,密码不能明文显示,需要显示***;
- 密码错误或密码正确,需要在屏幕上显示对应的提示信息,分别为“ERR”、“OK”
关于代码编写
代码全部使用Vscode for stm32进行编写,全程使用AI,我仅给出功能需求加引脚描述;
相关代码在附近中会给出,烧录可使用STlink+STM32CubeProgrammer进行;烧录文件在STM32-coded-lock\project\build\Debug中可以找到;
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










