Parmak İzi ile Kapı Kilidi
Proje Amacı
R307 parmak izi sensörüyle önceden kaydedilmiş bir parmak izini tanıyıp doğrulandığında servo ile kilidi açar; tanıma işlemi sensörün kendi üzerinde yapılır, Arduino sadece sonucu okuyup kilide iletir.
Gerekli Malzemeler
- Arduino Uno
- R307 Parmak İzi Sensörü
- SG90 Servo
- LED (yeşil/kırmızı)
- Breadboard
Gerekli Kütüphaneler
Adafruit Fingerprint Sensor Library — Kütüphane Yöneticisi'nden kurulmalı (bağımlılık olarak Adafruit BusIO da otomatik kurulur). Servo ve SoftwareSerial yerleşiktir.
Pin Bağlantıları
| Bileşen Pini | Bağlantı |
|---|---|
| R307 TX | D2 (RX) |
| R307 RX | D3 (TX) |
| R307 VCC | 5V |
| R307 GND | GND |
| Servo Sinyal | D9 |
| LED Anot (220Ω üzerinden) | D8 |
Devre Şeması
Arduino Kodu
| 1 | #include <SoftwareSerial.h> |
| 2 | #include <Adafruit_Fingerprint.h> |
| 3 | #include <Servo.h> |
| 4 | SoftwareSerial mySerial(2, 3); |
| 5 | Adafruit_Fingerprint finger(&mySerial); |
| 6 | Servo kilit; |
| 7 | const int led = 8; |
| 8 | |
| 9 | void setup(){ |
| 10 | Serial.begin(9600); |
| 11 | finger.begin(57600); |
| 12 | kilit.attach(9); |
| 13 | pinMode(led, OUTPUT); |
| 14 | kilit.write(0); |
| 15 | if(finger.verifyPassword()){ |
| 16 | Serial.println("Sensör bulundu!"); |
| 17 | } |
| 18 | } |
| 19 | |
| 20 | void loop(){ |
| 21 | int p = finger.getImage(); |
| 22 | if(p == FINGERPRINT_OK){ |
| 23 | p = finger.image2Tz(); |
| 24 | if(p == FINGERPRINT_OK){ |
| 25 | p = finger.fingerFastSearch(); |
| 26 | if(p == FINGERPRINT_OK){ |
| 27 | Serial.println("Parmak izi doğrulandı, açılıyor!"); |
| 28 | digitalWrite(led, HIGH); |
| 29 | kilit.write(90); |
| 30 | delay(3000); |
| 31 | kilit.write(0); |
| 32 | digitalWrite(led, LOW); |
| 33 | } else { |
| 34 | Serial.println("Tanınmadı."); |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | delay(50); |
| 39 | } |
Çalışma Açıklaması
Parmak izi kaydı ayrı bir 'enrollment' kodu gerektirir (kütüphaneyle birlikte gelir), bu kod sadece tanıma/doğrulama içindir. R307 farklı baud hızlarında olabilir, datasheet'i kontrol edin.
Test Bilgisi
Adafruit Fingerprint Sensor Library'yi kurun. Önce sensörün kendi kayıt (enrollment) örnek kodunu kullanarak parmak izinizi kaydedin, sonra bu kodu yükleyip parmağınızı okutarak kilidin açıldığını doğrulayın.
Olası Sorunlar ve Çözümleri
Parmak izi tanınmıyorsa: önce sensörün kendi enrollment (kayıt) kodu ile parmağın düzgün kaydedildiğinden emin olun. Sensör hiç yanıt vermiyorsa: baud hızının (genelde 57600) doğru ayarlandığını kontrol edin. Kilit açılıyor ama hemen kapanıyorsa: delay() süresini ihtiyacınıza göre uzatın.
Alternatif Çözümler
Tek parmak izi yerine birden fazla kullanıcı kaydedilip her biri için farklı yetki seviyesi tanımlanabilir (R307 tipik olarak 100-1000 arası şablon saklayabilir, modele göre değişir). Servo yerine gerçek bir elektronik kilit/solenoid kullanılarak fiziksel bir kapıya entegre edilebilir. LCD/OLED ekran eklenerek 'Hoş geldiniz [kullanıcı]' gibi kişiselleştirilmiş mesajlar gösterilebilir. Başarısız deneme sayacı eklenip art arda 5 başarısız okumadan sonra sistemin birkaç dakika kilitlenmesi sağlanarak kaba kuvvet (brute-force) denemelerine karşı basit bir önlem alınabilir.
Benzer Projeler
RFID Kartlı Erişim Sistemi
RC522 RFID okuyucu ile yetkili kartları tanıyıp servo motorla kilidi açar, yetkisiz kartlarda buzzer ile uyarır — RC522'nin 3.3V-only oluşu bu projedeki en sık yapılan bağlantı hatasının kaynağıdır (bkz. Çalışma Açıklaması).
Engelden Kaçan Robot
Önündeki engelleri ultrasonik sensörle algılayıp geri çekilip yön değiştiren bir robot yapar — kod bilinçli olarak basit tutuldu, servo ile taramalı algılama bir sonraki geliştirme adımı olarak notlarda bırakıldı.
GPS Konum Takip Cihazı
NEO-6M GPS modülünden enlem/boylam okuyup Seri Monitör'de gösterir; modül NMEA formatında ham metin cümleleri gönderir, TinyGPS++ kütüphanesi bu cümleleri ayrıştırıp kullanılabilir sayılara çevirir.