ساخت RFID Reader/Writer با آردوینو UNO (فرکانس 13.56 مگاهرتز)
این پروژه یک پروژه اردوینو است که با استفاده از برد آردوینو Uno یا آردوینو Nano و ماژول MRFC522، قابلیت خواندن و نوشتن بر روی تگهای RFID را دارد. با استفاده از کدهای آردوینو، میتوانید اطلاعات را از تگهای RFID بخوانید و در صورت نیاز، اطلاعات جدید را بر روی آنها بنویسید. اتصال پینهای ماژول MRFC522 به برد آردوینو Uno یا آردوینو Nano بسیار ساده است و با استفاده از جدول اتصال پینها و برنامه های نوشته شده میتوانید پروژه خود را شروع کنید.
یک پروژه اردوینو با استفاده از برد آردوینو Uno و ماژول MRFC522 برای ساخت یک ار اف ای دی ریدر میتواند شامل موارد زیر باشد:
سختافزار مورد نیاز:
- برد آردوینو Uno
- ماژول MRFC522
توصیف برنامه: ماژول MRFC522 در محدوده فرکانسی ۱۳٫۵۶ مگاهرتز کار میکند و علاوه بر خواندن اطلاعات، توانایی نوشتن بر روی تگهای Mifare را دارا میباشد. بنابراین، با استفاده از کدهای آردوینو، میتوانید اطلاعات را از تگهای RFID بخوانید و در صورت نیاز، اطلاعات جدید را بر روی آنها بنویسید.
مدار: برای ساخت یک مدار ساده، شما نیاز به اتصال پینهای ماژول MRFC522 به پینهای مربوطه در برد آردوینو Uno دارید. سپس با استفاده از کدهای آردوینو، میتوانید با ماژول MRFC522 ارتباط برقرار کنید و عملیات خواندن و نوشتن را انجام دهید.
برنامه RFID Reader
برنامه: برای نمونه، یک برنامه ساده آردوینو که قابلیت خواندن اطلاعات از یک تگ RFID را دارد به صورت زیر است:
#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();
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent()) {
if (mfrc522.PICC_ReadCardSerial()) {
Serial.print("Tag UID:");
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
}
}
}
برنامه RFID Writer
در ادامه یک نمونه کد برای نوشتن بر روی یک تگ RFID با استفاده از برد آردوینو Uno و ماژول MRFC522 آورده شده است:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent()) {
if (mfrc522.PICC_ReadCardSerial()) {
writeBlock(2, "Hello World!");
mfrc522.PICC_HaltA();
mfrc522.PCD_StopCrypto1();
}
}
}
void writeBlock(byte blockNumber, char* data) {
byte buffer[18];
byte size = sizeof(buffer);
MFRC522::StatusCode status;
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockNumber, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
Serial.print("PCD_Authenticate() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
status = mfrc522.MIFARE_Read(blockNumber, buffer, &size);
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_Read() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
for (byte i = 0; i < 16; i++) {
buffer[i] = data[i];
}
status = mfrc522.MIFARE_Write(blockNumber, buffer, 16);
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_Write() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
}
این کد با استفاده از تابع writeBlock
قابلیت نوشتن بر روی بلوک مشخصی از تگ RFID را دارد. در این مثال، مقدار “Hello World!” در بلوک شمارهی دو نوشته میشود.
نحوه ی اتصال پین های ماژول MRFC522 به آردوینو
برای اتصال پینهای ماژول MRFC522 به برد آردوینو Uno یا آردوینو نانو، شما میتوانید از جدول زیر استفاده کنید:
MRFC522 | آردوینو Uno | آردوینو نانو |
---|---|---|
SDA | 10 | D10 |
SCK | 13 | D13 |
MOSI | 11 | D11 |
MISO | 12 | D12 |
IRQ | N/A | N/A |
GND | GND | GND |
RST | 9 | D9 |
3.3V | 3.3V | 3.3V |
با استفاده از این جدول، شما میتوانید پینهای ماژول MRFC522 را به پینهای مربوطه در برد آردوینو Uno یا آردوینو نانو وصل کنید.
نحوه ی نصب کتابخانه MFRC522
#include <MFRC522.h>
یک دستور برای اضافه کردن کتابخانهی MFRC522 در برنامههای آردوینو است. این کتابخانه شامل توابع و دستوراتی است که برای کار با ماژول MRFC522 لازم هستند.
برای استفاده از این کتابخانه، شما نیاز دارید تا آن را در نرمافزار آردوینو IDE نصب کنید. برای این کار، میتوانید به منوی Sketch > Include Library > Manage Libraries
بروید و در پنجرهی باز شده، در قسمت جستجو، عبارت MFRC522
را وارد کنید و سپس کتابخانهی مربوطه را نصب کنید.
منابع
1- https://randomnerdtutorials.com/security-access-using-mfrc522-rfid-reader-with-arduino/
دیدگاهتان را بنویسید