STM32F103-智能门禁卡系统
1.基本介绍
1.用到硬件
序号 | 名称 | 备注 |
---|---|---|
1 | STM32F103单片机 | 我用的是STM32F103C8T6 |
2 | AS608指纹模块 | 指纹开锁 |
3 | SIM900A模块 | 使用验证码 |
4 | 4X4矩阵按键 | 密码输入使用 |
5 | OLED显示屏 | 使用界面显示(我的是OLED IIC接口的) |
6 | EEPROM | 使用保存密码(我的是AT24C02) |
7 | 继电器 | 模拟开锁 |
8 | 蜂鸣器 | 按钮响 |
2.功能介绍
----------------------------------------------------------------------------------------------------------
三次输入密码错误 锁定需要通过验证码解锁 修改密码需要输入原密码。如果原密码输入错误,还需要修改验证码。 添加和删除指纹 进入界面添加或删除也需要输入原密码。 ----------------------------------------------------------------------------------------------------------
2.代码
因为代码太多,我不会把它们都贴在这里。需要阅读代码。
void init() {
printf(" Q:844797079"); }
但我也写了一些笔记
指纹模块
我也有笔记,可以去下面的链接阅读 指纹介绍和代码
SIM900A模块
我也有笔记,可以去下面的链接阅读 SIM900A相关介绍和代码
矩阵按键
我也有笔记,可以去下面的链接阅读 相关介绍矩阵按钮和代码
主程序
#include "stm32f10x.h" #include "OLED_I2C.h" #include "delay.h" #include "timer.h" #include "key.h" #include "stdio.h" #include "string.h" #include "led.h" #include "relay.h" #include"beep.h"
#include "sim900a.h"
#include "usart.h"
#include "as608.h"
#include "at24cxx.h"
#include "myiic.h"
int main()
{
uint8_t result;
OLED_Init(); //OLED屏幕初始化
usart1_init(57600); //串口1初始化 用于和指纹模块通信
usart3_init(115200); //串口3初始化 用于和SIM900A模块通信
matrix_keys_init(); //按键初始化
timer3_init(); //定时器3初始化
timer4_init(); //定时器4初始化
led_init(); //LED初始化
relay_init(); //继电器初始化
beep_init(); //蜂鸣器初始化
while(sim900a_init()); //SIM900A初始化
oled_show_title(); //OLED显示标题 "智能门禁"
as60x_wak_init(); //指纹模块初始化
IIC_Init(); //IIC 初始化
at24c02_read_data(0,password_source,6); //读取AT24C02存放的密码进行存放
while(1)
{
//验证指纹操作 这里是设置了必须在 主界面才能进行
if(finger_status == FINGER_EXIST && curr_inteface == 0)
{
as608_process(); //验证指纹及相关操作
}
if(cls_inteface) cls_process(); //显示和参数复位
if(key_flag >= 10) key_process(); //按键处理相关操作
if(oled_flag >= 85) oled_process(); //显示处理相关操作
}
}
项目展示
这里我就简单的挑几个功能进行动图演示吧
验证密码开锁演示
指纹验证开锁演示
添加指纹演示
删除指纹演示
效果图
总结
效果图。。。。太乱了,拿杜邦线。。。。。不可靠。抽空如果有时间学画一个板子吧。。。。
如果觉得这篇文章对你有用。欢迎大家点赞、评论哈哈 继续加油!