⚡ Arduino Projeleri 📅 16 Ekim 2026

Arduino ile RFID Kapı Kilidi Yapımı

Arduino ve RC522 RFID modülü ile akıllı kartlı kapı kilidi sistemi nasıl yapılır? Devre şeması, kart UID okuma, servo kilit ve tam kod rehberi.

Arduino ile RFID Kapı Kilidi Yapımı

Otel odalarında, modern plazalarda, toplu taşıma turnikelerinde ve apartman girişlerinde her gün kullandığımız temassız akıllı kart sistemleri güvenlik dünyasının vazgeçilmez bir parçasıdır. Geleneksel mekanik anahtarların kaybolma, kopyalanma ve kırılma riskine karşı geliştirilen **RFID (Radio Frequency Identification - Radyo Frekanslı Tanıma)** teknolojisi, Arduino ile birleştiğinde dakikalar içinde kendi akıllı kapı kilidinizi yapmanızı sağlar.

Bu kapsamlı rehberde; **MFRC522 RFID Okuyucu Modülü**nün çalışma mantığını, SPI haberleşme bağlantılarını, kartların benzersiz kimlik numarasının (UID) nasıl tespit edileceğini ve servo motor kontrollü şifreli kapı kilidi C++ kodlarını adım adım inceliyoruz.

---

1. RFID Teknolojisi Nasıl Çalışır?

RFID sistemi iki temel elemandan oluşur:

1. **RFID Kart / Anahtarlık (Tag):** İçerisinde bir mikroçip ve bobin anten barındırır. Pili yoktur!

2. **RFID Okuyucu Modül (MFRC522):** 13.56 MHz frekansında elektromanyetik alan yayar. Kart okuyucuya yaklaştırıldığında, manyetik alan kartın bobininde minik bir elektrik akımı indükler (kablosuz enerji transferi). Kartın içindeki çip uyanır ve hafızasındaki **benzersiz UID (Unique ID) numarasını** radyo dalgalarıyla okuyucuya iletir.

---

2. Gerekli Malzemeler Listesi

| Malzeme | Adet | Açıklama |

|---|---|---|

| **Arduino Uno R3** | 1 | Ana mikrodenetleyici kartı |

| **RC522 13.56 MHz RFID Kiti** | 1 | Okuyucu kart + RFID Kart + Mavi Anahtarlık |

| **SG90 Mikro Servo Motor** | 1 | Kapı dilini çeken kilit mekanizması |

| **Yeşil ve Kırmızı LED** | 1'er | Yetkili (Yeşil) ve Yetkisiz (Kırmızı) durum ikazları |

| **Pasif Buzzer** | 1 | Sesli onay ve hata tonları |

| **220Ω Direnç** | 2 | LED koruma dirençleri |

| **Jumper Kablolar (Dişi-Erkek)** | 10+ | RC522 modül bağlantıları |

---

3. RC522 Modülü SPI Pin Bağlantı Tablosu

| RC522 Pini | Arduino Uno Pini | Açıklama |

|---|---|---|

| **VCC** | **3.3V Pini** | **ÇOK ÖNEMLİ: Asla 5V bağlamayın, modül yanar!** |

| **RST (Reset)** | Dijital Pin 9 | Modül sıfırlama pini |

| **GND** | GND | Toprak hattı |

| **MISO** | Dijital Pin 12 | SPI Veri Girişi |

| **MOSI** | Dijital Pin 11 | SPI Veri Çıkışı |

| **SCK** | Dijital Pin 13 | SPI Saat Sinyali |

| **SDA (SS)** | Dijital Pin 10 | SPI Çip Seçim Sinyali |

---

4. 1. Adım: Kartınızın UID Kodunu Tespit Etme

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

MFRC522 rfid(10, 9);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("Kartinizi Okutun...");
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
  
  Serial.print("Kart UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();
  rfid.PICC_HaltA();
}

---

5. Tam Akıllı Kapı Kilidi C++ Kodları

/*
 * RobotKodla.com - Güvenlik Sistemleri
 * Proje: RFID Kartlı Akıllı Kapı Kilidi
 */

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

#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);
Servo kilitServosu;

const int yesilLed = 6;
const int kirmiziLed = 7;
const int buzzerPin = 8;

byte yetkiliKart[4] = {0xA3, 0x5F, 0x82, 0x1B};

void setup() {
  SPI.begin();
  rfid.PCD_Init();
  
  kilitServosu.attach(3);
  kilitServosu.write(0);

  pinMode(yesilLed, OUTPUT);
  pinMode(kirmiziLed, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;

  bool yetkiliMi = true;
  for (byte i = 0; i < 4; i++) {
    if (rfid.uid.uidByte[i] != yetkiliKart[i]) {
      yetkiliMi = false;
      break;
    }
  }

  if (yetkiliMi) {
    digitalWrite(yesilLed, HIGH);
    tone(buzzerPin, 1500, 150);
    delay(200);
    tone(buzzerPin, 2000, 200);
    
    kilitServosu.write(90);
    delay(4000);
    kilitServosu.write(0);
    digitalWrite(yesilLed, LOW);
  } else {
    digitalWrite(kirmiziLed, HIGH);
    tone(buzzerPin, 400, 600);
    delay(1000);
    digitalWrite(kirmiziLed, LOW);
  }

  rfid.PICC_HaltA();
}

---

6. Çoklu Kart Kaydetme (Master Kart Algoritması)

Koda her yeni kart eklendiğinde bilgisayara bağlayıp kod yüklemek pratik değildir. Profesyonel sistemlerde bir **"Master Kart (Yönetici Kartı)"** tanımlanır:

1. Yönetici kart okutulduğunda sistem "Öğrenme Moduna" geçer (mavi LED yanıp söner).

2. Ardından okutulan herhangi bir yeni kart otomatik olarak yetkili kart olarak Arduino'nun kalıcı **EEPROM hafızasına** kaydedilir.

3. Yönetici kart tekrar okutulduğunda sistem normal çalışma moduna geri döner.

4. Bu sayede bilgisayara hiç ihtiyaç duymadan kapıdan yeni kişilere kart tanımlayabilir veya hafızayı sıfırlayabilirsiniz.

---

---

7. RFID Sistemlerinde Bellek Yapısı ve Şifreli Sektörler

MFRC522 ve standart Mifare 1K kartlar yalnızca birer UID numarasından ibaret değildir; aynı zamanda şifrelenebilir bir hafızaya sahiptir:

  • **1 KB Dahili EEPROM:** Kartın hafızası her biri 4 bloktan oluşan 16 ayrı sektöre bölünmüştür.
  • **Kriptolu Sektörler:** Her sektörün Key A ve Key B adı verilen iki gizli şifresi bulunur. Bu sayede kartın içine bakiye (kantin parası), öğrenci numarası veya son giriş tarihi gibi veriler güvenle yazılabilir ve okunabilir.
  • **UID Klonlama Tehlikesi ve Önlemleri:** Çin menşeli bazı "Magic UID" kartlar standart kartların seri numaralarını kopyalayabilir. Üst düzey kurumsal güvenlik projelerinde yalnızca UID numarasına bakılmaz; kartın şifreli sektöründeki kriptografik anahtar doğrulaması yapılarak yetkilendirme sağlanır.
  • ---

    8. RFID Kapı Kilidi İçin Çoklu Kart Kaydetme (Master Kart Algoritması)

    Koda her yeni kart eklendiğinde bilgisayara bağlayıp kod yüklemek pratik değildir. Profesyonel sistemlerde bir **"Master Kart (Yönetici Kartı)"** tanımlanır:

    1. Yönetici kart okutulduğunda sistem "Öğrenme Moduna" geçer (mavi LED yanıp söner).

    2. Ardından okutulan herhangi bir yeni kart otomatik olarak yetkili kart olarak Arduino'nun kalıcı **EEPROM hafızasına** kaydedilir.

    3. Yönetici kart tekrar okutulduğunda sistem normal çalışma moduna geri döner.

    4. Bu sayede bilgisayara hiç ihtiyaç duymadan kapıdan yeni kişilere kart tanımlayabilir veya hafızayı sıfırlayabilirsiniz.

    ---

    ---

    9. Kapsamlı Sıkça Sorulan Sorular (SSS)

    RC522 modülüne neden kesinlikle 5V vermemeliyiz?

    MFRC522 entegresi 3.3V CMOS teknolojisiyle üretilmiştir. Eğer VCC pinine Arduino'nun 5V pininden elektrik verirseniz entegre aşırı voltajdan dolayı birkaç saniye içinde ısınır ve kalıcı olarak kullanılamaz hale gelir. Mutlaka Arduino üzerindeki 3.3V pini kullanılmalıdır.

    Kartı ne kadar uzaktan okutabilirim?

    Pasif 13.56 MHz RFID kartlar ve MFRC522 modülü yaklaşık **2 ile 4 santimetre** mesafeden okunur. Daha uzun menzilli (örneğin araç plaka geçişlerindeki gibi 5-10 metre) sistemler için UHF RFID teknolojisi kullanılır.

    Kendi otobüs veya metro kartımı da bu sisteme tanıtabilir miyim?

    İstanbulkart, Kentkart gibi toplu taşıma kartları da 13.56 MHz Mifare standardını kullanır. Bu kartların UID numarasını RC522 ile okuyup kodunuza yetkili kart olarak ekleyebilir ve evinizin kapısını otobüs kartınızla açabilirsiniz!

    ---

    Sonuç

    RFID kapı kilidi projesi, kişisel güvenliğinizi ve oda girişlerinizi son derece havalı ve modern bir hale getirir. Bu projeyi bir 16x2 LCD ekranla birleştirerek "Hoş Geldiniz Ahmet Bey" şeklinde kişiselleştirilmiş karşılama mesajları da ekleyebilirsiniz. Adım adım diğer güvenlik projeleri için sitemizin [Projeler](/projeler) sekmesini takip edin!