#include <Servo.h>
#include <Adafruit_Fingerprint.h>
#if ARDUINO >= 100
#include <SoftwareSerial.h>
#else
#include <NEwSOftSerial.h>
#endif
int getFingerprintIDez();
int ledaccess = 7;
int leddeny = 8;
int servoPin = 9;
Servo doorLock;
SoftwareSerial mySerial(2,3);
#else
NewSoftSerial mySerial(2,3);
#endif
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup(){
doorLock.attach(servoPin);
pinMode(ledaccess, OUTPUT);
pinMode(leddeny, OUTPUT);
pinMode(servoPin, OUTPUT);
Serial.begin(9600);
Serial.println("fingertest");
finger.begin(57600);
if (finger.verifyPassword()){
Serial.println("Found fingerprint sensor !");
} else{
Serial.println("Did not find fingerprint sensor :");
while(1);
}
Serial.println("Waiting for valid finger...");
}
void loop(){
int ID = getFingerprintIDez();
digitalWrite(ledaccess, HIGH);
digitalWrite(leddeny, HIGH);
doorLock.write(0);
if (ID >= 0) {
digitalWrite(ledaccess, HIGH);
digitalWrite(leddeny, LOW);
doorLock.write(180);
}
else if (ID == -3){
digitalWrite(ledaccess, LOW);
digitalWrite(leddeny, HIGH);
}
delay(5000);
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch(p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECEIVER:
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
p = finger.image2Tz();
switch (p){
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("image too messy");
return p;
case FINGERPRINT_PACKETRECEIVER:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK){
Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECEIVER){
return p;
} else if (p== FINGERPRINT_NOTFOUND){
Serial.println("Did not find a match");
return p;
} else{
serial.println("Unknown error");
return p;
}
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print("with condifence of"); Serial.println(finger.confidence);
return finger.fingerID;
}
int getFingerprintIDez(){
int p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -2;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK); {
Serial.println("No match found");
return -3;
}
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print("With confidence of"); Serial.println(finger.confidence);
return finger.fingerID;
}