Professional Documents
Culture Documents
Q0000
Q0000
* Q0000
* AUTOR: BrincandoComIdeias
* SKETCH: Leitorbiométrico
* DATA: 21/11/2018
*/
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
#include <PushButton.h>
#define pinBot 11
#define pinTrava 4
// INSTANCIANDO OBJETOS
PushButton botao(pinBot);
uint8_t numID = 1;
bool gravar=false;
uint8_t modoGravacaoID(uint8_t IDgravar);
void setup() {
pinMode(pinTrava, OUTPUT);
digitalWrite(pinTrava, HIGH);
Serial.begin(9600);
finger.begin(57600);
if(finger.verifyPassword()){
} else {
while(true) {
delay(1);
Serial.println("Fim do Setup!");
void loop() {
botao.button_loop();
if ( botao.pressed() ){
gravar = true;
if(gravar){
modoGravacaoID(0);
gravar = false;
getFingerprintIDez();
int p = -1;
delay(2000);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Leitura concluÃda");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
delay(200);
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erro comunicação");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Erro de leitura");
break;
default:
Serial.println("Erro desconhecido");
break;
// OK successo!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Leitura convertida");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Leitura suja");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erro de comunicação");
return p;
case FINGERPRINT_FEATUREFAIL:
return p;
case FINGERPRINT_INVALIDIMAGE:
return p;
default:
Serial.println("Erro desconhecido");
return p;
}
Serial.println("Remova o dedo");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
p = -1;
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Leitura concluÃda");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
delay(200);
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erro de comunicação");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Erro de Leitura");
break;
default:
Serial.println("Erro desconhecido");
break;
}
// OK successo!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("Leitura convertida");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Leitura suja");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Erro de comunicação");
return p;
case FINGERPRINT_FEATUREFAIL:
return p;
case FINGERPRINT_INVALIDIMAGE:
return p;
default:
Serial.println("Erro desconhecido");
return p;
// OK convertido!
if (p == FINGERPRINT_OK) {
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Erro de comunicação");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
return p;
} else {
Serial.println("Erro desconhecido");
return p;
p = finger.storeModel(IDgravar);
if (p == FINGERPRINT_OK) {
Serial.println("Armazenado!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Erro de comunicação");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
return p;
} else if (p == FINGERPRINT_FLASHERR) {
return p;
} else {
Serial.println("Erro desconhecido");
return p;
int getFingerprintIDez() {
uint8_t p = finger.getImage();
p = finger.image2Tz();
p = finger.fingerFastSearch();
if (finger.fingerID == 0) {
Serial.print("Modo Administrador!");
numID++;
modoGravacaoID(numID);
return 0;
} else {
digitalWrite(pinTrava, LOW);
delay(500);
digitalWrite(pinTrava, HIGH);
return finger.fingerID;