互联网指纹打卡机项目开发总结

时间:2024-02-21 17:55:57

说明

互联网指纹打卡机是我在OurEDA实验室时,和嵌入式开发者邱博一起开发的“智能硬件”项目,我作为后端开发者,为互联网指纹打卡机提供云端服务。

  • 每一个打卡机都有一个唯一的PSK,测试阶段设备的PSK为"b3VyZWRh"。
  • 打卡机通过微信Airkiss功能连入WiFi后,开始进行heartbeat心跳检测,每次心跳检测都会返回员工数据库最新一次修改的时间,打卡机比对后选择是否应该拉取最新的数据。
  • 打卡机有一个按钮,负责录入功能,按一次进入录入状态,按第二次取消录入。
  • 打卡机按下录入按钮后,进入录入指纹状态,员工录入指纹后,打卡机请求上传指纹接口,请求成功后打卡机退出录入指纹状态。
  • 手机在打卡机录入一次指纹后,在输入设备背后的PSK后,可以通过小程序编辑姓名、工号、手机信息,将这些信息上传到员工创建接口,系统会自动将打卡机上传的指纹与手机上传的信息结合起来。
  • 打卡机在正常工作状态下,员工按压第一次指纹为签到,按压第二次为签退。

技术与架构

  • 硬件采用FPC1020 + node mcu,指纹识别模块采用IDWD1020
硬件模块示意图
* 后端采用koa + sequelize + redis技术栈
后端架构图

项目实现效果

硬件实现与控制软件
后台打卡历史页面
后台某员工打卡详情页面
使用微信Airkiss功能给设备提供无线网密码

一些有趣的点

  • 打卡,什么时候算是一天的结束?经过和硬件开发人员的商量,我们决定使用凌晨三点作为一天的划分;
  • 联调时出现了一个Bug,硬件无法正确解析服务器下发的json串。后来发现原因是硬件的缓冲区和内存极其有限,服务器下发数据包过大,导致json串被截断,所以解析数据失败。经过协商,决定限制服务器下发的json串大小,从而解决了问题。