RFID,全称Radio-Frequency Identification,中文名射频识别,它可用于需要识别机制的许多应用中。在本篇文章中,我们将主要介绍如何将Arduino Uno开发板与RFID-RC522模块一起使用。 RFID-RC522模块是RFID读卡器,可以读取近距离的RFID标签。为了读取RFID标签,读取器和标签必须具有相同的频率。 RFID-RC522模块仅能读取13.56 MHz的高频标签。
为了演示RFID-RC522模块,本篇文章编写了一个简单的应用程序,该应用程序可以基于RFID标签识别用户。
所需的材料清单:
– Arduino Uno开发板
– 跳线
– RFID-RC522模块
– RFID标签
如何将RFID-RC522连接到Arduino?
RFID-RC522模块有八个引脚(本文中使用了七个引脚)。RFID-RC522模块工作在3.3V电源。因此,需要将模块的3.3V引脚连接到Arduino的3.3V。如果该模块意外连接到Arduino的5V引脚,则可能损坏。按照MFRC522库的文档中的建议显示了引脚分布。下表显示了完整的引脚分布(仅适用于Arduino Uno!建议Mega、Nano等使用不同的引脚布局!):
RFID-RC522射频模块 | ARDUINO UNO |
SDA | 10 |
SCK | 13 |
MOSI | 11 |
MISO | 12 |
IRQ | 未使用 |
GND | GND |
RST | 9 |
3.3V | 3.3V |
如何将RFID-RC522连接到Arduino的示意图。
如何编程RFID阅卡器?
以下代码使用了一个现有的RFID库,可以在这里找到:https://github.com/miguelbalboa/rfid。如果您使用的是Arduino IDE,则可以通过单击“ Sketch-> Include Library-> Manage Libraries”轻松安装该库。然后,搜索“ RFID”,您将找到标题为“MFRC522 by GithubCommunity”的条目。如果找不到这样的条目,建议您访问库的官方网站以获得更多帮助。为了使RFID读卡器运行,您必须设置库文件、SPI连接以及读卡器。幸运的是,该库提供了两个非常方便的读取标签的便捷函数:第一个函数允许检测是否存在RFID标签/卡。第二个函数读取RFID标签ID。在以下代码中,使用for循环用于标签。在每次迭代中,将读取一个字节并将其打印为十六进制值(00..FF)。当每个用户拥有不同的RFID标签时,可以使用这种机制来识别用户。
#include "SPI.h" // SPI library
#include "MFRC522.h" // RFID library (https://github.com/miguelbalboa/rfid)
const int pinRST = 9;
const int pinSDA = 10;
MFRC522 mfrc522(pinSDA, pinRST); // Set up mfrc522 on the Arduino
void setup() {
SPI.begin(); // open SPI connection
mfrc522.PCD_Init(); // Initialize Proximity Coupling Device (PCD)
Serial.begin(9600); // open serial connection
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent()) { // (true, if RFID tag/card is present ) PICC = Proximity Integrated Circuit Card
if(mfrc522.PICC_ReadCardSerial()) { // true, if RFID tag/card was read
Serial.print("RFID TAG ID:");
for (byte i = 0; i < mfrc522.uid.size; ++i) { // read id (in parts)
Serial.print(mfrc522.uid.uidByte[i], HEX); // print id as hex values
Serial.print(" "); // add space between hex blocks to increase readability
}
Serial.println(); // Print out of id is complete.
}
}
}
将代码成功上传到Arduino后,如果RFID卡或标签在RFID读卡器附近,则串口监视器(Tools-> Serial Monitor或快捷键Ctrl + Shift + M)上的输出应如下所示( 图片显示了RFID卡的位置以及相应的串口监视器输出):
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !