这篇文章详细说明了有关如何使用MFRC522 RFID阅读器的简单示例。我将对规格进行快速概述,并使用Arduino演示项目示例。
RFID表示射频识别。RFID使用电磁场在短距离内传输数据。RFID可用于识别人员,物品进行交易等。
您可以使用RFID系统打开一扇门。例如,仅允许其卡上具有正确信息的人进入。
RFID系统使用:
这是此项目所需的库:
1. 下载RFID库
2. 解压缩RFID库
3. 在您的Arduino IDE中安装RFID库
4. 重新启动您的Arduino IDE
引脚 接线到Arduino Uno
SDA 数字10
SCK 数字13
MOSI 数字11
MISO 数字12
IRQ 未连接
地线 地线
RST 数字9
3.3伏 3.3伏
注意:您必须将此设备供电至3.3V!
准备好电路后,转到文件>示例> MFRC522> DumpInfo并上传代码。该代码将在您的Arduino IDE中可用(安装RFID库之后)。
然后,打开串行监视器。您应该看到类似下图的内容:
将RFID卡或钥匙串近似到阅读器。让阅读器和标签靠近,直到显示所有信息。
这是您可以从卡中读取的信息,包括以黄色突出显示的卡UID。如上图所示,该信息存储在内存中,该内存分为段和块。
您有1024个字节的数据存储空间,分为16个扇区,每个扇区由两个不同的键A和B保护。
记下您的UID 卡,因为以后需要它。
上载以下代码。
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
Serial.println("Approximate your card to the reader...");
Serial.println();
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte, HEX);
content.concat(String(mfrc522.uid.uidByte < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte, HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access
{
Serial.println("Authorized access");
Serial.println();
delay(3000);
}
else {
Serial.println(" Access denied");
delay(3000);
}
}
在上面的代码中,您需要更改if(content.substring(1)=="用您的UID替换")并键入您之前编写的UID卡。
现在,将代码上传到Arduino,然后打开串行监视器。
如果选择了您要授予访问权限的卡,您会看到:
如果您用另一个UID近似另一个标签,则会显示拒绝消息:
希望本教程对您有所帮助。