#include #if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__) SoftwareSerial mySerial(0, 1); #else #define mySerial Serial1 #endif Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); void setup() { Serial.begin(9600); delay(100); finger.begin(57600); delay(5); if (finger.verifyPassword()) { } else { while (1) { delay(1); } } finger.getParameters(); finger.getTemplateCount(); if (finger.templateCount == 0) { Serial.println("Sensor doesn't contain any fingerprint data. Please run the 'enroll' example."); } else { Serial.println("Waiting for a valid finger..."); Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates"); } pinMode(13, OUTPUT); } void loop() { getFingerprintID(); delay(50); } uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_NOFINGER: delay(500); return p; case FINGERPRINT_PACKETRECIEVEERR: return p; case FINGERPRINT_IMAGEFAIL: default: return p; } p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: break; case FINGERPRINT_IMAGEMESS: case FINGERPRINT_PACKETRECIEVEERR: case FINGERPRINT_FEATUREFAIL: case FINGERPRINT_INVALIDIMAGE: default: return p; } p = finger.fingerSearch(); if (p == FINGERPRINT_OK) { // Found a print match! Serial.println(1); } else if (p == FINGERPRINT_PACKETRECIEVEERR || p == FINGERPRINT_NOTFOUND) { // Communication error or no match found return p; } else { return p; } return finger.fingerID; } 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; return finger.fingerID; }