天天看点

一文读懂MFRC522 RFID 阅读器的使用方法

一文读懂MFRC522 RFID 阅读器的使用方法

RFID概述

RFID 的意思是射频识别。RFID 使用电磁场短距离传输数据。RFID 可用于识别人员、进行交易等……可以使用 RFID 系统来开门。例如,只有卡上信息正确的人才可以进入。RFID 系统使用:

  • 标签附加到要识别的物体上,。每个标签都有自己的标识(UID)。
一文读懂MFRC522 RFID 阅读器的使用方法

引脚接线

引脚 与 Arduino Uno 的接线
SDA 数字10
SCK 数字13
MOSI 数字11
MISO 数字12
IRQ 未连接的
GND 接地
RST 数字9
3.3V 3.3V
一文读懂MFRC522 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();      // I  SPI 总线测试
  mfrc522.PCD_Init();   // MFRC522初始化
  Serial.println("Approximate your card to the reader...");
  Serial.println();

}
void loop() 
{
  // 等待新卡
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }

  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //显示UID
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "BD 31 15 2B") //更改为使用卡的 UID
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(3000);
  }
 
 else   {
    Serial.println(" Access denied");
    delay(3000);
  }
} 
           

查看原始代码

近似您选择授予访问权限的卡,您将看到:

一文读懂MFRC522 RFID 阅读器的使用方法

如果使用另一个 UID 来近似另一个标签,则会显示拒绝消息:

一文读懂MFRC522 RFID 阅读器的使用方法
一文读懂MFRC522 RFID 阅读器的使用方法