Arduino ile RC522 RFID Modül Kullanımı

Güncelleme tarihi: 7 May 2020

Bu uygulamamızda Arduino kartımıza bağladığımız RFID kart okuyucu modülü kullanacağız. Modüle kayıtlı RFID kart okutulduğu zaman Yeşil led yanacak tanımlı olmayan RFID kart okutulduğu zaman Kırmızı led yanacak ve buzzerdan ses çıkışı olacaktır. Bu uygulamada kullanacağımız malzemelerimiz;


  • Arduino UNO

  • 5mm Kırmızı LED

  • 5mm Yeşil LED

  • 220R veya 330R Direnç

  • Buzzer

  • RC522 RFID Kart Okuyucu

  • RFID Kart

  • Jumper Kablolar (E-E,D-E)

  • Breadboard


Devremizi bu şemaya göre kurup bağlantılarımızı yapıyoruz.


RFID ‘Radio Frequency IDentification’ yani Radyo frekansı tanımlama anlamına gelir ve pek çok teknolojide kullanılır. Personel takibi, stok kontrolü,otobüs kartları,erişim kontrolü gibi birçok alanda kullanılır. Bir RFID sistemi RFID Okuyucu ve RFID Kart olmak üzere iki ana bileşenden oluşur.

Kullanılan RFID Kartların her birinin kendisine ait bir ID’si vardır.RFID okuyucuya kartımızı yaklaştırdığımızda bu ID’yi kullanarak işlem yapılır. Piyasada çok fazla RFID modülü bulunmaktadır biz RC522 RFID Modülünü kullanacağız.

RFID modülünü Arduino'da kullanabilmek için MFRC522 kütüphanesini eklemeniz gerekmektedir.


Devre bağlantısını yaptıktan sonra kodlama kısmına geçebiliriz.



#include <SPI.h>//İlgili kütüphaneler eklendi.
#include <MFRC522.h> 
#define Kirmizi_LED 6// LED ve Buzzer pinleri tanımlandı.
#define Yesil_LED 5
#define Buzzer 4
 
#define RST_pin 9
#define SS_pin 10
MFRC522 rfid(SS_pin,RST_pin);//RFID Okuyucumuzun RESET ve CHIP Select pinlerini tanımlandı.
 
 
byte rf_kart[4] = { 201,105 ,140 ,31 };//Buraya kartınızın ID'sini yazmanız gerekmektedir.
 
 
void setup() 
{
 Serial.begin(9600);
 SPI.begin(); //SPI iletişimini başlatıldı(RFID için gerekli haberleşme protokolü).
 rfid.PCD_Init();//RC522 modülünü başlatıldı.
 pinMode(Buzzer,OUTPUT);
 pinMode(Kirmizi_LED,OUTPUT); //LED'ler ve Buzzer çıkış olarak ayarlandı.
 pinMode(Yesil_LED,OUTPUT); 
 digitalWrite(Kirmizi_LED,LOW); //Başlangıçta bütün çıkış pinleri 'LOW' olarak ayarlandı.
 digitalWrite(Yesil_LED,LOW);
 digitalWrite(Buzzer,LOW);
}
 
 
void loop() 
{
 
 if ( ! rfid.PICC_IsNewCardPresent()) //RFID Kartın okunmasını bekler. 
 return;
 if ( ! rfid.PICC_ReadCardSerial()) 
 return;
 
 if (rfid.uid.uidByte[0] == rf_kart[0] && rfid.uid.uidByte[1] == rf_kart[1] && rfid.uid.uidByte[2] == rf_kart[2] && rfid.uid.uidByte[3] == rf_kart[3] )
 { //Okutulan RFID Kart ile yukarıda tanımlı KART ID'leri uyuyorsa yeşil led yanıp sönecek.
 Serial.println("TANIMLI KART"); 
 KARTID(); 
 for(int i = 0 ; i < 5 ; i++){
 digitalWrite(Yesil_LED,HIGH); 
 delay(500);
 digitalWrite(Yesil_LED,LOW);
 delay(500); }
 }
 
 
 else{ //Okutulan RFID Kart ile yukarıda tanımlı KART ID'leri uymuyorsa kırmızı led yanıp sönecek ve buzzerdan ses çıkışı olacak.
 Serial.println("TANIMSIZ KART"); 
 KARTID();
 digitalWrite(Buzzer,HIGH);
 delay(300);
  digitalWrite(Buzzer,LOW);
 delay(300);
 for(int j = 0 ; j < 5 ; j++){
 digitalWrite(Kirmizi_LED,HIGH);
 delay(500);
 digitalWrite(Kirmizi_LED,LOW);
 delay(500); }
 
 delay(2000);
 
 }
 rfid.PICC_HaltA();
}
 
void KARTID(){
 Serial.print("KART ID: ");
 for(int a = 0; a < 4; a++){
 Serial.print(rfid.uid.uidByte[a]);
 Serial.print(" ");
 }
 Serial.println("");
}

Kodu yükledikten sonra Seri monitorü açıp RFID Kartımızın ID'sini öğrenebilmek için kartı okutup daha sonra kartın ID numaralarını kod üzerinde rf_kart dizisinin içerisine örnekteki gibi yazıp kodu tekrar yüklemeniz gerekmektedir.



Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır





Son Paylaşımlar