当前位置:首页Arduino > 正文

Arduino简易RFID门禁

作者:野牛程序员:2023-08-17 22:07:45Arduino阅读 2914

以下是一个简易的Arduino RFID门禁系统示例代码,用于控制一个基本的门禁系统,通过RFID卡片来识别用户并控制门的开关。

请注意,这只是一个简单的示例,实际应用中可能需要更多的功能和安全性措施。

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);  // 创建MFRC522实例

void setup() {
  Serial.begin(9600);   // 初始化串口通信
  SPI.begin();      // 初始化SPI总线
  mfrc522.PCD_Init();   // 初始化RFID模块
  Serial.println("Initializing RFID Door Access System");
}

void loop() {
  // 检查是否有RFID卡片在感应范围内
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    Serial.println("Card Detected");
    
    // 获取卡片的UID
    String cardUID = "";
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      cardUID += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
      cardUID += String(mfrc522.uid.uidByte[i], HEX);
    }
    cardUID.toUpperCase();
    
    Serial.print("Card UID: ");
    Serial.println(cardUID);

    // 检查卡片是否有访问权限
    if (cardUID == "YOUR_CARD_UID") {
      Serial.println("Access Granted");
      // 在这里执行开门操作,例如控制电磁锁
    } else {
      Serial.println("Access Denied");
    }

    mfrc522.PICC_HaltA();
    mfrc522.PCD_StopCrypto1();
  }
}

在上述代码中,我们使用了MFRC522 RFID模块库来与RFID模块通信。代码的主要逻辑如下:

  1. 初始化串口通信、SPI总线和RFID模块。

  2. 在主循环中,检查是否有RFID卡片在感应范围内。

  3. 如果检测到卡片,获取其UID,并将其转换为十六进制字符串格式。

  4. 检查卡片UID是否匹配预定义的有效卡片UID(YOUR_CARD_UID)。如果匹配,则表示有访问权限,允许开门操作。

  5. 如果卡片UID不匹配,拒绝访问。

  6. 在适当的位置,你可以添加控制电磁锁等操作,以实现门的开关。

在实际应用中,需要将 YOUR_CARD_UID 替换为你的有效卡片的UID,并根据硬件连接和需求进行适当的调整。此外,要注意实际门禁系统需要更多的安全性和逻辑控制,例如密码保护、日志记录等。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击