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:
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:
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:
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:
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!