Breaking

Cara Mendaftarkan Fingerprint AS608 dengan ESP8266 NodeMCU



Setelah pada artikel sebelumnya kita membahas cara menghubungkan sensor fingerprint AS608 dengan ESP8266 NodeMCU, sekarang kita masuk ke tahap berikutnya yaitu mendaftarkan sidik jari ke sensor AS608.

Proses ini sangat penting karena sebelum digunakan untuk absensi, sidik jari pengguna harus terlebih dahulu disimpan ke dalam memori sensor fingerprint.

Pada tutorial ini kita akan membuat proses enrollment sederhana:

Masukkan ID Fingerprint

        ↓

Scan sidik jari pertama

        ↓

Angkat jari

        ↓

Scan sidik jari kedua

        ↓

Buat template fingerprint

        ↓

Simpan ke AS608

Setelah berhasil, fingerprint tersebut dapat digunakan untuk proses verifikasi pada sistem absensi.


Daftar Isi

1. Apa Itu Enrollment Fingerprint?
2. Persiapan Hardware
3. Wiring AS608 ke ESP8266
4. Cara Kerja Enrollment
5. Program ESP8266
6. Cara Upload Program
7. Proses Pendaftaran Fingerprint
8. Pengujian Fingerprint
9. Masalah yang Sering Terjadi
10. Kesimpulan
11. Artikel Selanjutnya

1. Apa Itu Enrollment Fingerprint?

Enrollment adalah proses mendaftarkan sidik jari baru ke dalam memori sensor fingerprint.

Misalnya kita ingin mendaftarkan Bayu.

Kita menentukan:

ID Fingerprint : 1

Nama           : Bayu

Kemudian jari Bayu dipindai dua kali.

Sensor AS608 akan membuat template fingerprint dan menyimpannya pada ID tersebut.

Contohnya:

ID 1 → Bayu

ID 2 → Andi

ID 3 → Budi

ID 4 → Siti

Pada saat absensi, sensor tidak perlu mengetahui nama pengguna secara langsung.

Sensor cukup menghasilkan:

Fingerprint ID = 1

Kemudian ESP8266 dan server dapat menerjemahkannya menjadi:

ID 1 → Bayu


2. Persiapan Hardware

Komponen yang diperlukan:

No            KomponenJumlah
1            ESP8266 NodeMCU        1
2            Sensor fingerprint AS608        1
3            Kabel jumper        Secukupnya
4            Kabel USB        1
5            Komputer/Laptop        1

Untuk tahap enrollment ini kita belum perlu menggunakan database atau CodeIgniter 4.

Kita fokus memastikan AS608 dapat mendaftarkan fingerprint dengan benar.


3. Wiring AS608 ke ESP8266

Gunakan konfigurasi yang sama dengan artikel sebelumnya.

AS608            ESP8266
TX            D6
RX            D5
GND            GND
VCC            Sesuai spesifikasi modul

Komunikasinya menggunakan UART.

Perhatikan bahwa jalur TX dan RX harus diperhatikan dengan benar:

AS608 TX → ESP8266 RX

AS608 RX → ESP8266 TX

Catatan: konfigurasi pin dan tegangan dapat berbeda tergantung breakout AS608 yang digunakan. Periksa label modul dan spesifikasi hardware sebelum menyalakan rangkaian.


4. Cara Kerja Enrollment

Proses pendaftaran fingerprint dilakukan dalam beberapa tahap.

Tahap 1

Program meminta ID fingerprint.

Contohnya:

Masukkan ID: 1

Tahap 2

Pengguna menempelkan jari.

Tempelkan jari...

AS608 membaca sidik jari.

Tahap 3

Jari diangkat.

Angkat jari

Tahap 4

Jari yang sama ditempelkan kembali.

Tempelkan jari yang sama...

Sensor melakukan scan kedua.

Tahap 5

AS608 membuat template fingerprint.

Jika berhasil:

Fingerprint cocok

Membuat model...

Tahap 6

Template disimpan pada ID yang dipilih.

Contohnya:

Fingerprint berhasil disimpan!

ID: 1


5. Program ESP8266

Untuk komunikasi dengan sensor fingerprint, kita dapat menggunakan library Adafruit Fingerprint Sensor bersama komunikasi serial yang sesuai dengan konfigurasi ESP8266.

Contoh program enrollment:

#include <SoftwareSerial.h>

#include <Adafruit_Fingerprint.h>


// Sesuaikan dengan wiring:

// AS608 TX -> D6 (RX ESP8266)

// AS608 RX -> D5 (TX ESP8266)

SoftwareSerial fingerSerial(D6, D5);


Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerSerial);


uint8_t id;


void setup()

{

  Serial.begin(115200);

  delay(1000);


  finger.begin(57600);


  Serial.println();

  Serial.println("================================");

  Serial.println("   AS608 FINGERPRINT ENROLLMENT ");

  Serial.println("================================");


  if (finger.verifyPassword())

  {

    Serial.println("Sensor AS608 terdeteksi.");

  }

  else

  {

    Serial.println("Sensor AS608 tidak terdeteksi.");

    Serial.println("Periksa VCC, GND, RX dan TX.");


    while (1)

    {

      delay(100);

    }

  }


  Serial.println("Masukkan ID fingerprint 1-127:");

}


void loop()

{

  if (Serial.available())

  {

    id = Serial.parseInt();


    if (id == 0)

    {

      Serial.println("ID tidak valid.");

      return;

    }


    Serial.print("Mendaftarkan fingerprint ID: ");

    Serial.println(id);


    if (enrollFingerprint(id))

    {

      Serial.println();

      Serial.println("================================");

      Serial.println("FINGERPRINT BERHASIL DISIMPAN");

      Serial.print("ID: ");

      Serial.println(id);

      Serial.println("================================");

    }

    else

    {

      Serial.println();

      Serial.println("Fingerprint gagal didaftarkan.");

    }


    Serial.println();

    Serial.println("Masukkan ID fingerprint berikutnya:");

  }

}


bool enrollFingerprint(uint8_t id)

{

  int p = -1;


  Serial.println("Tempelkan jari pada sensor...");


  while (p != FINGERPRINT_OK)

  {

    p = finger.getImage();


    if (p == FINGERPRINT_OK)

    {

      Serial.println("Gambar sidik jari berhasil dibaca.");

    }

    else if (p == FINGERPRINT_NOFINGER)

    {

      delay(100);

    }

    else

    {

      Serial.println("Gagal membaca sidik jari.");

      return false;

    }

  }


  p = finger.image2Tz(1);


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Gagal membuat template pertama.");

    return false;

  }


  Serial.println("Angkat jari...");


  delay(1500);


  while (finger.getImage() != FINGERPRINT_NOFINGER)

  {

    delay(100);

  }


  Serial.println("Tempelkan jari yang sama sekali lagi...");


  p = -1;


  while (p != FINGERPRINT_OK)

  {

    p = finger.getImage();


    if (p == FINGERPRINT_OK)

    {

      Serial.println("Scan kedua berhasil.");

    }

    else if (p == FINGERPRINT_NOFINGER)

    {

      delay(100);

    }

    else

    {

      Serial.println("Gagal membaca scan kedua.");

      return false;

    }

  }


  p = finger.image2Tz(2);


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Gagal membuat template kedua.");

    return false;

  }


  p = finger.createModel();


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Kedua scan tidak cocok.");

    return false;

  }


  p = finger.storeModel(id);


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Gagal menyimpan fingerprint.");

    return false;

  }


  return true;

}

Catatan: library dan konfigurasi serial harus disesuaikan dengan board ESP8266 dan versi library yang digunakan. Jika komunikasi tidak berhasil, periksa kembali pin RX/TX, baudrate, power supply, dan library yang terpasang.


6. Cara Upload Program

Setelah program dimasukkan ke Arduino IDE:

Pilih Board

Pilih board ESP8266 NodeMCU yang sesuai dengan board yang digunakan.

Kemudian pilih port COM ESP8266.

Setelah itu klik:

Upload

Tunggu sampai proses upload selesai.


7. Membuka Serial Monitor

Setelah program berhasil di-upload, buka:

Tools → Serial Monitor

Atur baudrate: 

115200

Jika sensor berhasil terhubung, akan muncul:

================================

   AS608 FINGERPRINT ENROLLMENT

================================

Sensor AS608 terdeteksi.

Masukkan ID fingerprint 1-127:


8. Mendaftarkan Fingerprint

Misalnya kita ingin menyimpan fingerprint Bayu pada ID 1.

Masukkan:

1

Kemudian tekan Enter.

Serial Monitor akan menampilkan:

Mendaftarkan fingerprint ID: 1

Tempelkan jari pada sensor...

Tempelkan jari.

Setelah scan pertama berhasil:

Gambar sidik jari berhasil dibaca.

Angkat jari...

Angkat jari.

Kemudian:

Tempelkan jari yang sama sekali lagi...

Tempelkan jari yang sama.

Jika kedua scan cocok:

Scan kedua berhasil.

Kemudian sensor membuat template dan menyimpannya.

Jika berhasil:

================================

FINGERPRINT BERHASIL DISIMPAN

ID: 1

================================

Sekarang fingerprint sudah tersimpan di sensor.


9. Jangan Menggunakan ID yang Sama

Misalnya:

ID 1 → Bayu

Kemudian kita mendaftarkan orang berikutnya.

Gunakan:

ID 2 → Andi

Jangan langsung menggunakan ID 1 lagi jika ingin mempertahankan fingerprint Bayu.

Contoh:

Fingerprint ID        Nama
1        Bayu
2        Andi
3        Budi
4        Siti


10. Pengujian Fingerprint

Setelah enrollment berhasil, kita perlu melakukan verifikasi.

Misalnya fingerprint Bayu disimpan:

ID = 1

Ketika Bayu menempelkan jari pada sensor, AS608 nantinya akan menghasilkan:

Fingerprint ditemukan

ID = 1

ESP8266 kemudian dapat menggunakan ID tersebut untuk proses absensi.

Contohnya:

AS608

 ↓

ID = 1

 ↓

ESP8266

 ↓

Database

 ↓

ID 1 = Bayu

 ↓

ABSEN MASUK


11. Kenapa Nama Tidak Disimpan Langsung di AS608?

Ini konsep penting untuk sistem kita.

Sensor hanya bertugas menyimpan template fingerprint dan ID.

Data pengguna disimpan di database.

Contohnya:

AS608

ID 1
ID 2
ID 3

Database

ID 1 → Bayu
ID 2 → Andi
ID 3 → Budi

Dengan cara ini sistem menjadi lebih fleksibel.

Jika nama pegawai berubah, kita cukup mengubah database tanpa harus mendaftarkan ulang fingerprint.


12. Untuk Sistem Multi-Device

Karena target sistem kita nantinya adalah absensi multi-device, kita juga perlu memperhatikan satu hal.

Misalnya ada:

ABS-001 → Mesin Absensi Kantor

ABS-002 → Mesin Absensi Gudang

ABS-003 → Mesin Absensi Sekolah

Fingerprint ID 1 pada sensor di masing-masing mesin belum tentu merujuk ke orang yang sama.

Karena itu, ketika sistem sudah masuk tahap multi-device, identitas fingerprint sebaiknya diperlakukan bersama identitas perangkat.

Contohnya:

Device      Finger ID

ABS-001     1

ABS-001     2

ABS-002     1

ABS-002     2

Server dapat menentukan dari mesin mana absensi berasal.

Ini akan kita bahas lebih dalam ketika masuk ke database dan API CodeIgniter 4.


13. Masalah yang Sering Terjadi

❌ Sensor tidak terdeteksi

Periksa:

VCC

GND

TX

RX

Pastikan TX dan RX tidak tertukar.


❌ Fingerprint gagal dibuat

Coba:

  • bersihkan permukaan sensor;
  • pastikan jari tidak terlalu basah;
  • jangan terlalu cepat mengangkat jari;
  • gunakan jari yang sama pada scan kedua;
  • posisikan jari dengan konsisten.

❌ Template tidak cocok

Jika muncul:

Kedua scan tidak cocok

ulang proses enrollment.

Tekanan dan posisi jari pada scan pertama dan kedua sebaiknya relatif sama.


❌ ID sudah digunakan

Gunakan ID lain.

Misalnya:

ID 1 sudah digunakan

maka gunakan:

ID 2


Kesimpulan

Pada tutorial ini kita sudah berhasil memahami proses pendaftaran fingerprint AS608 menggunakan ESP8266 NodeMCU.

Alur enrollment adalah:

ESP8266

   ↓

AS608

   ↓

Pilih ID

   ↓

Scan pertama

   ↓

Scan kedua

   ↓

Buat template

   ↓

Simpan

Setelah fingerprint tersimpan, tahap berikutnya adalah membuat program untuk membaca dan mencari fingerprint.

Hasil akhirnya nanti bukan lagi sekadar:

Fingerprint OK

ID = 1

tetapi:

Fingerprint OK

ID       : 1

Nama     : Bayu

Tanggal  : 02-09-2026

Jam      : 07:30:15

Status   : MASUK

Device   : ABS-001

Dan data tersebut akan dikirim ke CodeIgniter 4 melalui API.


Tidak ada komentar:

Posting Komentar