Arduino ile RFID Kart Okuyucu (RC522) Modül Kullanarak Kapı Kilidi Yapımı

RFID Nedir?

Açılımı Radio Frequency Identification yani radyo frekansı ile tanımlamadır. RFID teknolojisi nesnelerin radyo dalgaları kullanılarak tanınması için kullanılan teknolojidir. Günlük hayatımızda toplu taşıma biletlerinde, işyeri ve okul girişlerindeki turnikelerde karşımıza sıklıkla çıkmaktadır. Arduino ile RFID projelerini incelediğimizde kapı kilidi, bir ortamda bulunan kişi sayısı bilgisinin alınması, bilgisayar oturum kilidi, alarm sistemi gibi projelerle sıklıkla karşılaşabilirsiniz. Kablosuz haberleşme teknolojileri ile ilgili daha fazla bilgi edinmek isterseniz, Kablosuz Haberleşme Teknolojileri yazımızı okuyabilirsiniz.

RFID Kart Okuyucular – RFID Kart Okuma Yazma İşlemi

Kullandığımız kartların kendilerine ait UID isimli bir numarası vardır. Bu numara, her kart için farklıdır. Okuyucumuza kartımızı veya anahtarlığımızı yaklaştırdığımızda bu numara okunarak işlem yapılır.

RC522 RFID modülü haricinde başka birçok RFID kart okuyucu modül piyasada bulunmaktadır. HZ-1050 RFID Kart okuyucu modülü 125 kHz frekansında çalışmaktadır. Arduino ve birçok mikro kontrolcü ile çalışabilir, Raspberry Pi ile rahatlıkla proje geliştirmek mümkündür. RDM6300 modülü ofis/ev güvenliği, kişisel kimlik ve erişim kontrolü, anti-sahtecilik ve üretim kontrol sistemleri gibi pek çok alanda kullanılmaktadır. Grove modülü ise 7 cm mesafeye kadar algılama yapabilen RFID modülüdür.

Sitemizdeki tüm RF kart okuyuculara ve kablosuz haberleşme sistemlerine buradan ulaşabilirsiniz.

Arduino İle RC522 RFID Modül Kullanarak Kapı Kilidi Projesi Yapalım

Kart okuyucu devresini yaparken aynı zamanda RFID ile servo motor kontrolü uygulamasını da gerçekleştirmiş olacağız. Yani hem Arduino’nun RFID ile iletişimini öğreneceğiz hem de servo motor kullanarak algoritmamızı yazmış olacağız.

Gereken malzemeler:

Projedeki Malzemeler Bu Sette. Şimdi İncele >

Devre şemamız şu şekilde:

Kart Okuyucu Devresi
Kart Okuyucu Devresi

Projeye Başlamadan Önce İndirmemiz Gereken RFID ve Servo Motor Kütüphaneleri

Bu adresten kartımızı çalıştırmamızda gerekli olan kütüphaneyi indirerek Arduino programının kurulu olduğu klasör altındaki libraries klasörüne MFRC522 ismiyle kaydediyoruz.

Arduino Kart Okuyucu devremiz için gerekli kodu aşağıdaki gibi yazıyoruz. Her bir satırda açıklamalar bulunuyor fakat projede bir sorun yaşarsanız yorum kısmından bildirebilirsiniz.

#include                           //SPI kütüphanemizi tanımlıyoruz.
#include                       //MFRC522 kütüphanemizi tanımlıyoruz.
#include                         //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] = {97, 76, 67, 9};          //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("");
}

https://arduinohocam.com/

Bir cevap yazın

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