零基础学会制作 基于STM32/51单片机的考勤机系统设计/考勤机/智能门锁/智能闸机/打卡器/指纹识别

项目介绍

针对此问题,本文提出了一种基于单片机的考勤机系统设计方案,旨在提高考勤管理的效率与准确性。本设计综合应用了指纹采集模块、按键模块、测温模块、报警模块、语音模块、显示模块和无线通信模块,开机连接无线通讯模块,指纹检测模块对考勤人员的指纹进行识别,读取指纹参数,通过红外测温模块来检测用户的体温,上传数据库,在平板上显示记录,指纹检测和识别错误时还可以进行语音播报。

功能介绍

(1)指纹识别功能:识别员工的指纹
(2)指纹添加与删减功能:添加或删减员工的指纹
(3)红外传感器检测温度:通过红外线测温检测出员工打卡时的体温
(4)语音播报功能:员工打卡成功或失败进行播报
(5)温度与指纹记录功能,并可查询:在手机上记录员工的打卡情况
基于单片机的考勤机系统设计旨在创建一个高效、可靠且具有多功能特性的考勤管理解决方案。本设计综合应用了指纹采集模块、按键模块、测温模块、语音模块、报警模块、显示模块和无线通信模块,以满足现代工作场所对考勤精确性、健康监测和安全性的需求。本考勤机系统基于强大的单片机核心,通过集成多个功能模块,实现员工考勤记录、体温检测、语音播报和数据传输等功能。系统设计以用户友好和高度自动化为核心原则,旨在提高考勤数据处理的效率和准确性,同时确保员工的健康安全。采用高精度指纹识别技术,员工通过指纹验证进行打卡,保证考勤数据的准确性和防伪性。提供用户交互接口,包括考勤机的设置、模式选择和手动输入功能。用于管理系统设置或在特殊情况下进行手动考勤记录。当系统检测到异常情况(如指纹错误)时,报警模块将发出蜂鸣报警。通过显示屏,实时显示考勤状态、体温测量结果和系统信息,为用户提供直观的反馈,支持蓝牙技术,实现考勤数据传输到手机端。

所用模块

为了便于日常考勤管理,监测员工日常健康状态,设计一基于单片机的考勤机系统,该系统以单片机为核心,能够实现指纹打卡、体温检测与记录、语音播报等功能,整个系统主要包括指纹采集模块、按键模块、测温模块、语音模块、报警模块、显示模块和无线通信模块。

系统原理图

在这里插入图片描述
在这里插入图片描述

实物图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

#include “stm32f10x.h”
#include “delay.h”
#include “sys.h”
//#include “bmp.h”
#include “button.h”
#include “lcd12864.h”
//#include “oled.h”
#include “as608.h”
#include “timer.h”
#include “usart2.h”
#include “usart.h”
#include “24cxx.h”
#include “mlx90614.h”
#define size_pass sizeof(my_pass_word) //AT24C02 30-39
#define size_admin sizeof(admin_key) //AT24C02 40-49

void clear_pass_word(void); //清除密码暂存数组 清除为{16,16,16,16,16,16}
void admin_flag_limit(void); //限制功能选择的大小
void admin_zhiwen_limit(void);//限制指纹功能选择的大小

void admin_show(void); //管理界面功能选择显示
void admin_zhiwen_show(void); //管理指纹界面功能选择显示
void admin_mima_show(void); //管理指纹界面功能选择显示
void admin_IDcard_show(void); //管理ID卡界面功能选择显示

void AT24CXX_Config(void);//上电后密码配置

void num2char(uint8_t *str, float number, u8 g, u8 l);

u8 state=3; //显示界面状态标志 初始5为第一解锁界面
u8 key; //按键值
u8 my_pass_word_init[6] = {1,1,1,1,1,1};
u8 admin_key_init[6] = {2,2,2,2,2,2};

u8 pass_word[6]; //暂时存放输入的密码
u8 my_pass_word[6]; //我的密码(解锁密码)
u8 admin_key[6]; //管理员密码
//一些标志位的定义
u8 pass_word_state=0; //输密码时判断是输入了第几位
u8 mima_show_state=0; //密码显示标志位
u8 admin_flag=1; //管理员功能选择标志位
u8 admin_zhiwen_flag=1; //指纹管理功能标志位
u8 add_zhiwen_flag=0; //判断录取指纹是否成功
char Kahao,BJCS=0;
int tempEE,WD[7],wdjs=0;;//用于在lcd显示的
static char table[]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’};

int main(void)
{
// u16 len;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2

SystemInit();		// 配置系统时钟为72M 
delay_init();    	//延时初始化	
uart_init(9600);	//串口初始化为9600

AT24CXX_Init();	//AT24C02初始化 
usart2_init(usart2_baund);//初始化串口2 与指纹通信用,同时初始化定时器
PS_StaGPIO_Init();	//初始化指纹模块读状态的引脚
SMBus_Init();//红外测温初始化
Lcd_Init();	
KEY_Init();
LCD_Display_Words(1,0,"  系统初始化中  ");
//若未正确连接指纹模块,将在这一步卡住,可更改这个函数使程序向下进行
Shake_to_AS608();  //用来与指纹模块握手,检测指纹模块和获取一些模块的信息
//若未正确连接AT24C02模块,将在这一步卡住,可更改这里使程序向下进行
while(AT24CXX_Check())//检测不到24c02
{
	LCD_Display_Words(0,0,"未检测到存储模块");
	delay_ms(500);
}

delay_ms(500);

//每次运行函数从外部存储器调出密码,达到调电存储的目的
//从外部存储读取密码
AT24CXX_Config();

key=Key_Scan();
if(key==xx)
{
AT24CXX_Write(40,(u8*)admin_key_init,size_admin);
delay_us(200);
AT24CXX_Read(40,admin_key,size_admin);

}

资料下载链接

「实物制作资料.rar」,来自夸克网盘分享。
夸克网盘无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
/9ac5346gXR😕
链接:https://pan.quark.cn/s/d2ad8fd8cd73
提取码:d1hQ

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值