RFID概述
RFID 的意思是射頻識别。RFID 使用電磁場短距離傳輸資料。RFID 可用于識别人員、進行交易等……可以使用 RFID 系統來開門。例如,隻有卡上資訊正确的人才可以進入。RFID 系統使用:
- 标簽附加到要識别的物體上,。每個标簽都有自己的辨別(UID)。
引腳接線
引腳 | 與 Arduino Uno 的接線 |
SDA | 數字10 |
SCK | 數字13 |
MOSI | 數字11 |
MISO | 數字12 |
IRQ | 未連接配接的 |
GND | 接地 |
RST | 數字9 |
3.3V | 3.3V |
#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);
}
}
檢視原始代碼
。
近似您選擇授予通路權限的卡,您将看到:
如果使用另一個 UID 來近似另一個标簽,則會顯示拒絕消息: