SlideShare a Scribd company logo
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include "Adafruit_Thermal.h"
#include <Keypad.h>
#define ENRL '1'
#define ATTND '2'
#define PRNT '3'
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // 7-rd/w, 6-En, 5-D4, 4-D5, 3-D6, 2-D7
uint8_t getFingerprintEnroll(uint8_t id);
SoftwareSerial portOne(10, 11);
SoftwareSerial portTwo(8, 9);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&portOne);
Adafruit_Thermal printer(&portTwo);
//...........................................................................key
pad
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {40, 42, 44, 46}; //connect to the row pinouts of the
keypad
byte colPins[COLS] = {48, 50, 52}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
byte ledPin = 13;
boolean blink = false;
boolean ledPin_state;
//...........................................................................key
pad
void setup()
{uint8_t pr;
int idx;
uint8_t ERN[10][12];
//..........................................................................keyp
ad
Serial.begin(9600);
//..........................................................................keyp
ad
lcd.begin(16, 2);
portOne.begin(9600);
portTwo.begin(9600);
lcd.setCursor(0, 0);
lcd.print("SMART ATTENDANCE");
lcd.setCursor(0, 1);
lcd.print(" SYSTEM ");
delay(1000);
// set the data rate for the sensor serial port
if ( finger.verifyPassword()) {
lcd.clear();
lcd.print("Found fing sensr");
delay(1000);
} else {
lcd.clear();
lcd.print("not found sensor");
delay(1000);
while (1);
}
lcd.clear();
lcd.print("ENTER YOUR CHOICE");
delay(1000);
lcd.clear();
lcd.print("1=Erl 2=Att 3=Pnt");
lcd.setCursor(0, 1);
char key ;
for(int j=0;j<100;j++)
{delay(100);
key = keypad.getKey(); if(key) {break;}
}
if(key=='1') {
for(int k=0;k<2;k++)
{
idx=k+1;
lcd.clear();
lcd.print("Enter Number");
lcd.setCursor(0, 1);
delay(100);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][0]=key;lcd.print(ERN[k][0]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][1]=key;lcd.print(ERN[k][1]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][2]=key;lcd.print(ERN[k][2]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][3]=key;lcd.print(ERN[k][3]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][4]=key;lcd.print(ERN[k][4]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][5]=key;lcd.print(ERN[k][5]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][6]=key;lcd.print(ERN[k][6]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][7]=key;lcd.print(ERN[k][7]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][8]=key;lcd.print(ERN[k][8]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][9]=key;lcd.print(ERN[k][9]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][10]=key;lcd.print(ERN[k][10]-48);
for(int j=0;j<20;j++)
{delay(300);
key = keypad.getKey(); if(key) {break;}
}
ERN[k][11]=key;lcd.print(ERN[k][11]-48);
pr = getFingerprintEnroll(idx);
}
}
else if(key=='2') {lcd.print(key);}
else if(key=='3') {lcd.print(key);}
else {lcd.print("Not valid");}
lcd.clear();
lcd.print("Enrol Finished");
/////////////////////////////////////////
//for( int i=0;i<1;i++)
//{
// //Serial.println("Type in the ID # you want to save this finger as...");
// uint8_t id3 = i+1;
// lcd.clear();
// lcd.print("Enrolling ID #");
// lcd.print(id3);
// delay(2000);
//
// getFingerprintEnroll(id3) ;
//}
//.......................................................................printer
//
// printer.begin();
// printer.justify('L');
// printer.setSize('M');
// printer.println("***********************");
// printer.println("hello everyone good afternoon");
// printer.println("This is Sem 8 Project ");
// printer.println("Prepared By : ");
// printer.println("Praful Borad 140213111002");
// printer.println("Jaydev Gohel 140213111007");
// printer.println("Ghanshyam Gilatar 140213111006");
//
//
//
// printer.sleep(); // Tell printer to sleep
// delay(3000L); // Sleep for 3 seconds
// printer.wake(); // MUST wake() before printing again, even if reset
// printer.setDefault();
////..........................................................................pr
inter
}
void loop() // run over and over again
{
//if( key='m') {
// lcd.print("Enter Enroll") ; delay(1000);
// char en = keypad.getKey();
// lcd.setCursor(0, 1);
// lcd.print(en);
// int erl_no;
// erl_no=2;
// //pr = getFingerprintEnroll(erl_no);
// delay(1000);
// lcd.clear();
// lcd.print("step1 clear") ;
//}
//else if(key ='2'){
//
// lcd.setCursor(0, 1);
// lcd.print("Attendence");
// delay(1000);
//
//}
//else if(key ='3') {
//
// lcd.setCursor(0, 1);
// lcd.print("Printing");
// delay(1000);
//}
//else lcd.clear();
// lcd.print("Enter Valid Choice") ;
}
uint8_t idx=0;
uint8_t getFingerprintEnroll(uint8_t id) {
uint8_t p = -1;
lcd.clear();
lcd.print("put your finger");
delay(1000);
lcd.clear();
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
lcd.setCursor(0, 1);
lcd.print("Image taken");
delay(1000);
break;
case FINGERPRINT_NOFINGER:
lcd.clear();
lcd.print("PUT FINGER");
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.print("Communication error");
delay(1000);
break;
case FINGERPRINT_IMAGEFAIL:
lcd.print("Imaging error");
delay(1000);
break;
default:
lcd.clear();
lcd.print("Unknown error");
break;
}
}
// OK success!
lcd.clear();
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
lcd.clear();
lcd.print("Image converted");
delay(1000);
break;
case FINGERPRINT_IMAGEMESS:
lcd.print("Image too messy");
delay(1000);
return p;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.print("Communication error");
delay(1000);
return p;
case FINGERPRINT_FEATUREFAIL:
lcd.print("Could not find fingerprint features");
delay(1000);
return p;
case FINGERPRINT_INVALIDIMAGE:
lcd.print("Could not find fingerprint features");
delay(1000);
return p;
default:
lcd.clear();
lcd.print("Unknown error");
return p;
}
lcd.clear();
lcd.print("Remove finger");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
p = -1;
lcd.clear();
lcd.print("Place same");
lcd.setCursor(0, 1);
lcd.print("finger again");
delay(1000);
lcd.clear();
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
lcd.setCursor(0, 1);
lcd.print("Image taken");
delay(1000);
break;
case FINGERPRINT_NOFINGER:
lcd.clear();
lcd.print("PUT FINGER");
break;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.print("Communication error");
delay(1000);
break;
case FINGERPRINT_IMAGEFAIL:
lcd.print("Imaging error");
delay(1000);
break;
default:
lcd.clear();
lcd.print("Unknown error");
break;
}
}
// OK success!
lcd.clear();
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
lcd.print("Image converted");
delay(1000);
break;
case FINGERPRINT_IMAGEMESS:
lcd.print("Image too messy");
delay(1000);
return p;
case FINGERPRINT_PACKETRECIEVEERR:
lcd.print("Communication error");
delay(1000);
return p;
case FINGERPRINT_FEATUREFAIL:
lcd.print("Could not find fingerprint features");
delay(1000);
return p;
case FINGERPRINT_INVALIDIMAGE:
lcd.print("Could not find fingerprint features");
delay(1000);
return p;
default:
lcd.clear();
lcd.print("Unknown error");
return p;
}
// OK converted!
lcd.clear();
p = finger.createModel();
if (p == FINGERPRINT_OK) {
lcd.print("matched!");
delay(1000);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
lcd.print("Communication error");
delay(1000);
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
lcd.print("not match");
delay(1000);
return p;
} else {
lcd.clear();
lcd.print("Unknown error");
return p;
}
lcd.clear();
p = finger.storeModel(idx);
if (p == FINGERPRINT_OK) {
lcd.print("Stored!");
delay(1000);
idx=idx+1;
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
lcd.print("Communication error");
delay(1000);
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
lcd.print("in that location");
lcd.setCursor(0, 1);
lcd.print("in that location");
delay(1000);
return p;
} else if (p == FINGERPRINT_FLASHERR) {
lcd.print("Error writing");
lcd.setCursor(0, 1);
lcd.print("to flash");
delay(1000);
lcd.clear();
return p;
} else {
lcd.clear();
lcd.print("Unknown error");
return p;
}
}

More Related Content

PDF
Videogiochi in PHP 👾
PDF
Systems and methods for visual presentation and selection of ivr menu
PDF
Systems and methods for electronic communications
RTF
project3
DOCX
PPTX
Imagine a world without mocks
PDF
IP project for class 12 cbse
PDF
The Ring programming language version 1.10 book - Part 65 of 212
Videogiochi in PHP 👾
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for electronic communications
project3
Imagine a world without mocks
IP project for class 12 cbse
The Ring programming language version 1.10 book - Part 65 of 212

What's hot (14)

PDF
Systems and methods for visual presentation and selection of ivr menu
PDF
Systems and methods for visual presentation and selection of ivr menu
PDF
The Ring programming language version 1.2 book - Part 50 of 84
PPTX
New Tools for a More Functional C++
PPT
TDD per Webapps
PDF
망고100 보드로 놀아보자 15
DOCX
Database Implementation Final Document
PDF
The Ring programming language version 1.9 book - Part 130 of 210
PPTX
Final tagless and cats mtl
PDF
NSClient++ whats new for 0.3.9 users
PPT
Bowling Game Kata
PDF
DEP/ASLR bypass without ROP/JIT
PPTX
Webit expo Standard Product
TXT
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menu
The Ring programming language version 1.2 book - Part 50 of 84
New Tools for a More Functional C++
TDD per Webapps
망고100 보드로 놀아보자 15
Database Implementation Final Document
The Ring programming language version 1.9 book - Part 130 of 210
Final tagless and cats mtl
NSClient++ whats new for 0.3.9 users
Bowling Game Kata
DEP/ASLR bypass without ROP/JIT
Webit expo Standard Product
Ad

Similar to Samrt attendance system using fingerprint (20)

DOCX
Fingerprint base security system
PDF
PDF
Fingerprint base security system
PDF
硕士答辩Keynote
PPTX
Magnetic door lock using arduino
PDF
vensoft technologies http://www.ieeedeveloperslabs.in/ finger print based at...
PDF
Combine the keypad and LCD codes in compliance to the following requ.pdf
PDF
Embedded systemsproject_2020
DOCX
PPTX
Fingerprint Based Security System
PPSX
Hex keypad
DOCX
Solution doc
DOCX
PDF
Real time model of a lock gate system upon fingerprint with microcontroller
PPTX
Temperature sensor with a led matrix display (arduino controlled)
DOC
RFID PROJECTS ABSTRACT-RFID based to and fro motion control the toll bridge gate
PPTX
Fingerprint base security system
PPTX
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
PPTX
Fingerprint
DOC
Arduino based keyboard and display interfacing
Fingerprint base security system
Fingerprint base security system
硕士答辩Keynote
Magnetic door lock using arduino
vensoft technologies http://www.ieeedeveloperslabs.in/ finger print based at...
Combine the keypad and LCD codes in compliance to the following requ.pdf
Embedded systemsproject_2020
Fingerprint Based Security System
Hex keypad
Solution doc
Real time model of a lock gate system upon fingerprint with microcontroller
Temperature sensor with a led matrix display (arduino controlled)
RFID PROJECTS ABSTRACT-RFID based to and fro motion control the toll bridge gate
Fingerprint base security system
Temperature Sensor with LED matrix Display BY ►iRFAN QADOOS◄ 9
Fingerprint
Arduino based keyboard and display interfacing
Ad

Recently uploaded (20)

PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
Geodesy 1.pptx...............................................
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPT
Project quality management in manufacturing
DOCX
573137875-Attendance-Management-System-original
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PPTX
additive manufacturing of ss316l using mig welding
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Well-logging-methods_new................
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Geodesy 1.pptx...............................................
R24 SURVEYING LAB MANUAL for civil enggi
Project quality management in manufacturing
573137875-Attendance-Management-System-original
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
additive manufacturing of ss316l using mig welding
UNIT-1 - COAL BASED THERMAL POWER PLANTS
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Automation-in-Manufacturing-Chapter-Introduction.pdf
Foundation to blockchain - A guide to Blockchain Tech
CH1 Production IntroductoryConcepts.pptx
Well-logging-methods_new................

Samrt attendance system using fingerprint

  • 1. #include <Adafruit_Fingerprint.h> #include <SoftwareSerial.h> #include <LiquidCrystal.h> #include "Adafruit_Thermal.h" #include <Keypad.h> #define ENRL '1' #define ATTND '2' #define PRNT '3' LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // 7-rd/w, 6-En, 5-D4, 4-D5, 3-D6, 2-D7 uint8_t getFingerprintEnroll(uint8_t id); SoftwareSerial portOne(10, 11); SoftwareSerial portTwo(8, 9); Adafruit_Fingerprint finger = Adafruit_Fingerprint(&portOne); Adafruit_Thermal printer(&portTwo); //...........................................................................key pad const byte ROWS = 4; //four rows const byte COLS = 3; //three columns char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS] = {40, 42, 44, 46}; //connect to the row pinouts of the keypad byte colPins[COLS] = {48, 50, 52}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); byte ledPin = 13; boolean blink = false; boolean ledPin_state; //...........................................................................key pad void setup() {uint8_t pr; int idx; uint8_t ERN[10][12]; //..........................................................................keyp ad Serial.begin(9600); //..........................................................................keyp ad lcd.begin(16, 2); portOne.begin(9600);
  • 2. portTwo.begin(9600); lcd.setCursor(0, 0); lcd.print("SMART ATTENDANCE"); lcd.setCursor(0, 1); lcd.print(" SYSTEM "); delay(1000); // set the data rate for the sensor serial port if ( finger.verifyPassword()) { lcd.clear(); lcd.print("Found fing sensr"); delay(1000); } else { lcd.clear(); lcd.print("not found sensor"); delay(1000); while (1); } lcd.clear(); lcd.print("ENTER YOUR CHOICE"); delay(1000); lcd.clear(); lcd.print("1=Erl 2=Att 3=Pnt"); lcd.setCursor(0, 1); char key ; for(int j=0;j<100;j++) {delay(100); key = keypad.getKey(); if(key) {break;} } if(key=='1') { for(int k=0;k<2;k++) { idx=k+1; lcd.clear(); lcd.print("Enter Number"); lcd.setCursor(0, 1); delay(100); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][0]=key;lcd.print(ERN[k][0]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][1]=key;lcd.print(ERN[k][1]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][2]=key;lcd.print(ERN[k][2]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][3]=key;lcd.print(ERN[k][3]-48); for(int j=0;j<20;j++) {delay(300);
  • 3. key = keypad.getKey(); if(key) {break;} } ERN[k][4]=key;lcd.print(ERN[k][4]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][5]=key;lcd.print(ERN[k][5]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][6]=key;lcd.print(ERN[k][6]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][7]=key;lcd.print(ERN[k][7]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][8]=key;lcd.print(ERN[k][8]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][9]=key;lcd.print(ERN[k][9]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][10]=key;lcd.print(ERN[k][10]-48); for(int j=0;j<20;j++) {delay(300); key = keypad.getKey(); if(key) {break;} } ERN[k][11]=key;lcd.print(ERN[k][11]-48); pr = getFingerprintEnroll(idx); } } else if(key=='2') {lcd.print(key);} else if(key=='3') {lcd.print(key);} else {lcd.print("Not valid");} lcd.clear(); lcd.print("Enrol Finished"); ///////////////////////////////////////// //for( int i=0;i<1;i++)
  • 4. //{ // //Serial.println("Type in the ID # you want to save this finger as..."); // uint8_t id3 = i+1; // lcd.clear(); // lcd.print("Enrolling ID #"); // lcd.print(id3); // delay(2000); // // getFingerprintEnroll(id3) ; //} //.......................................................................printer // // printer.begin(); // printer.justify('L'); // printer.setSize('M'); // printer.println("***********************"); // printer.println("hello everyone good afternoon"); // printer.println("This is Sem 8 Project "); // printer.println("Prepared By : "); // printer.println("Praful Borad 140213111002"); // printer.println("Jaydev Gohel 140213111007"); // printer.println("Ghanshyam Gilatar 140213111006"); // // // // printer.sleep(); // Tell printer to sleep // delay(3000L); // Sleep for 3 seconds // printer.wake(); // MUST wake() before printing again, even if reset // printer.setDefault(); ////..........................................................................pr inter } void loop() // run over and over again { //if( key='m') { // lcd.print("Enter Enroll") ; delay(1000); // char en = keypad.getKey(); // lcd.setCursor(0, 1); // lcd.print(en); // int erl_no; // erl_no=2; // //pr = getFingerprintEnroll(erl_no); // delay(1000); // lcd.clear(); // lcd.print("step1 clear") ; //} //else if(key ='2'){ // // lcd.setCursor(0, 1); // lcd.print("Attendence"); // delay(1000); // //} //else if(key ='3') { // // lcd.setCursor(0, 1);
  • 5. // lcd.print("Printing"); // delay(1000); //} //else lcd.clear(); // lcd.print("Enter Valid Choice") ; } uint8_t idx=0; uint8_t getFingerprintEnroll(uint8_t id) { uint8_t p = -1; lcd.clear(); lcd.print("put your finger"); delay(1000); lcd.clear(); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: lcd.setCursor(0, 1); lcd.print("Image taken"); delay(1000); break; case FINGERPRINT_NOFINGER: lcd.clear(); lcd.print("PUT FINGER"); break; case FINGERPRINT_PACKETRECIEVEERR: lcd.print("Communication error"); delay(1000); break; case FINGERPRINT_IMAGEFAIL: lcd.print("Imaging error"); delay(1000); break; default: lcd.clear(); lcd.print("Unknown error"); break; } } // OK success! lcd.clear(); p = finger.image2Tz(1); switch (p) { case FINGERPRINT_OK: lcd.clear(); lcd.print("Image converted"); delay(1000); break; case FINGERPRINT_IMAGEMESS: lcd.print("Image too messy"); delay(1000); return p; case FINGERPRINT_PACKETRECIEVEERR: lcd.print("Communication error");
  • 6. delay(1000); return p; case FINGERPRINT_FEATUREFAIL: lcd.print("Could not find fingerprint features"); delay(1000); return p; case FINGERPRINT_INVALIDIMAGE: lcd.print("Could not find fingerprint features"); delay(1000); return p; default: lcd.clear(); lcd.print("Unknown error"); return p; } lcd.clear(); lcd.print("Remove finger"); delay(2000); p = 0; while (p != FINGERPRINT_NOFINGER) { p = finger.getImage(); } p = -1; lcd.clear(); lcd.print("Place same"); lcd.setCursor(0, 1); lcd.print("finger again"); delay(1000); lcd.clear(); while (p != FINGERPRINT_OK) { p = finger.getImage(); switch (p) { case FINGERPRINT_OK: lcd.setCursor(0, 1); lcd.print("Image taken"); delay(1000); break; case FINGERPRINT_NOFINGER: lcd.clear(); lcd.print("PUT FINGER"); break; case FINGERPRINT_PACKETRECIEVEERR: lcd.print("Communication error"); delay(1000); break; case FINGERPRINT_IMAGEFAIL: lcd.print("Imaging error"); delay(1000); break; default: lcd.clear(); lcd.print("Unknown error"); break; } } // OK success! lcd.clear(); p = finger.image2Tz(2); switch (p) { case FINGERPRINT_OK: lcd.print("Image converted");
  • 7. delay(1000); break; case FINGERPRINT_IMAGEMESS: lcd.print("Image too messy"); delay(1000); return p; case FINGERPRINT_PACKETRECIEVEERR: lcd.print("Communication error"); delay(1000); return p; case FINGERPRINT_FEATUREFAIL: lcd.print("Could not find fingerprint features"); delay(1000); return p; case FINGERPRINT_INVALIDIMAGE: lcd.print("Could not find fingerprint features"); delay(1000); return p; default: lcd.clear(); lcd.print("Unknown error"); return p; } // OK converted! lcd.clear(); p = finger.createModel(); if (p == FINGERPRINT_OK) { lcd.print("matched!"); delay(1000); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { lcd.print("Communication error"); delay(1000); return p; } else if (p == FINGERPRINT_ENROLLMISMATCH) { lcd.print("not match"); delay(1000); return p; } else { lcd.clear(); lcd.print("Unknown error"); return p; } lcd.clear(); p = finger.storeModel(idx); if (p == FINGERPRINT_OK) { lcd.print("Stored!"); delay(1000); idx=idx+1; } else if (p == FINGERPRINT_PACKETRECIEVEERR) { lcd.print("Communication error"); delay(1000); return p; } else if (p == FINGERPRINT_BADLOCATION) { lcd.print("in that location"); lcd.setCursor(0, 1); lcd.print("in that location"); delay(1000); return p;
  • 8. } else if (p == FINGERPRINT_FLASHERR) { lcd.print("Error writing"); lcd.setCursor(0, 1); lcd.print("to flash"); delay(1000); lcd.clear(); return p; } else { lcd.clear(); lcd.print("Unknown error"); return p; } }