Arduino ile Parmak İzi Okutularak Açılan Kapı / Kasa Kilidi

Arduino ile Parmak İzi Okutularak Açılan Kapı / Kasa Kilidi

Arduino ile Parmak İzi Okutularak Açılan Kapı / Kasa Kilidi
Arduino ile Parmak İzi Okutularak Açılan Kapı / Kasa Kilidi
Arduino ile Parmak İzi Okutularak Açılan Kapı / Kasa Kilidi

Bu projede kapı veya kasa yerine posta kutusu kullanılmıştır. Yukarıda projenin resimlerini paylaştık. Aşağıda paylaştığımız bağlantıda parmak izi okuyucuya kendi parmağınızı nasıl kayıt edeceğiniz gösterilmiştir. Projede kayıt edilen parmak okutulunca kilit açılacaktır.

Projeye bir adet dokunmatik sensör eklenmiştir. Dokunmatik sensöre her basıldığında da kilit açılacaktır. Dokunmatik sensörü, projede bir hata olması durumunda kilidin kesin olarak açılmasını sağlamak için kullandık. Siz bu sensörü eklemeyebilirsiniz.

Parmak izi okuyucu kullanımı : https://etkilesimliogrenme.com/nodemcu-esp8266-parmak-izi-okuyucu-kullanimi

#include 
SoftwareSerial mySerial(2,3);
Adafruit_Fingerprint parmak = Adafruit_Fingerprint(&mySerial);
#define sensor 8
#define kilit 13
#define ledK 9
#define ledY 10

void setup()  
{
  pinMode(sensor,INPUT);
  pinMode(kilit,OUTPUT);
  pinMode(ledK,OUTPUT);
  pinMode(ledY,OUTPUT);
  digitalWrite(kilit,LOW);
  digitalWrite(ledY,LOW);
  digitalWrite(ledK,HIGH);
          
  Serial.begin(115200);
  while (!Serial); 
  delay(1000);
  Serial.println("");
  Serial.println("Parmak İzi Okuma : ");
  parmak.begin(57600);
  if (parmak.verifyPassword()) 
  {
    Serial.println("Sensör Bulundu.");
  } 
  else 
  {
    Serial.println("Sensör Bulunamadı.");
    while (1) { delay(1); }
  }
  parmak.getTemplateCount();
  Serial.print("Sensörde "); Serial.print(parmak.templateCount); 
  Serial.println(" adet kayıt var.");
  Serial.println("Parmak İzi Bekleniyor...");
}
void loop()
{
  Serial.println(digitalRead(sensor));
  if(digitalRead(sensor) == 0)
  {
    fnkParmakIzi();
    delay(100);
  }
  else
  {
    Serial.println("Kilit Açıldı.");
    digitalWrite(kilit,HIGH);
    digitalWrite(ledY,HIGH);
    digitalWrite(ledK,LOW);
    delay(2000);
    digitalWrite(ledK,HIGH);
    digitalWrite(ledY,LOW);
    digitalWrite(kilit,LOW);
  }
}
int fnkParmakIzi() 
{
  uint8_t parmakIzi;
  parmakIzi = parmak.getImage();
  if (parmakIzi != FINGERPRINT_OK)  
    return -1;
  parmakIzi = parmak.image2Tz();
  if (parmakIzi != FINGERPRINT_OK)  
    return -1;
  parmakIzi = parmak.fingerFastSearch();
  if (parmakIzi != FINGERPRINT_OK)  
    return -1;
  Serial.print("Parmak İzi Bulundu. ID : "); Serial.println(parmak.fingerID); 
  Serial.print("Doğruluk / Güvenilirlik (0-255 arası) : "); Serial.println(parmak.confidence);
  if(parmak.fingerID == 1)
  {
    digitalWrite(kilit,HIGH);
    digitalWrite(ledY,HIGH);
    digitalWrite(ledK,LOW);
    delay(2000);
    digitalWrite(ledK,HIGH);
    digitalWrite(ledY,LOW);
    digitalWrite(kilit,LOW);
  }
  return parmak.fingerID; 
}