Arduino Projeleri
#19Gelişmiş

Parmak İzi ile Kapı Kilidi

~1,5 saatUART haberleşme kavramı

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 PiniBağ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

arduino-19-parmak-izi-ile-kapi-kilidi.ino
1#include <SoftwareSerial.h>
2#include <Adafruit_Fingerprint.h>
3#include <Servo.h>
4SoftwareSerial mySerial(2, 3);
5Adafruit_Fingerprint finger(&mySerial);
6Servo kilit;
7const int led = 8;
8
9void 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
20void 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.

Bu projenin kodunu AI ile özelleştir

Farklı pin, ek özellik ya da başka bir sensör mü istiyorsun?