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

Arduino RFID 门禁系统:从原理到实战的完整指南

RFID 技术原理

RFID(射频识别)由**标签(应答器)**和**读写器(收发器)**组成。读写器天线产生高频电磁场,无源标签进入感应区后,线圈感应得电为芯片供电。标签通过**负载调制**(切换天线负载改变读写器天线功耗)或**回散射耦合**将数据传回读写器。

MFRC522 模块与 Arduino 连接

采用 MIFARE 协议标签(1KB 内存,13.56 MHz,感应距离 ≤10 cm)与 MFRC522 读写器(SPI 接口,VCC 接 3.3V,其余引脚 5V 兼容)。连接对照表:

MFRC522Arduino UnoArduino Mega
SDA (SS)1053
SCK1352
MOSI1151
MISO1250
RST99

门禁系统功能流程

  1. 上电等待录入**主卡**,存入 myTags[0]
  2. 进入普通模式:刷未授权卡 → "Access Denied";刷授权卡 → 舵机转动开锁,显示 "Access Granted"
  3. 刷主卡进入**编程模式**:再刷已授权卡 → 删除该卡;刷新卡 → 添加授权
  4. 门打开时显示 "Door Opened",接近传感器检测门关闭后自动上锁复位

核心代码解析

获取标签 UID

uint8_t getID() {
  if (!mfrc522.PICC_IsNewCardPresent()) return 0;
  if (!mfrc522.PICC_ReadCardSerial()) return 0;
  tagID = "";
  for (uint8_t i = 0; i < 4; i++) {
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  tagID.toUpperCase();
  mfrc522.PICC_HaltA();
  return 1;
}

MIFARE Classic 标签 UID 为 4 字节,拼接为十六进制字符串并转大写。

主循环逻辑

void loop() {
  int proximity = analogRead(A0);
  if (proximity > 200) { // 门关闭
    if (getID()) {
      if (tagID == myTags[0]) { // 主卡 → 编程模式
        // 添加/删除标签逻辑...
      } else { // 普通卡 → 验证授权
        for (int i = 0; i < 100; i++) {
          if (tagID == myTags[i]) {
            myServo.write(170); // 开锁
            correctTag = true;
            break;
          }
        }
        if (!correctTag) lcd.print("Access Denied!");
      }
    }
  } else { // 门打开
    lcd.print("Door Opened!");
    while (analogRead(A0) <= 200); // 等待关门
    myServo.write(10); // 上锁
  }
}

硬件清单

完整代码已整合在文末,包含库引脚定义、初始化、主循环及辅助函数,可直接上传使用。

制造工艺

  1. Arduino RFID 门锁系统 – RC522 模块实现安全门禁
  2. 打造安全的 Arduino RFID 门锁——分步指南
  3. 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
  4. 基于 Arduino、键盘与线性执行器的密码门锁
  5. Arduino Nano 驱动 128x64 OLED 实时运行康威生命游戏 (元胞自动机)
  6. eDOT:基于 Arduino 的精密时钟与气象站,内置红外遥控
  7. 基于 Arduino 与 Google Sheets 的实时 RFID 考勤系统
  8. Arduino 合成乐音:从零实现 88 键钢琴全音域
  9. 基于 Arduino 和超声波传感器的自动门控制系统
  10. 智能无钥匙门锁:Arduino + Android 蓝牙密码控制舵机开锁
  11. 蓝牙遥控 Arduino 小车完整 DIY 指南
  12. Arduino 实时数字罗盘:HMC5883L + Processing 可视化教程