Arduino ve MFRC522 ile RFID Akıllı Kapı Kilidi Yapımı

👤 Yazar: ozcan 📅 Tarih: 09.07.2026 09:22 👁️ Görüntüleme: 38

Arduino ve MFRC522 ile RFID Akıllı Kapı Kilidi Yapımı

Giriş kartları veya anahtarlıklar yardımıyla çalışan güvenli geçiş sistemleri hayatımızın her alanında karşımıza çıkıyor. Bu rehberde, popüler ve oldukça uygun fiyatlı olan MFRC522 RFID Kart Okuyucu modülü ve bir Servo Motor kullanarak kendi akıllı kapı kilidi simülasyonumuzu adım adım hayata geçireceğiz.

Gerekli Malzemeler

  • Arduino Uno
  • MFRC522 RFID Okuyucu (Kart ve Anahtarlık ile birlikte)
  • SG90 Servo Motor (Kapı kilidini simüle etmek için)
  • Kırmızı ve Yeşil LED (Durum göstergeleri için)
  • 2 adet 220 Ohm Direnç
  • Jumper Kablolar

1. RFID ve Servo Motor Bağlantı Şeması

MFRC522 modülü hızlı veri transferi için SPI haberleşme protokolünü kullanır. Bu yüzden pinlerin Arduino üzerinde tam olarak doğru yerlere takılması kritik önem taşır. Bağlantıları yaparken aşağıdaki rehber görselden ve tablodan yararlanabilirsiniz:

arduino rf id servo

MFRC522 Pini Arduino Uno Pini
VCC 3.3V (Kesinlikle 5V vermeyin, modül bozulabilir)
RST Pin 9
GND GND
IRQ Boş bırakın (Bağlanmaz)
MISO Pin 12
MOSI Pin 11
SCK Pin 13
SDA (SS) Pin 10

Diğer Bileşenlerin Bağlantıları:

  • Servo Motor: Kahverengi -> GND, Kırmızı -> 5V, Turuncu (Sinyal) -> Pin 8
  • Yeşil LED: Uzun bacak (Dirençle) -> Pin 4, Kısa bacak -> GND
  • Kırmızı LED: Uzun bacak (Dirençle) -> Pin 5, Kısa bacak -> GND

2. Gerekli Kütüphaneyi Ekleme

RFID modülünü kullanabilmek için kütüphane eklememiz gerekir:

  1. Arduino IDE'yi açın.
  2. Taslak -> Library Ekle -> Kütüphaneleri Yönet... adımlarını takip edin.
  3. Arama motoruna "MFRC522" yazın (github/OSHA tarafından geliştirilen popüler olanı seçebilirsiniz).
  4. Kur butonuna tıklayarak kurulumu tamamlayın.

3. Arduino Kod Blokları

Bu kod, tanımladığınız doğru kart okutulduğunda servo motoru 90 derece döndürerek kapıyı açar ve yeşil LED'i yakar. Yanlış kart okutulduğunda ise kırmızı LED'i yakıp kapıyı açmaz. Kendi kartınızın UID numarasını öğrenip kod içindeki ilgili yere yazmanız gerekmektedir.

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define RST_PIN   9
#define SS_PIN    10

MFRC522 mfrc522(SS_PIN, RST_PIN); // RFID nesnesi oluşturuluyor
Servo motor;                      // Servo motor nesnesi oluşturuluyor

const int yesilLed = 4;
const int kirmiziLed = 5;

void setup() {
  Serial.begin(9600);
  SPI.begin();           // SPI haberleşmesi başlatılıyor
  mfrc522.PCD_Init();    // RFID okuyucu başlatılıyor
  
  motor.attach(8);       // Servo motor 3. pine bağlı
  motor.write(0);        // Kapı başlangıçta kilitli (0 derece)
  
  pinMode(yesilLed, OUTPUT);
  pinMode(kirmiziLed, OUTPUT);
  
  Serial.println("Kartinizi Okutun...");
}

void loop() {
  // Yeni bir kart okutulmadığı sürece bekle
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Kartın ID'si (UID) okunamazsa bekle
  if (!mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  // Kartın UID numarasını seri ekrana yazdır ve stringe dönüştür
  String kartID = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    kartID += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
    kartID += String(mfrc522.uid.uidByte[i], HEX);
  }
  kartID.toUpperCase();
  Serial.println("Okunan Kart ID: " + kartID);

  // KENDİ KART ID'NİZİ BURAYA YAZIN (Seri ekrandan öğrenip değiştirin)
  if (kartID == "A3 B2 C1 D0") { 
    Serial.println("Giris Basarili! Kapi Aciliyor...");
    digitalWrite(yesilLed, HIGH);
    motor.write(90);            // Kapıyı aç (90 dereceye getir)
    delay(3000);                // 3 saniye kapı açık kalsın
    motor.write(0);             // Kapıyı tekrar kilitle
    digitalWrite(yesilLed, LOW);
  } else {
    Serial.println("Gecersiz Kart! Giris Reddedildi.");
    digitalWrite(kirmiziLed, HIGH);
    delay(1500);
    digitalWrite(kirmiziLed, LOW);
  }
  
  mfrc522.PICC_HaltA(); // Kart okumayı sonlandır
}

Sık Yaşanan Sorunlar ve Çözümleri

1. Kart Okutulunca Seri Ekranda Hiçbir Şey Görünmüyor

Çözüm: MFRC522 modülünün pin bağlantılarını (özellikle SPI pinleri olan 11, 12, 13) iki kez kontrol edin. En ufak bir gevşeklik veri akışını bozar. Ayrıca modülün 3.3V pinine bağlı olduğundan emin olun; 5V pinine taktıysanız modül aşırı ısınmış veya zarar görmüş olabilir.

2. Doğru Kartın Kimliğini (UID) Nasıl Öğrenebilirim?

Çözüm: Yukarıdaki kodu Arduino'nuza yükledikten sonra Arduino IDE üzerinde sağ üstte bulunan Seri Port Ekranı (Serial Monitor) penceresini açın. Kartınızı veya anahtarlığınızı okutucuya yaklaştırdığınızda ekrana "Okunan Kart ID: XX XX XX XX" şeklinde bir kod gelecektir. O kodu kopyalayıp koddaki "A3 B2 C1 D0" olan kısımla değiştirip kodu kartınıza tekrar yüklemeniz yeterlidir.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1