天天看點

一文讀懂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 閱讀器的使用方法