目录
项目资料源码
链接:https://pan.baidu.com/s/1uTqaEsYYhRnU7UHi4LTRxg?pwd=XZY0
提取码:XZY0
--来自百度网盘超级会员V5的分享
通知
由于所使用的K210集成板厂家准备停产了,需要的小伙伴可以移步看一下另一款人脸识别项目,功能也可达到
人脸打卡https://blog.csdn.net/herui_2/article/details/130686040?spm=1001.2014.3001.5502
关注微信公众号--星之援工作室 发送关键字(项目清单)
可获取项目清单资料
➡️🫡🫡🫡🫡🫡🫡🫡🫡➡️
⚠️⚠️(本文章仅提供思路和实现方法,并不包含代码,需要代码的同学请自行联系博主)
⚠️⚠️(有疑问或需要定制或者技术支持等,也请自行联系博主)⚠️⚠️
一 连线图
-
原理图
-
PCB电路图
-
实物图展示
-
指示状态
开发板本身自带一个LED ,这个LED作为我们查看网络连接状态和获取数据状态的说明
(1)灯开机闪烁一下,说明我们已经连接上云平台
(2)灯8秒状态改变一下,心跳保活机制
二 功能概括
-
下位机
(1). 控制步进电机进行模拟门的使用,若开门后,默认10秒后自动关闭
(2). RGB灯的控制,返回各种颜色的LED灯效果以区分硬件设备状态(详情见副录)
(3). K210芯片通讯,使用串口与K210人脸识别模块进行HEX协议通讯
(4). ESP8266自动连接OneNET云平台,默认使用MQTT协议,手机端需要订阅该硬 件端发布的主题进行MQTT通讯.(注:需要自行开启WIFI热点,修改WIFI热点参数WIFI名字:hhh .WIFI密码:12345678)
(5). 处理MQTT主题发送过来的消息(详情见指令系统)
-
上位机
(1). 三个权限登录系统,管理员,教师,学生。
(2). 管理员端:修改信息审核,查看全部开门记录,权限设置,录入,删除人脸.
(3). 教师端:修改个人信息(录入,删除自己人脸,基本信息),查看自己以及班级学生开门记录.
(4). 学生端:修改个人信息(录入,删除自己人脸,基本信息),查看开门记录
(5). 自动订阅主题,回复下位机心跳包.
-
云平台端
(1). 登录OneNET云平台后可以看到后台数据,这个数据会实时更新,只要底层获取到有效数据,则会向上发送数据。
(2). 获取开门的用户id,以及门状态,显示到平台中,用户id为0时则表示无人开门
-
K210端
(1). 感兴趣可以去看,这里我们已经调成了我们所要使用的固件了
使用说明 (Github): github.com/sipeed/MF1-User-Manual
硬件原理图/数据手册: https://dl.sipeed.com/shareURL/MAIX/HDK
固件/资源包资料下载: http://api.dl.sipeed.com/shareURL/MF_Module
Sipeed HardWare: github.com/sipeed/Sipeed_HardWare
三 底层代码使用方式
- 先根据原理图进行连线,连接好以后在做后面的操作
- 打开手机热点 热点名字:hhh 密码:12345678
- 打开程序(硬件由工作室出的可以忽略下载程序这部分)
- 查看云平台数据
显示有效数据
四 APP使用方式
1. 本地数据库设计
| ||||
Uid | Int | 主键 | ||
Uphone | Char(11) | 唯一 | ||
Upassword | Char(20) | |||
Uname | Char(20) | 姓名 | ||
Utype | int | 不为空 | 0-学生,1-教师,2管理员 | |
Uclass | Char(50) | 班级,老师有多个班级用,号隔开 | ||
Ustate | Int | 状态 | 不为空,默认0 | 0-正常;1-禁用 |
Usex | Int | 性别 | 不为空 | 0-女;1-男 |
Uage | Int | 年龄 | 不为空 | |
ufid | int | 人脸id | 唯一 |
班级表 | ||||
cname | Char(20) | 主键 | ||
Cnum | Int | 人数 | ||
开门记录表 | ||||
did | Int | 门的id | ||
uid | int | 开门人id | ||
Odate | Char(20) | 开门日期 | ||
Otime | Char(20) | 开门时间 |
门表 | ||||
did | Int | 门的id | ||
dname | Char(50) | 门的名称,可自定义 |
2. 下载APP
3. 功能使用说明
因为是使用本地数据库,所以我们的Android是默认24H在线,只要Android在线时才会收到开门记录,如果Android不在线且使用录入的人脸信息开门的,只要在云平台中查看开门记录
管理员端:管理员端不能进行账号创建,只能出厂设置,
管理员账号:123456
管理员密码:admin
教师端:只能由管理员创建教师账号,可以查看班级学生开门记录
学生端:可以在注册界面创建学生账号 ,无限制要求
4. 根据视频进行账号的建立
五 整体效果演示
副录(下位机自动把接收到的HEX指令翻译成指令系统)
灯光系统提示
灯光提示 | 释义 |
红灯常亮 | 正在初始化,MQTT服务器连接失败 人脸模块初始初始化失败 |
绿灯常亮 | MQTT服务器连接成功 人脸模块初始初始化成功 每10秒发送一次心跳包 |
蓝灯亮起 | 进入录入人脸模式 |
黄灯闪烁一下 | 第一次录入人脸成功 |
黄灯闪烁一下 | 第二次录入人脸成功 |
黄灯闪烁一下 | 第三次录入人脸成功(第三次成功之后自动返回绿灯常亮) |
红灯闪烁一下 | 第一次录入人脸失败 |
红灯闪烁两下 | 第二次录入人脸失败 |
红灯闪烁三下 | 第三次录入人脸失败 |
蓝灯闪烁一下 | 人脸识别成功 |
指令系统-上位机->下位机
指令参数 | 释义 |
Heart:1 | 心跳包应答 |
DeleteFace:[ID] 例:DeleteFace:0 | 删除人脸 ID(0-254), 设为 0xFF,则删除所有人 |
AddFace:[ID] | 添加人脸 ID(0-254) 在录入三张人脸特征后执行 |
GiveUpFace:[ID] | 添加人脸 ID(0-254) 抛弃之前录入的人脸特征(任意执行) |
CheckFace:1 | 对比人脸 |
Feature1:[ID] | 添加第一张人脸特征 ID(0-254) |
Feature2:[ID] | 添加第二张人脸特征 ID(0-254) |
Feature3:[ID] | 添加第三张人脸特征 ID(0-254) |
CheckDR:0 | 检测门禁状态 |
StateDR:[State] | State=1,开门状态控制 State=0,关门状态控制 |
指令系统-下位机->上位机
指令参数 | 释义 |
Heart:0 | 心跳包请求 |
CheckFace:[ID] | 返回检测到底人脸ID,若为0,则为陌生人脸 |
DeleteFaceOK:[ID] | 删除人脸 ID(0-254)指定删除成功 |
Feature1OK:[ID] | 添加(ID)第一张人脸特征成功 |
Feature2OK:[ID] | 添加(ID)第二张人脸特征成功 |
Feature3OK:[ID] | 添加(ID)第三张人脸特征成功 |
AddFaceOK:[ID] | 添加(ID)人脸成功 |
DR:[State] | State=1,处于开门状态 State=0,处于关门状态 |
ERROR:[ State] | State=1,无有效指纹 State=2,输入合法指令 |