Görseldeki parmak izi okuma uygulaması görülmektedir. UART haberleşme protokolü kullanılan sensör Arduino’da SoftwareSerial kütüphanesi kullanılarak 2 ve 3 numaralı pinlere bağlanmıştır. Görselde parmak izi sensörünün pin yapısı verilmiştir. Parmak izi kaydetme programıyla kaydedilen parmak izleri, parmak izi okuma programıyla test edilir. İşlemler seri ekran kullanılarak yapılır.


VCC: 3,3 V-5 V besleme.
GND: Topraklama pini.
TX: Veri çıkışı (3,3 V).
RX: Veri girişi (3,3 V).
#include <Adafruit_Fingerprint.h> // v2.1.0 SoftwareSerial seriIletisim(2, 3); // Arduino'da 2. pini Rx, 3. pini TX olarak kullan. Adafruit_Fingerprint parmakIzi = Adafruit_Fingerprint(&seriIletisim); byte id; void setup() { Serial.begin(9600); Serial.println("\n\nParmak izi kaydetme."); parmakIzi.begin(57600); // Sensör seri portu. if ( parmakIzi.verifyPassword()) { Serial.println("Parmak izi sensörü bulundu."); } else { Serial.println("Parmak izi sensörü bulunamadı.("); while (1) { delay(1); } } Serial.println(F("Parmak izi sensörü parametreleri: ")); parmakIzi.getParameters(); Serial.print(F("Durum: 0x")); Serial.println( parmakIzi.status_reg, HEX); Serial.print(F("Sistem ID: 0x")); Serial.println( parmakIzi.system_id, HEX); Serial.print(F("Kapasite: ")); Serial.println( parmakIzi.capacity); Serial.print(F("Güvenlik seviyesi: ")); Serial.println( parmakIzi.security_level); Serial.print(F("Cihaz adresi: ")); Serial.println( parmakIzi.device_addr, HEX); Serial.print(F("Packet len: ")); Serial.println( parmakIzi.packet_len); Serial.print(F("Baud rate: ")); Serial.println( parmakIzi.baud_rate); } byte numaraOku(void) { byte num = 0; while (num == 0) { while (! Serial.available()); num = Serial.parseInt(); } return num; } void loop() { Serial.println("1-127 arası ID kayıt numarası giriniz: "); id = numaraOku(); if (id == 0) { // 0 olmaz. return; } Serial.print("Kaydedilen ID: "); Serial.println(id); while (! parmakIziKaydet() ); } byte parmakIziKaydet() { int p = -1; Serial.print("Kayıt ID'si: "); Serial.println(id); while (p != FINGERPRINT_OK) { p = parmakIzi.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("\nGörüntü alındı"); break; case FINGERPRINT_NOFINGER: Serial.print("."); delay(200); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("İletişim hatası."); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Görüntüleme hatası."); break; default: Serial.println("Bilinmeyen hata."); break; } } p = parmakIzi.image2Tz(1); switch (p) { case FINGERPRINT_OK: Serial.println("Görüntü işlendi."); break; case FINGERPRINT_IMAGEMESS: Serial.println("Görüntü karışık."); 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; } Serial.println("Parmağınızı kaldırınız."); delay(2000); p = 0; while (p != FINGERPRINT_NOFINGER) { p = parmakIzi.getImage(); } Serial.print("ID "); Serial.println(id); p = -1; Serial.println("Aynı parmağı tekrar yerleştiriniz."); while (p != FINGERPRINT_OK) { p = parmakIzi.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("\nGörüntü alındı."); break; case FINGERPRINT_NOFINGER: Serial.print("."); delay(200); break; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("İletişim hatası."); break; case FINGERPRINT_IMAGEFAIL: Serial.println("Görüntü hatası."); break; default: Serial.println("Bilinmeyen hata."); break; } } p = parmakIzi.image2Tz(2); switch (p) { case FINGERPRINT_OK: Serial.println("Görüntü oluşturuldu."); break; case FINGERPRINT_IMAGEMESS: Serial.println("Görüntü karışık."); 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; } Serial.print("Kayıt numarası: "); Serial.println(id); p = parmakIzi.createModel(); if (p == FINGERPRINT_OK) { Serial.println("Parmak izi eşleşti."); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("İletişim hatası."); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { Serial.println("Parmak izi eşleşmedi."); return p; } else { Serial.println("Bilinmeyen hata."); return p; } Serial.print("ID "); Serial.println(id); p = parmakIzi.storeModel(id); if (p == FINGERPRINT_OK) { Serial.println("Kaydedildi!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("İletişim hatası."); return p; } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Bu alana kaydedilemedi."); return p; } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Yazma hatası."); return p; } else { Serial.println("Bilinmeyen hata."); return p; } return true; }
#include <Adafruit_Fingerprint.h> // v2.1.0 SoftwareSerial seriIletisim(2, 3); // Arduino'da 2. pini Rx, 3. pini TX olarak kullan. Adafruit_Fingerprint parmakIzi = Adafruit_Fingerprint(&seriIletisim); void setup() { Serial.begin(9600); Serial.println("\n\nParmak izi okuma."); parmakIzi.begin(57600); // Sensör seri portu. if (parmakIzi.verifyPassword()) { Serial.println("Parmak izi sensörü tespit edildi."); } else { Serial.println("Parmak izi sensörü tespit edilemedi :("); while (1) { delay(1); } } parmakIzi.getTemplateCount(); Serial.print("Hafizada "); Serial.print(parmakIzi.templateCount); Serial.println(" parmak izi mevcut."); Serial.println("Lütfen parmağınızı okuyucuya yerleştiriniz."); Serial.println("Parmak izi tespit ediliyor..."); } void loop() { getFingerprintIDez(); delay(50); } byte getFingerprintID() { byte p = parmakIzi.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Görüntü kaydedildi."); 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; } p = parmakIzi.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Görüntü işlendi."); break; case FINGERPRINT_IMAGEMESS: Serial.println("Görüntü karışık."); 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; } p = parmakIzi.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("Eşleşme bulunamadı."); return p; } else { Serial.println("Bilinmeyen hata."); return p; } Serial.print("Bulunan ID: "); Serial.print(parmakIzi.fingerID); Serial.print(" doğruluk seviyesi: "); Serial.println(parmakIzi.confidence); return parmakIzi.fingerID; } int getFingerprintIDez() { byte p = parmakIzi.getImage(); if (p != FINGERPRINT_OK) return -1; p = parmakIzi.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = parmakIzi.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; Serial.print("Bulunan ID: "); Serial.print(parmakIzi.fingerID); Serial.print(" doğruluk seviyesi: "); Serial.println(parmakIzi.confidence); return parmakIzi.fingerID; }
#include <Adafruit_Fingerprint.h> // v2.1.0 SoftwareSerial seriIletisim(2, 3); // Arduino'da 2. pini Rx, 3. pini TX olarak kullan. Adafruit_Fingerprint parmakIzi = Adafruit_Fingerprint(&seriIletisim); void setup() { Serial.begin(9600); Serial.println("\n\nParmak izi silme."); parmakIzi.begin(57600); // Sensör seri portu. if ( parmakIzi.verifyPassword()) { Serial.println("Parmak izi sensörü tespit edildi."); } else { Serial.println("Parmak izi sensörü tespit edilemedi :("); while (1) { delay(1); } } } byte numaraOku(void) { byte num = 0; while (num == 0) { while (! Serial.available()); num = Serial.parseInt(); } return num; } void loop() { Serial.println("1-127 arası silinecek ID kayıt numarası giriniz: "); byte id = numaraOku(); if (id == 0) { // 0 olmaz. return; } Serial.print("Silinen ID: "); Serial.println(id); parmakIziSil(id); } byte parmakIziSil(byte id) { byte p = -1; p = parmakIzi.deleteModel(id); if (p == FINGERPRINT_OK) { Serial.println("Silindi."); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("İletişim hatası."); } else if (p == FINGERPRINT_BADLOCATION) { Serial.println("Bu alandan silinemedi."); } else if (p == FINGERPRINT_FLASHERR) { Serial.println("Hafızaya yazarken hata."); } else { Serial.print("Bilinmeyen hata: 0x"); Serial.println(p, HEX); } return p; }
No responses yet