Cari Blog Ini

Cara Masuk Cap Jari Ke Fingerprint AS608 dengan ESP 32

✅ 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 )

//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);
}


Tiada ulasan:

Catat Ulasan