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

| 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ı:
RFID modülünü kullanabilmek için kütüphane eklememiz gerekir:
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
}
Çö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.
Çö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.
Henüz yorum yapılmamış. İlk yorumu siz yapın!