Академический Документы
Профессиональный Документы
Культура Документы
Características:
Modelo: FPM10A
Tensão de alimentação DC: 3,6 a 6V
Corrente: <120mA
Capacidade de armazenamento on-board: 300 digitais
Nível de segurança configurável: 1-baixo, 3-médio, 5-alto
Taxa de aceitação falsa: <0,001% (nível de segurança 3)
Taxa de rejeição falsa: <1,0% (nível de segurança 3)
Interface: UART (Serial TTL)
Taxa de transmissão: 9600, 19200, 28800, 38400, 57600 (o padrão
é 57600)
Área da janela de leitura: 14x18mm
Dimensões totais: 55x 21x21mm
Peso: 20g
Montagem
Usaremos essas bibliotecas no projeto.
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
https://drive.google.com/drive/folders/1BFhQC4PktBHRkiLiTqPYlcuG2kwB
UZGI?usp=sharing
Deve ficar
completamente
vazia.
uint8_t id;
void setup()
{
Serial.begin(115200);
Serial.println("Teste do sensor");
if (finger.verifyPassword()) {
Serial.println("O sensor foi encontrado!");
} else {
Serial.println("O sensor não foi encontrado :(");
while (1);
}
}
uint8_t readnumber(void) {
uint8_t num = 0;
while (num == 0) {
while (! Serial.available());
num = Serial.parseInt();
}
return num;
}
void loop()
{
Serial.println("Digite o número de ID que deseja salvar...");
id = readnumber();
if (id == 0) {// ID #0 !
return;
}
Serial.print("Gravação ID #");
Serial.println(id);
while (! getFingerprintEnroll(id) );
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println ("Imagem convertida");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println ("Imagem distorcida");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("erro na comunicação");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println ("Não foi possível reconhecer a digital");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println ("Não foi possível reconhecer a digital");
return p;
default:
Serial.println ("erro desconhecido");
return p;
}
p = -1;
Serial.println ("Coloque o mesmo dedo novamente");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println ("Imagem convertida");
break;
case FINGERPRINT_NOFINGER:
Serial.print (".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("erro na comunicação");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println ("erro na imagem");
break;
default:
Serial.println ("erro desconhecido");
break;
}
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println ("Imagem convertida");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println ("Imagem distorcida");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("erro na comunicação");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println ("Não foi possível reconhecer a digital");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println ("Não foi possível reconhecer a digital");
return p;
default:
Serial.println ("erro desconhecido");
return p;
}
// OK converted!
Serial.print("Criando modelo para #"); Serial.println(id);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println ("Digitais conferem!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println ("erro na comunicação");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println ("As impressões digitais não batem.");
return p;
} else {
Serial.println ("erro desconhecido");
return p;
}
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
int getFingerprintIDez();
// pin 33 Input do sensor (fio verde) ou rx
// pin 32 Output que vem do arduino (fio amarelo ou branco) tx
//mySerial(rx,tx)
SoftwareSerial mySerial(33,32);
void setup()
{
Serial.begin(115200);
Serial.println("Teste do sensor");
pinMode(27,OUTPUT); // relé
if (finger.verifyPassword()) {
Serial.println("O sensor foi encontrado!");
} else {
Serial.println("O sensor não foi encontrado :(");
while (1);
}
}
void loop()
{
getFingerprintIDez();
delay(50);
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println ("Impressão gravada");
break;
case FINGERPRINT_NOFINGER:
Serial.println ("Nenhuma digital encontrada");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("erro na comunicação");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println ("erro na imagem");
break;
return p;
default:
Serial.println ("erro desconhecido");
return p;
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println ("Imagem convertida");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println ("Imagem distorcida");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("erro na comunicação");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println ("Não foi possível reconhecer a digital");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println ("Não foi possível reconhecer a digital");
return p;
default:
Serial.println ("erro desconhecido");
return p;
}
// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println ("Foi encontrada uma digital!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println ("erro na comunicação");
return p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Não foi encontrada nenhuma digital");
return p;
} else {
Serial.println ("erro desconhecido");
return p;
}
}
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;
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
uint8_t id;
void setup()
{
Serial.begin(115200);
if (finger.verifyPassword()) {
Serial.println("O sensor foi encontrado!");
} else {
Serial.println("O sensor não foi encontrado :(");
while (1);
}
}
uint8_t readnumber(void) {
uint8_t num = 0;
while (num == 0) {
while (! Serial.available());
num = Serial.parseInt();
}
return num;
}
void loop()
{
Serial.println("Digite o número de ID que deseja excluir...");
id = readnumber();
if (id == 0) {// ID #0 !
return;
}
Serial.print("Deletando ID #");
Serial.println(id);
deleteFingerprint(id);
}
uint8_t deleteFingerprint(uint8_t id) {
uint8_t p = -1;
p = finger.deleteModel(id);
if (p == FINGERPRINT_OK) {
Serial.println ("A digital foi apagada!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println ("erro na comunicação");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println ("Não foi possível excluir essa digital");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println ("Erro ao gravar na memória");
return p;
} else {
Serial.println ("erro desconhecido: 0x"); Serial.println (p, HEX);
return p;
}
}