Arduino ile RC522 RFID Modülü Kullanımı
Arduino ile RC522 RFID Modülü
Merhaba Arkadaşlar
RFID RC522 modülü ile günlük hayat kullandığımız bir çok ürünün kontrolünü sadece bir 13,56 MHz NFC Kart veya 13,56 MHz NFC anahtarlık ile kontrol edebilirsiniz. 13,56 MHz HF(yüksek frekans), yakın algılama olanağı sağlar. RFID modülleri genel olarak kapı kilitlerinde kullanılsa da kişinin hayal gücüne bağlı olarak farklı uygulamalar ve projeler geliştirilebilir.
Bu örnek uygulamamızda Arduino Uno kullanarak RFID RC522 NFC kiti ile yetki durumuna göre yeşil ve kırmızı ledleri kontrol edelim.
NOT: RFID kitlerinde kullanılan çipler farklılık gösterdiği için her Arduino kütüphanesi desteklemeyebilir. Aşağıdaki linkten güncel veya eski kütüphanelere ulaşabilirsiniz. Ayrıca kütüphane ismini MFRC522 olarak değiştirmeniz gerekmektedir.
Kütüphane dosyası: RFID(RC522)kütüphanesi
Arduino RFID Kütüphanesi MFRC522 Arduino’ya eklemek için aşağıdaki sıralamayı takip edebilirsiniz. MFRC522.zip dosyası olarak inmektedir.
Taslak>library ekle>.ZIP Kitaplığı Ekle>ZIP dosyasını bilgisayarda indirdiğiniz yeri seçme>Open
Malzeme Listesi:
- Arduino Uno R3
- RFID RC522-NFC Kiti
- 1 x Yeşil led
- 1 x Kırmızı led
- 2 x 220 Ohm Direnç
- ARDUİNO KODLARI:
#include <SPI.h> | |
#include <MFRC522.h> | |
const byte YESIL_LED = 4; | |
const byte KIRMIZI_LED = 2; | |
MFRC522 rfid(10, 9);//RFID Chip Select ve Reset pinlerinin ayarlarını yapıyoruz. | |
byte Kart[4] = {53, 122, 201, 226}; // {53, 122, 201, 226} buraya kendi okuttuğunuz kartın ID numarasını yazmalısınız. | |
boolean Yetki; | |
void setup() | |
{ | |
Serial.begin(9600); | |
pinMode(KIRMIZI_LED, OUTPUT); | |
pinMode(YESIL_LED, OUTPUT); | |
SPI.begin(); | |
rfid.PCD_Init(); | |
} | |
void loop() | |
{ | |
Yetki = true; | |
if ( rfid.PICC_IsNewCardPresent()) | |
{ | |
if ( rfid.PICC_ReadCardSerial()) | |
{ Serial.print(“Okunan Kart ID: “); | |
Serial.print(rfid.uid.uidByte[0]); | |
Serial.print(“,”); | |
Serial.print(rfid.uid.uidByte[1]); | |
Serial.print(“,”); | |
Serial.print(rfid.uid.uidByte[2]); | |
Serial.print(“,”); | |
Serial.println(rfid.uid.uidByte[3]); | |
} | |
for (int i = 0; i < 4; i++) | |
{ | |
if (rfid.uid.uidByte[i] != Kart[i]) | |
{ | |
Yetki = false; | |
} | |
} | |
if (Yetki == true) | |
{ | |
Serial.println(“Yetki Onaylandi…”); | |
digitalWrite(YESIL_LED, HIGH); | |
delay(1000); | |
digitalWrite(YESIL_LED, LOW); | |
} | |
else | |
{ | |
Serial.println(“Yetki Onaylanmadi…”); | |
digitalWrite(KIRMIZI_LED, HIGH); | |
delay(1000); | |
digitalWrite(KIRMIZI_LED, LOW); | |
} | |
rfid.PICC_HaltA(); | |
} | |
} |