亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 指纹考勤系统:本地存储 + ThingSpeak 云端同步

零部件与物料

零部件 数量 备注
Arduino Mega 2560 R3 1 主控,多串口、大内存
R301T 指纹模块 (ElectroPeak) 1 UART,指纹录入/比对
Micro SD/TF 卡模块 1 本地 CSV 日志存储
DS3231 RTC 时钟模块 1 I2C,掉电走时
3.5" TFT 彩屏 (MCUFRIEND) 1 触控交互、显示记录
NodeMCU ESP8266 (ESP-12E) 1 WiFi 上传 ThingSpeak
公母杜邦线 1 套 模块互联

所需工具

软件与在线服务

项目简介

一套完整的指纹考勤终端:员工刷指纹 → 核验身份 → 记录进/出时间 → 计算工时 → 存入 SD 卡 (CSV) → 有网时经 NodeMCU 上传 ThingSpeak 云端 → 管理员远程导出 CSV 分析。断网数据本地缓存,来网自动补传;掉电不丢失配置与缓存(EEPROM + RTC)。

ThingSpeak 快速接入

  1. 注册 ThingSpeak 账号
  2. 创建 Channel,添加 5 字段:Date、Name、Enter、Exit、WorkHours
  3. 记下 Channel ID 与 Write API Key
  4. Arduino IDE 安装 ThingSpeak 库(库管理器搜索)
  5. 测试 WriteMultipleFields 例程,确认能写入数据
Arduino 指纹考勤系统:本地存储 + ThingSpeak 云端同步
ThingSpeak 通道配置示例

系统架构

[指纹模块] → [Mega 2560] ← [RTC] → [SD 卡] ←→ [TFT 触控界面]
                                    ↓ 串口 (软串口/Serial2)
                              [NodeMCU ESP8266] → WiFi → [ThingSpeak Cloud]

核心功能模块

1. 指纹管理

  • 首次上电进入「录入模式」:串口提示输入 ID、姓名,采集 2 次指纹生成模板
  • 支持 11 位默认用户,可扩展至模块容量上限(通常 200+)
  • 考勤模式:识别成功 → 读取 RTC → 判断是「签到」还是「签退」 → 写入 SD 卡

2. 本地存储 (SD 卡)

CSV 格式:Date,Name,EnterTime,ExitTime,WorkHours
掉电不丢失,支持随时导出。

3. 云端同步 (NodeMCU)

Mega 通过串口将待上传记录发送给 NodeMCU(格式:Date*Name*Enter*Exit*WorkHours),NodeMCU 解析后调用 ThingSpeak 库写入 5 个字段。上传成功返回 1,失败返回 0,Mega 据此标记记录为「已同步」或「待重传」。

// NodeMCU 关键片段
#include "ThingSpeak.h"
#include 

char ssid[] = "YOUR_SSID";
char pass[] = "YOUR_PASS";
WiFiClient client;
unsigned long channelID = YOUR_CH_ID;
const char* writeAPIKey = "YOUR_WRITE_API_KEY";

String buffer = "";
void parseAndSend(String input) {
  // 以 * 分割 5 字段
  int i1=input.indexOf('*'), i2=input.indexOf('*',i1+1), i3=input.indexOf('*',i2+1), i4=input.lastIndexOf('*');
  String date=input.substring(0,i1);
  String name=input.substring(i1+1,i2);
  String enter=input.substring(i2+1,i3);
  String exit=input.substring(i3+1,i4);
  String wh=input.substring(i4+1);

  ThingSpeak.setField(1, date);
  ThingSpeak.setField(2, name);
  ThingSpeak.setField(3, enter);
  ThingSpeak.setField(4, exit);
  ThingSpeak.setField(5, wh);
  int httpCode = ThingSpeak.writeFields(channelID, writeAPIKey);
  Serial.print(httpCode == 200 ? "1" : "0"); // 反馈给 Mega
  delay(17000); // ThingSpeak 限流 15 秒
}

4. TFT 交互界面

  • 主页:实时时钟、今日考勤统计、指纹验证提示
  • 管理菜单:添加/删除用户、查看记录、网络配置、系统设置
  • 使用 MCUFRIEND_kbv + Adafruit_GFX 驱动

电路连接要点

  • TFT 屏蔽板直接插在 Mega 上,占用大量引脚;需用飞线从板底引出 SD 卡 SPI、RTC I2C、指纹 UART、NodeMCU 通信串口
  • NodeMCU 与 Mega 共地,TX↔RX 交叉连接(电平兼容 3.3V/5V,NodeMCU 输入 5V 容忍,Mega 读 3.3V 高电平正常)
  • 外接 12V 适配器供电,Mega 稳压输出 5V 给其余模块
Arduino 指纹考勤系统:本地存储 + ThingSpeak 云端同步

外壳制作

提供 .dwg 激光切割图纸,3mm 亚克力/木板切割折弯组装,预留指纹仪窗口、屏幕框、电源口、USB 口。

拓展建议

  • 增加 RFID 刷卡作为备选验证方式
  • 上传目标改为 Google Sheets / 自建 MQTT / InfluxDB + Grafana
  • 加入门禁联动:考勤通过同时驱动继电器开锁
  • 多语言 UI、人脸识别二次确认

代码

  • Mega 主程序:指纹、RTC、SD、TFT、NodeMCU 通信、状态机完整逻辑(附件 electropeak_attendance_code.zip)
  • NodeMCU 上传程序:解析串口数据 → ThingSpeak 写入 → 反馈结果(上文片段)
  • ThingSpeak 测试例程:库自带 WriteMultipleFields

自定义零件与外壳

  • electropeak_attendance_code.zip:完整 Arduino 代码包
  • attendanceboxlasercut.dwg:激光切割外壳图纸

原理图

见 Fritzing 文件(附件),含 Mega 接线、模块连接、电源分配。

制造工艺

  1. 借力云端释放IoT潜能:实现无缝连接与数据洞察
  2. DVD播放机:历史、技术与未来创新
  3. 基于 Arduino 与 Python 的可靠 RFID 考勤系统
  4. 基于 Infineon 3D 磁传感器的 Arduino 无线磁通讯实验
  5. SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
  6. Arduino + DHT11 + 以太网盾板温湿度数据记录仪
  7. DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
  8. Arduino Cloud 传感器塔:温度、动作与气体监测
  9. 智能地下室通风系统:Arduino 驱动的湿度自动控制
  10. 基于 Arduino 与 Google Sheets 的实时 RFID 考勤系统
  11. Arduino智能防碰撞预警系统:超声波测距+声光分级报警
  12. 现代企业云存储十大核心价值:从灾备到协作的全维度赋能