跳转到内容

项目架构概述

项目架构概述

本节介绍资产追踪项目,该项目利用 RFID 技术与 ESP32 微控制器相结合,创建用于人员和资产管理的签到/签退系统。学习完本节后,您将能够:

  • 理解基于 RFID 的追踪系统的整体架构
  • 识别所涉及的关键硬件和软件组件
  • 描述从 RFID 扫描到数据库记录的数据流
  • 认识本项目在阿里巴巴国际站上应对的客户场景

开始本节前,请确保您熟悉:

  • ESP32 基本功能(参见第 01 章)
  • MQTT 协议基础(参见第 06 章)
  • Node-RED 基本概念(参见第 09 章)
  • Docker 容器基础(参见第 07 章)

阿里巴巴国际站上需要以下功能的国际买家:

  • 工厂考勤追踪:记录员工签到/签退时间
  • 工具和资产管理:跟踪设备、工具或资产的借用/归还
  • 库存进出记录:记录物品进出仓库
  • 工单追踪:将工人时间与特定生产订单关联
痛点本方案的解决方案
手动时间记录容易出错RFID 扫描提供自动化、准确的记录
纸质记录难以分析数字记录实现报告和分析
追踪不力导致工具丢失每次扫描记录谁拥有什么资产及何时
难以计算劳动力成本时间记录自动关联到项目
┌─────────────────────────────────────────────────────────┐
│ 资产追踪系统 │
├─────────────────────────────────────────────────────────┤
│ │
│ [RFID 标签] ──→ [RC522 读取器] ──→ [ESP32] │
│ ↑ │ │
│ │ │ MQTT/HTTP │
│ │ ↓ │
│ │ [WiFi 网络] │
│ │ │ │
│ │ │ │
│ ┌────┴──────────────────────────────────────┴──────┐ │
│ │ 服务端技术栈(Docker) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ TimeTagger│ │ Node-RED │ │ 数据库 │ │ │
│ │ │ (REST API)│←─│ (流程) │←─│ (JSON 文件) │ │ │
│ │ └──────────┘ └──────────┘ └──────────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
组件角色技术说明
RFID 标签人员/资产的唯一标识无源标签,13.56 MHz(高频),无需电池
RC522 读取器读取 RFID 标签 UIDSPI 接口,仅 3.3V,读取范围约 3-5cm
ESP32主控制器WiFi + MQTT,读取标签,控制 LED
TimeTagger时间记录软件开源,REST API,Docker 容器
Node-RED流程自动化协调 MQTT/HTTP 通信
文件存储本地签到状态服务器上的 JSON 平面文件
1. 用户在读取器上刷卡
2. ESP32 通过 RC522(SPI)读取标签 UID
3. ESP32 将 UID 发布到 MQTT 主题
4. Node-RED 接收 MQTT 消息
5. Node-RED 检查服务器上是否存在签到文件
6. 如果文件不存在 → 这是签到操作
7. Node-RED 创建包含开始时间戳的 JSON 文件
8. ESP32 点亮绿色 LED 表示成功
1. 同一用户再次刷卡
2. ESP32 通过 RC522 读取相同 UID
3. ESP32 将 UID 发布到 MQTT 主题
4. Node-RED 接收 MQTT 消息
5. Node-RED 检查签到文件是否存在
6. 如果文件存在 → 这是签退操作
7. Node-RED 读取文件,添加结束时间戳
8. Node-RED 通过 HTTP POST 将完整记录发送到 TimeTagger API
9. Node-RED 删除本地文件
10. ESP32 点亮红色 LED 表示完成
┌──────────┐
│ 空闲 │
│ (等待) │
└────┬─────┘
┌──────▼──────┐
│ 检测到标签 │
└──────┬──────┘
┌──────▼──────┐
否 │ 文件存在? │ 是
┌────────┤ 在服务器上 ├────────┐
│ └─────────────┘ │
▼ ▼
┌──────────┐ ┌──────────┐
│ 签到 │ │ 签退 │
│ 创建JSON │ │ 读取文件 │
│ 文件 │ │ POST API │
└────┬─────┘ │ 删除文件 │
│ └────┬─────┘
│ │
└──────────┬─────────────────┘
┌──────────┐
│ 完成 │
│(LED反馈)│
└──────────┘
决策选择理由
RFID 频率13.56 MHz(HF)读取距离和标签成本的良好平衡;适用于近距离追踪
读取器模块RC522广泛可用,低成本(约 $2),支持 Arduino 库
数据存储服务器上的平面文件简单,无需依赖数据库;TimeTagger 作为最终记录
服务器通信MQTT + HTTPMQTT 用于实时事件;HTTP REST 用于 TimeTagger API
状态持久化Node-RED JSON 文件在服务器重启后仍然保持;易于检查和调试

本章包含以下部分:

章节主题重点
05-02RFID 读取器硬件设置将 RC522 模块连接到 ESP32
05-03RC522 模块集成库设置和 SPI 配置
05-04RFID 标签 UID 读取读取和验证标签标识符
05-05TimeTagger 开源软件安装和配置 TimeTagger
05-06REST API 认证获取和使用 API 令牌
05-07HTTP POST 请求实现构建和发送 POST 请求
05-08签到 API 集成完整的签到/签退流程
05-09状态管理逻辑基于文件的状态追踪
05-10LED 状态指示灯操作的视觉反馈
05-11技术能力评估评估解决方案边界
05-12定制化可能性适应不同的客户需求

完成本章后,您应该能够:

  • 向客户解释完整的签到/签退流程
  • 识别架构中每个组件的作用
  • 描述基于 RFID 的追踪如何解决工厂考勤需求
  • 理解签到和签退状态管理之间的区别

关键要点:

  1. 系统架构:RFID 标签 → RC522 → ESP32 → MQTT → Node-RED → TimeTagger
  2. 两阶段流程:签到(创建文件)和签退(发送到 API + 删除文件)
  3. 状态管理:服务器上文件的存在性决定签到还是签退行为
  4. 客户匹配:解决工厂考勤、工具追踪和资产管理需求