2024-09-01
售卖作品
00

目录

需求
实物图
上位机图
程序流程图
问询、帮助

需求

基于stm32单片机的指纹识别考勤系统

硬件:

stm32f103最小系统板、as608指纹模块、0.96寸oled显示屏、usb转ttl模块、温湿度dht11传感器、蜂鸣器、 GY-906红外测温模块、电磁门开门指示灯led

单片机软件功能:

(1)测温湿度显示到oled屏幕,并把温湿度串口发给上位机

(2)红外测温显示到oled屏幕,并把温度串口发给上位机

(3)用单片机按键搭配as608指纹模块,实现指纹录入、指纹删除功能

(4)指纹正确,oled显示ok,电磁门开门指示灯led亮2秒,表示正常开门,然后led熄灭

(5)指纹错误,oled显示error,蜂鸣器响5秒,表示开门失败

上位机电脑软件功能:

(1)用python写一个显示界面

(2)显示出单片机发过来的温湿度、红外测温

(3)可以通过上位机软件删除指纹,并与单片机通信同步

(5)显示已打卡的人数和未打卡人数(即是录入的所有指纹中,已打卡和未打卡的)

交付:

(1)单片机程序

(2)上位机程序

(3)电路图

(4)pcb图

(5)实物

(6)视频使用教程

(7)lunwen材料

实物图

在这里插入图片描述

上位机图

在这里插入图片描述

程序流程图

graph LR
A[开始] --> B{按键状态检测}
B -- 按键按下 --> C[消抖处理]
C --> D{按键动作识别}
D -- 按下 --> E[生成按下事件]
D -- 释放 --> F[生成释放事件]
E --> G[系统处理按下事件]
F --> H[系统处理释放事件]
G --> I[结束]
H --> I[结束]
B -- 无按键按下 --> I[结束]
graph LR
A[开始] --> B{模式检测}
B -- 模式0 --> C[显示考勤]
B -- 模式1 --> D[显示录入指纹]
B -- 模式2 --> E[显示删除指纹]
C --> F[显示温湿度]
C --> G[显示红外测温]
C --> H[显示指纹统计]
D --> I[显示录入指纹提示]
E -- 无指纹ID --> J[显示无ID删除提示]
E -- 有指纹ID --> K[显示删除指纹ID提示]
F --> L[结束]
G --> L[结束]
H --> L[结束]
I --> L[结束]
J --> L[结束]
K --> L[结束]

录指纹流程的Mermaid流程图:

graph LR
A[开始] --> B{获取指纹图像}
B -- 成功 --> C[生成特征]
C -- 成功 --> D{再次获取指纹图像}
D -- 成功 --> E[生成第二个特征]
E -- 成功 --> F[对比两次指纹]
F -- 成功 --> G[生成指纹模板]
G -- 成功 --> H[储存模板]
H -- 成功 --> I[结束]
B -- 失败 --> J[结束]
C -- 失败 --> J[结束]
D -- 失败 --> J[结束]
E -- 失败 --> J[结束]
F -- 失败 --> J[结束]
G -- 失败 --> J[结束]
H -- 失败 --> J[结束]

刷指纹流程的Mermaid流程图:

graph LR
A[开始] --> B[蜂鸣器响一次]
B --> C[获取指纹图像]
C -- 成功 --> D[生成特征]
D -- 成功 --> E[高速搜索]
E -- 成功 --> F[显示成功并开门]
E -- 失败 --> G[显示错误]
D -- 失败 --> G[显示错误]
C -- 失败 --> G[显示错误]
F --> H[结束]
G --> H[结束]

删除指纹流程的Mermaid流程图:

graph LR
A[开始] --> B[蜂鸣器响一次]
B --> C[输入指纹ID]
C -- 输入有效 --> D[删除指纹]
D -- 成功 --> E[显示成功]
D -- 失败 --> F[显示错误]
C -- 输入无效 --> F[显示错误]
E --> G[结束]
F --> G[结束]
graph LR
A[开始] --> B{初始化DHT11}
B -- 成功 --> C[复位DHT11]
C --> D{检测DHT11回应}
D -- 存在 --> E[读取数据]
E -- 成功 --> F[解码数据]
F -- 成功 --> G[返回温湿度数据]
D -- 不存在 --> H[结束]
E -- 失败 --> H[结束]
F -- 失败 --> H[结束]
G --> H[结束]
graph LR
A[开始] --> B[初始化SMBus]
B --> C[发送开始位]
C --> D[发送设备地址和读取命令]
D --> E[发送重复开始位和设备地址]
F[接收数据]
E --> F
F --> G[发送停止位]
G --> H[计算PEC]
H --> I[返回温度数据]
I --> J[结束]
graph LR
A[开始] --> B[初始化系统]
B --> C[检测PS_Sta状态]
C -->|有手指按下| D[刷指纹处理]
C -->|无手指按下| E[检查键盘输入]
E -->|键盘输入| F{键盘键值检测}
F -->|键值1| G[进入录指纹模式]
F -->|键值2| H[进入删除指纹模式]
F -->|键值3| I[确认删除指纹]
F -->|键值4| J[返回主页]
F -->|其他键| K[忽略其他键值]
G --> L[录入指纹流程]
H --> M[查找可删除的ID]
I --> N[删除指纹流程]
J --> O[清除签到人数]
L --> P[结束录入指纹]
M -->|找不到ID| Q[显示无ID可删除]
M -->|找到ID| R[显示可删除的ID]
P --> S[更新指纹库和显示]
R --> T[执行删除指纹]
T --> U[更新指纹库和显示]
Q --> V[结束删除指纹]
U --> V
S --> W[继续检测PS_Sta状态]
V --> W
W --> C
graph LR
A[开始] --> B[初始化系统]
B --> C[打开串口]
C --> D{解析串口数据}
D -- 温湿度数据 --> E[显示温湿度]
D -- 红外温度数据 --> F[显示红外温度]
C -- 按键1 --> G[发送录指纹指令]
C -- 按键2 --> H[发送删除指纹指令]
C -- 按键3 --> I[发送确认删除指令]
C -- 按键4 --> J[发送返回主页指令]

问询、帮助

csharp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!