✅ FULL CODING — Enroll + Delete + Verify (ESP32 + Fingerprint AS608)
====== MENU FINGERPRINT ======
1. Enroll (Daftar cap jari)
2. Delete (Padam cap jari)
3. Verify (Scan & semak)
================================
// Pada Serial Tekan 1dan tekan id yg nak save cap jari contoh 11(akan intall id 1)
//atau 12(akan intal id 2) sama fungsi jika hendak padam tekan 2(tekan id ) contoh 22 (id 2 padam )
//atau 12(akan intal id 2) sama fungsi jika hendak padam tekan 2(tekan id ) contoh 22 (id 2 padam )
//Start Coding dari bawah ni copy dan letak kat Arduino IDE
#include <HardwareSerial.h>
#include <Adafruit_Fingerprint.h>
HardwareSerial mySerial(2);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
Serial.begin(115200);
mySerial.begin(57600, SERIAL_8N1, 16, 17); // ESP32 RX=16, TX=17
Serial.println("Sistem Fingerprint ESP32");
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Sensor fingerprint OK.");
} else {
Serial.println("Sensor fingerprint TIDAK DIKESAN!");
while (1);
}
menuDisplay();
}
void loop() {
if (Serial.available()) {
char pilihan = Serial.read();
if (pilihan == '1') {
enrollFingerprint();
}
else if (pilihan == '2') {
deleteFingerprint();
}
else if (pilihan == '3') {
verifyFingerprint();
}
delay(300);
menuDisplay();
}
}
void menuDisplay() {
Serial.println("\n====== MENU FINGERPRINT ======");
Serial.println("1. Enroll (Daftar cap jari)");
Serial.println("2. Delete (Padam cap jari)");
Serial.println("3. Verify (Scan & semak)");
Serial.println("================================");
Serial.print("Pilih fungsi: ");
}
// =============================================================
// FUNGSI ENROLL CAP JARI
// =============================================================
void enrollFingerprint() {
int id;
Serial.print("Masukkan ID baru (1-200): ");
while (!Serial.available());
id = Serial.parseInt();
Serial.println(id);
if (id < 1 || id > 200) {
Serial.println("ID tidak sah.");
return;
}
Serial.println("Letakkan jari...");
while (finger.getImage() != FINGERPRINT_OK);
Serial.println("Tunggu...");
if (finger.image2Tz(1) != FINGERPRINT_OK) {
Serial.println("Gagal simpan imej.");
return;
}
Serial.println("Angkat jari...");
delay(2000);
Serial.println("Letak jari sekali lagi...");
while (finger.getImage() != FINGERPRINT_OK);
if (finger.image2Tz(2) != FINGERPRINT_OK) {
Serial.println("Gagal simpan imej kali kedua.");
return;
}
if (finger.createModel() != FINGERPRINT_OK) {
Serial.println("Model cap jari tidak sepadan!");
return;
}
if (finger.storeModel(id) == FINGERPRINT_OK) {
Serial.println("Enroll BERJAYA!");
} else {
Serial.println("Tidak dapat simpan data!");
}
}
// =============================================================
// FUNGSI DELETE / PADAM CAP JARI
// =============================================================
void deleteFingerprint() {
Serial.print("Masukkan ID yang nak dipadam: ");
while (!Serial.available());
int id = Serial.parseInt();
Serial.println(id);
if (finger.deleteModel(id) == FINGERPRINT_OK) {
Serial.println("Cap jari berjaya dipadam.");
} else {
Serial.println("Gagal memadam!");
}
}
// =============================================================
// FUNGSI VERIFY (SCAN)
// =============================================================
void verifyFingerprint() {
Serial.println("Sila letakkan jari...");
while (finger.getImage() != FINGERPRINT_OK);
if (finger.image2Tz() != FINGERPRINT_OK) {
Serial.println("Gagal proses imej.");
return;
}
if (finger.fingerFastSearch() != FINGERPRINT_OK) {
Serial.println("Jari TIDAK DITEMUI.");
return;
}
Serial.print("Jari sah! ID = ");
Serial.println(finger.fingerID);
Serial.print("Confidence = ");
Serial.println(finger.confidence);
}
#include <Adafruit_Fingerprint.h>
HardwareSerial mySerial(2);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
Serial.begin(115200);
mySerial.begin(57600, SERIAL_8N1, 16, 17); // ESP32 RX=16, TX=17
Serial.println("Sistem Fingerprint ESP32");
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Sensor fingerprint OK.");
} else {
Serial.println("Sensor fingerprint TIDAK DIKESAN!");
while (1);
}
menuDisplay();
}
void loop() {
if (Serial.available()) {
char pilihan = Serial.read();
if (pilihan == '1') {
enrollFingerprint();
}
else if (pilihan == '2') {
deleteFingerprint();
}
else if (pilihan == '3') {
verifyFingerprint();
}
delay(300);
menuDisplay();
}
}
void menuDisplay() {
Serial.println("\n====== MENU FINGERPRINT ======");
Serial.println("1. Enroll (Daftar cap jari)");
Serial.println("2. Delete (Padam cap jari)");
Serial.println("3. Verify (Scan & semak)");
Serial.println("================================");
Serial.print("Pilih fungsi: ");
}
// =============================================================
// FUNGSI ENROLL CAP JARI
// =============================================================
void enrollFingerprint() {
int id;
Serial.print("Masukkan ID baru (1-200): ");
while (!Serial.available());
id = Serial.parseInt();
Serial.println(id);
if (id < 1 || id > 200) {
Serial.println("ID tidak sah.");
return;
}
Serial.println("Letakkan jari...");
while (finger.getImage() != FINGERPRINT_OK);
Serial.println("Tunggu...");
if (finger.image2Tz(1) != FINGERPRINT_OK) {
Serial.println("Gagal simpan imej.");
return;
}
Serial.println("Angkat jari...");
delay(2000);
Serial.println("Letak jari sekali lagi...");
while (finger.getImage() != FINGERPRINT_OK);
if (finger.image2Tz(2) != FINGERPRINT_OK) {
Serial.println("Gagal simpan imej kali kedua.");
return;
}
if (finger.createModel() != FINGERPRINT_OK) {
Serial.println("Model cap jari tidak sepadan!");
return;
}
if (finger.storeModel(id) == FINGERPRINT_OK) {
Serial.println("Enroll BERJAYA!");
} else {
Serial.println("Tidak dapat simpan data!");
}
}
// =============================================================
// FUNGSI DELETE / PADAM CAP JARI
// =============================================================
void deleteFingerprint() {
Serial.print("Masukkan ID yang nak dipadam: ");
while (!Serial.available());
int id = Serial.parseInt();
Serial.println(id);
if (finger.deleteModel(id) == FINGERPRINT_OK) {
Serial.println("Cap jari berjaya dipadam.");
} else {
Serial.println("Gagal memadam!");
}
}
// =============================================================
// FUNGSI VERIFY (SCAN)
// =============================================================
void verifyFingerprint() {
Serial.println("Sila letakkan jari...");
while (finger.getImage() != FINGERPRINT_OK);
if (finger.image2Tz() != FINGERPRINT_OK) {
Serial.println("Gagal proses imej.");
return;
}
if (finger.fingerFastSearch() != FINGERPRINT_OK) {
Serial.println("Jari TIDAK DITEMUI.");
return;
}
Serial.print("Jari sah! ID = ");
Serial.println(finger.fingerID);
Serial.print("Confidence = ");
Serial.println(finger.confidence);
}
Tiada ulasan:
Catat Ulasan