Arduino İle Parmak İzi Okuyucu Sensör Kullanımı

0 2.588
Projelerinize güvenlik sistemi eklemeniz için en kolay ve güvenli yöntemlerden biri parmak izidir. Arduino ile parmak izi okuyucu sensörü rahatlıkla kullanabilirsiniz. Adafruit firmasının geliştirmiş olduğu sensör ile entegreli çalışan kütüphanesi sayesinde hızlı bir şekilde kodları ekleyebilirsiniz. Sensör seri iletişim (TTL) üzerinden haberleşme sağlayarak, üzerinde barındırdığı görüntü işleme DSP  çipi ile parmak izini analiz eder ve işlemciye değerleri gönderir. Parmak izi sensörü flash belleğinde en fazla 162 parmak izi saklamaktadır.

Teknik Özellikleri : 

  • Besleme gerilimi: 3.6 – 6.0VDC
  • Çalışma akımı: 120mA max
  • En yüksek akım: maks 150mA
  • Parmak izi görüntüleme süresi: <1,0 saniye
  • Pencere alanı: 14 mm x 18mm
  • İmza dosyası: 256 bayt
  • Şablon dosyası: 512 bayt
  • Depolama kapasitesi: 162 şablon
  • Güvenlik derecelendirmeleri (1-5 arası güvenlik seviyeleri)
  • Hatalı Onaylama Oranı: <0.001 (Güvenlik seviyesi 3)
  • Hatıl Reddetme Oranı: <% 1.0 (Güvenlik seviyesi 3)
  • Arayüz: TTL Seri
  • Baud hızı: 9600, 19200, 28800, 38400, 57600 (varsayılan 57600)
  • Çalışma sıcaklık derecesi: -20C – +50C
  • Çalışan nemlilik:% 40 -% 85 RH
  • Tam Boyutlar: 56 x 20 x 21.5mm
  • Açık Boyutlar (kutuya yerleştirildiğinde): 21 mm x 21 mm x 21 mm üçgen
  • Ağırlık: 20 gram

Sensörün Kablolarının İsimleri :

  • Siyah Kablo : GND
  • Beyaz Kablo : RX
  • Yeşil Kablo : TX
  • Kırmızı Kablo : VCC
  • Sarı ve Yeşil Kablo : NC ( Arduino bağlanıtısında bunları kullanmamıza gerek yok)
Aşağıdaki şekildeki gibi bağlantıları yapabilirsiniz
Kütüphaneyi Buradan İndirebilirsiniz : Parmak izi Sensörü

Kütüphane dosyasındaki Adafruit_Fingerprint→fingerprint kodunu açın veya aşağıdaki kodu kopyalayıp arduinoya yükleyebilirsiniz.

Parmak İzi Sensör Örnek Kodu :


#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()
{
Serial.begin(9600);
while (!Serial); // For Yun/Leo/Micro/Zero/...
delay(100);
Serial.println("\n\nAdafruit parmak algılama testi");
finger.begin(57600);

if (finger.verifyPassword()) {
Serial.println("Parmak izi sensörü tespit edildi!");
} else {
Serial.println("Parmak izi sensörü tespit edilemedi :(");
while (1) { delay(1); }
}

finger.getTemplateCount();
Serial.print("sensör içeriği "); Serial.print(finger.templateCount); Serial.println(" Parmak izleri");
Serial.println("Parmak tespit ediliyor...");
}

void loop() // run over and over again
{
getFingerprintIDez();
delay(50); //don't ned to run this at full speed.
}

uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Resim Çekildi");
break;
case FINGERPRINT_NOFINGER:
Serial.println("Parmak izi yok");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("İletişim hatası");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Görüntüleme hatası");
return p;
default:
Serial.println("Bilinmeyen hata");
return p;
}

// OK success!

p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("işlenmiş görüntü");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Çok dağınık görüntü");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("İletişim hatası");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Parmak izi özellikleri bulunamadı");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Parmak izi özellikleri bulunamadı");
return p;
default:
Serial.println("Bilinmeyen hata");
return p;
}

// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Bir parmak izi ile eşleşti!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("İletişim hatası");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("Bir eşleşme bulunamadı");
return p;
} else {
Serial.println("Bilinmeyen hata");
return p;
}

// found a match!
Serial.print("Bulunan Kimlik #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);

return finger.fingerID;
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;

p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;

p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;

// found a match!
Serial.print("Bulunan Kimlik#"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}

SFGDemo Programı ile Arduino Üzerinden Parmak İzi Kayıt Etme

Uygulama yazılımını buradan indirin : SFGDemo
Arduino nano, uno, mega kullanıyorsanız  aşağıdaki gibi boş taslak yükleyin.
void setup () {}
boşluk döngüsü () {}
Leonardo, Micro, Yun, Zero, ATSAMD21 veya ATmega32U4 tabanlı denetleyiciler kullanıysanız aşağıdaki yazılımı indirin
void setup() {
// put your setup code here, to run once:
Serial1.begin(57600);
Serial.begin(57600);
}
void loop() {
while (Serial.available())
Serial1.write(Serial.read());
while (Serial1.available())
Serial.write(Serial1.read());
}

Devre Bağlantısı

Sensör ile arduinonun bağlantısını yaptıktan sonra SFGDemo programını çalıştırın. Open device butonuna tıklayın ve arduinonun pc ye bağlı olduğu portu seçin.
Security level kısmından okuma hassasiyetini ayarlayabilirsiniz. Daha detaylı okuması için bu değeri değiştirin.

Parmak izi okuma işlemi

Ayarları yaptık ve Preview seçeneğini seçin. Ardından Enroll butonuna tıklayın. Karşınıza gelen ekrandan parmak izi numarası isteyecektir. Buraya ilk kez kayıt edecekseniz 1 yazabilirsiniz. Diğer parmak izleri için de sırayla numaralandırma verebilirsiniz. Toplam 162 iz kaydedebildiği için maksimumu 162 verebilirsiniz.
Ok butonuna bastığınızda aşağıdaki gibi  “parmağınızı sensörü üzerine koyun” uyarısı verecektir.
Parmağınızı sensör üzerine koyduğunuzda aşağıdaki gibi parmak izinizi ekranda görebilirsiniz.
Bu işlemi tekrarlayın ve aşağıdaki gibi kayıt başarılı uyarısını gördüğünüzde parmak izi eklenmiştir.

Kaynak : Adafruit Optical Fingerprint Sensor

Bunları da beğenebilirsin

Cevap bırakın

E-posta hesabınız yayımlanmayacak.