Created
October 3, 2018 06:22
-
-
Save OwiseKyawMinOo/b8960d44d91185f216ba087f03a20e6a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Adafruit_Fingerprint.h> | |
#include <SoftwareSerial.h> | |
SoftwareSerial mySerial(2, 3); | |
#include<LiquidCrystal.h> | |
LiquidCrystal lcd={A0,A1,A2,A3,A4,A5}; | |
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); | |
int r=8,r1=9; | |
int buzzer=10; | |
void setup() | |
{ | |
pinMode(r,OUTPUT); | |
pinMode(r1,OUTPUT); | |
pinMode(buzzer,OUTPUT); | |
lcd.begin(16,2); | |
Serial.begin(9600); | |
while (!Serial); | |
delay(100); | |
Serial.println("\n\nAdafruit finger detect test"); | |
// set the data rate for the sensor serial port | |
finger.begin(57600); | |
if (finger.verifyPassword()) { | |
Serial.println("Found fingerprint sensor!"); | |
} else { | |
Serial.println("Did not find fingerprint sensor :("); | |
while (1) { delay(1); } | |
} | |
finger.getTemplateCount(); | |
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates"); | |
Serial.println("Waiting for valid finger..."); | |
} | |
void loop() // run over and over again | |
{ | |
getFingerprintIDez(); | |
getFingerprintIDezN(); | |
delay(50);//don't ned to run this at full speed. | |
digitalWrite(8,HIGH); | |
digitalWrite(9,LOW); | |
digitalWrite(buzzer,LOW); | |
lcd.clear(); | |
lcd.setCursor(4,0); | |
lcd.print("welcome! "); | |
delay(1000); | |
} | |
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_PACKETRECIEVEERR: | |
Serial.println("Communication error"); | |
return p; | |
case FINGERPRINT_IMAGEFAIL: | |
Serial.println("Imaging error"); | |
return p; | |
default: | |
Serial.println("Unknown error"); | |
return p; | |
} | |
// OK success! | |
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_PACKETRECIEVEERR: | |
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; | |
} | |
// OK converted! | |
p = finger.fingerFastSearch(); | |
if (p == FINGERPRINT_OK) { | |
Serial.println("Found a print match!"); | |
} else if (p == FINGERPRINT_PACKETRECIEVEERR) { | |
Serial.println("Communication error"); | |
return p; | |
} else if (p == FINGERPRINT_NOTFOUND) { | |
Serial.println("Did not find a match"); | |
return p; | |
} else { | |
Serial.println("Unknown error"); | |
return p; | |
} | |
// found a match! | |
Serial.print("Found ID #"); 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! | |
digitalWrite(8,LOW); | |
digitalWrite(9,HIGH); | |
//delay(3000); | |
lcd.clear(); | |
lcd.setCursor(2,0); | |
lcd.print("Right Finger"); | |
lcd.setCursor(3,1); | |
lcd.print("Open Lock"); | |
delay(1000); | |
delay(10000); | |
digitalWrite(buzzer,LOW); | |
Serial.print("Found ID #"); Serial.print(finger.fingerID); | |
Serial.print(" with confidence of "); Serial.println(finger.confidence); | |
return finger.fingerID; | |
} | |
int getFingerprintIDezN() { | |
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; | |
// COULD NOTfound a match! | |
lcd.clear(); | |
lcd.setCursor(2,0); | |
lcd.print("wrong finger"); | |
delay(1000); | |
digitalWrite(buzzer,HIGH); | |
delay(3000); | |
digitalWrite(buzzer,LOW); | |
Serial.print("Found ID #"); Serial.print(finger.fingerID); | |
Serial.print(" with confidence of "); Serial.println(finger.confidence); | |
return finger.fingerID; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment