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 来近似另一个标签,则会显示拒绝消息: