Kode ESP32 untuk mendaftarkan sidik jari ke sensor sidik jari
#include <Adafruit_Fingerprint.h>
#define MODEM_RX 16
#define MODEM_TX 17
#define mySerial Serial2 // use for ESP32
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
uint8_t id;
void setup()
{
Serial.begin(9600);
while (!Serial); // For Yun/Leo/Micro/Zero/...
delay(100);
Serial.println("\n\nzidCreative Innoiti TF 1");
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Sensor ditemukan!");
} else {
Serial.println("Ups, sensor tidak ditemukan :(");
while (1) { delay(1); }
}
}
uint8_t readnumber(void) {
uint8_t num = 0;
while (num == 0) {
while (! Serial.available());
num = Serial.parseInt();
}
return num;
}
void loop() // run over and over again
{
Serial.println("Siap untuk mendaftarkan sidik jari!");
Serial.println("Masukkan ID # (from 1 to 127) simpan sidik sebagai...");
id = readnumber();
if (id == 0) {// ID #0 not allowed, try again!
return;}
Serial.print("Mendaftarkan ID #");
Serial.println(id);
getFingerprintEnroll() ;
}
uint8_t getFingerprintEnroll() {
int p = -1;
Serial.print("Tungguu.... #"); Serial.println(id);
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("gambar diambil");
break;
case FINGERPRINT_NOFINGER:
Serial.println(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Komunikasi eror");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Gambar eror");
break;
default:
Serial.println("eror tidak diketahui");
break;
}
}
// OK success!
p = finger.image2Tz(1);
switch (p) {
case FINGERPRINT_OK:
Serial.println("gambar terkonversi");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Gambar terlalu blur");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Komunikasi eror");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("tidak dapat menemukan fitur sidik jari");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("tidak dapat menemukan fitur sidik jari");
return p;
default:
Serial.println("eror tidak diketahui");
return p;
}
Serial.println("Lepas jari");
delay(2000);
p = 0;
while (p != FINGERPRINT_NOFINGER) {
p = finger.getImage();
}
Serial.print("ID "); Serial.println(id);
p = -1;
Serial.println("Letakkan jari yang sama");
while (p != FINGERPRINT_OK) {
p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Gambar terambil");
break;
case FINGERPRINT_NOFINGER:
Serial.print(".");
break;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Komunikasi eror");
break;
case FINGERPRINT_IMAGEFAIL:
Serial.println("pengambilan gambar eror");
break;
default:
Serial.println("eror tidak diketahui");
break;
}
}
// OK success!
p = finger.image2Tz(2);
switch (p) {
case FINGERPRINT_OK:
Serial.println("gambar terkonversi");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("gambar terlalu blur");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("komunikasi eror");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("tidak dapat menemukan fitur sidik jari");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("tidak dapat menemukan fitur sidik jari");
return p;
default:
Serial.println("eror tidak diketahui");
return p;
}
// OK converted!
Serial.print("Creating model for #"); Serial.println(id);
p = finger.createModel();
if (p == FINGERPRINT_OK) {
Serial.println("Cocok!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("komunikasi eror");
return p;
} else if (p == FINGERPRINT_ENROLLMISMATCH) {
Serial.println("sidik jari tidak cocok");
return p;
} else {
Serial.println("eror tidak diketahui");
return p;
}
Serial.print("ID "); Serial.println(id);
p = finger.storeModel(id);
if (p == FINGERPRINT_OK) {
Serial.println("terdaftar!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("komunikasi eror");
return p;
} else if (p == FINGERPRINT_BADLOCATION) {
Serial.println("tidak dapat menyimpan di lokasi tersebut");
return p;
} else if (p == FINGERPRINT_FLASHERR) {
Serial.println("eror menulis flash");
return p;
} else {
Serial.println("eror tidak diketahui");
return p;
}
}