Arduino Arduino Dersleri Arduino Projeleri

RFID Kart Okuyucu(RF522) ve Arduino

Arduino RC522 RFID NFC Modülü Kart ve Anahtarlık Kiti 13.56MHz Fiyatı ve  Özellikleri - GittiGidiyor

Açılımı ‘Radyo Frekansı ile Kimlik Tanıma’ olan RFID teknolojisi, temassız olarak kimlik denetimi yapabilen ve kısa mesafelerden bilgi okuyabilen bir karttır.

RFID Kart özellikleri şöyledir :

Özellikleri:
Çalışma Frekansı: 13,56 MHz
Çalışma Akımı: 13-26mA
Uyku Akımı: 80uA
Haberleşme Protokolü: SPI
Desteklenen Kartlar: mifare1 S50, mifare1 S70 mifare ultralight, mifare pro ve  mifare desfire
Kart Boyutları: 40x60mm

RFID kartların kullanım alanları ise daha çok otopark geçiş kontrol sistemleri, personel turnikeleri, otoyol geçiş sistemleri, hasta kartları ve toplu taşıma kartları gibi alanlardır.

RFID Nasıl Çalışır?

RFID bir okuyucu ve bir etiketten meydana gelen otomatik bir tanıma sistemidir. Etiketin içinde bir mikroçip ve mikroçipi saran bir anten bulunmaktadır. Okuyucu ile etiket arasında, elektromanyetik dalgalar vasıtasıyla iletişim kurulmaktadır. Okuyucunun yaydığı elektromanyetik dalgalar, bir enerji olarak çiple buluşup onu harekete geçirmekte ve etiketten okuyucuya veri transferi yapılmaktadır. Tüm bunlar belli bir mesafede, herhangi bir temas olmadan ve kablosuz olarak gerçekleşmektedir. Okuyucu aldığı veri dalgasını sayısal dalga biçimine dönüştürerek bilgisayara aktarmaktadır.

RFID Nasıl Çalışır?<

RFID Kart İle Arduino Kullanımı

RFID Kart 3.3 V ile çalışır ve SPI haberleşme ile haberleşir. Bu yüzden bir çok pin kullanır. Bağlantı yaparken aşağıdaki bağlantıyı kurmanız gerekmektedir. Modülü kullanabilmek için SPI ve MRFC522 Kütüphanelerini eklemeniz gerekiyor.

Bağlantı pinlerini görüyorsunuz

Örnek Uygulama

Programımız şu şekilde çalışacak, Yetkili kişinin kartı gelirse kapı açılacak, yetkisiz kişi ise geçişe izin vermeyecek.

Program öncelikle ID numaralarını kaydetmeden calıstırıyoruz. Çalıştırdıktan sonra, kart gösterildiğinde serial monitorde” YETKİSİZ KART ID : 196 xxx xxx ” nymarası cıkacak. bu numarayı programda ilgili yere eklediğimizde artık yetkili karta dönüşecek ve artık bu kişiye kapı açılacak

Not: Platformio eklentisinde çalıştırırken ekranayazdir alt programının, mutlaka void setup üstüne yazmanız gerekiyor.

Program Kodları

#include <SPI.h>                   //SPI kütüphanemizi tanımlıyoruz.
#include <MFRC522.h>              //MFRC522 kütüphanemizi tanımlıyoruz.
#include <Servo.h>               //Servo kütüphanemizi tanımlıyoruz

int RST_PIN = 9; //RC522 modülü reset pinini tanımlıyoruz.
int SS_PIN = 10; //RC522 modülü chip select pinini tanımlıyoruz.
int servoPin = 8; //Servo motor pinini tanımlıyoruz.

Servo motor; //Servo motor için değişken oluşturuyoruz.
MFRC522 rfid(SS_PIN, RST_PIN); //RC522 modülü ayarlarını yapıyoruz.
byte ID[4] = {
  135,
  215,
  65,
  64
}; //Yetkili kart ID'sini tanımlıyoruz. 

void setup() {
  motor.attach(servoPin); //Servo motor pinini motor değişkeni ile ilişkilendiriyoruz.
  Serial.begin(9600); //Seri haberleşmeyi başlatıyoruz.
  SPI.begin(); //SPI iletişimini başlatıyoruz.
  rfid.PCD_Init(); //RC522 modülünü başlatıyoruz.
}

void loop() {
  
  if (!rfid.PICC_IsNewCardPresent()) //Yeni kartın okunmasını bekliyoruz.
    return;

  if (!rfid.PICC_ReadCardSerial()) //Kart okunmadığı zaman bekliyoruz.
    return;

  if (rfid.uid.uidByte[0] == ID[0] && //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz.
    rfid.uid.uidByte[1] == ID[1] &&
    rfid.uid.uidByte[2] == ID[2] &&
    rfid.uid.uidByte[3] == ID[3]) {
    Serial.println("Kapi acildi");
    ekranaYazdir();
    motor.write(180); //Servo motoru 180 dereceye getiriyoruz.
    delay(3000);
    motor.write(0); //Servo motoru 0 dereceye getiriyoruz.
    delay(1000);
  } else { //Yetkisiz girişte içerideki komutlar çalıştırılır.
    Serial.println("Yetkisiz Kart");
    ekranaYazdir();
  }
  rfid.PICC_HaltA();
}
void ekranaYazdir() {
  Serial.print("ID Numarasi: ");
     for (int sayac = 0; sayac < 4; sayac++) {
       Serial.print(rfid.uid.uidByte[sayac]);
       Serial.print(" ");
       }
  Serial.println("");
}

Program Kart numarasını okuyacaktır ardından programın ID numarası seri ekranda görünecektir. Bu seri numarasını

byte ID[4] = {
  135,
  215,
  65,
  64
};

Bu kod bölümüne eklemeniz gerekiyor . Aksi takdirde geçersiz kart yazacaktır.

Kaynaklar:
http://www.rfid-turkiye.com/
https://www.aveselektronik.com/
https://www.etkilesimliogrenme.com/rfid-kart-okuyucu-rc522-ve-led-kullanimi
https://maker.robotistan.com/arduino-dersleri-18-rc522-rfid-modul-kullanimi/

Similar Posts

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir