Breaking

Cara Membaca dan Verifikasi Fingerprint AS608 dengan ESP8266 NodeMCU



Pada artikel sebelumnya kita sudah mempelajari cara mendaftarkan fingerprint ke sensor AS608 menggunakan ESP8266 NodeMCU.

Sekarang kita akan membuat proses berikutnya, yaitu membaca dan melakukan verifikasi sidik jari.

Tujuan akhirnya adalah ketika seseorang menempelkan jari pada sensor, ESP8266 dapat mengetahui:

Fingerprint ditemukan

ID Fingerprint : 1

Daftar Isi

1. Apa Itu Verifikasi Fingerprint?
2. Alur Sistem
3. Persiapan Hardware
4. Wiring AS608
5. Program Verifikasi
6. Penjelasan Program
7. Pengujian
8. Fingerprint Tidak Dikenal
9. Menghubungkan ID dengan Nama
10. Konsep Absensi
11. Kesimpulan
12. Artikel Selanjutnya

1. Apa Itu Verifikasi Fingerprint?

Verifikasi fingerprint adalah proses mencocokkan sidik jari yang ditempelkan dengan template fingerprint yang sudah tersimpan di sensor.

Misalnya sebelumnya kita sudah mendaftarkan:

ID 1 → Bayu

ID 2 → Andi

ID 3 → Budi

Ketika Bayu menempelkan jarinya:

Jari Bayu

   ↓

AS608

   ↓

Cocok dengan ID 1

   ↓

ESP8266 menerima ID = 1

ESP8266 kemudian dapat memproses ID tersebut sebagai data absensi.

2. Alur Sistem

Alur verifikasi:

        START

          ↓

     ESP8266 ON

          ↓

    Inisialisasi AS608

          ↓

     Menunggu jari

          ↓

    Scan sidik jari

          ↓

    Cari fingerprint

       ↙       ↘

   Ditemukan   Tidak

      ↓          ↓

   ID Finger   Gagal

      ↓

   ESP8266

      ↓

 Tampilkan ID

Pada tahap ini kita belum mengirim data ke server.

Kita pastikan dahulu sensor dapat melakukan verifikasi dengan benar.


3. Persiapan Hardware

Gunakan:

No    KomponenJumlah
1ESP8266 NodeMCU    1
2AS608 Fingerprint    1
3Kabel USB    1
4Kabel jumper    Secukupnya
5Laptop/PC    1

Fingerprint sebelumnya harus sudah terdaftar.


4. Wiring AS608

Gunakan konfigurasi:

AS608ESP8266
TXD6
RXD5
GNDGND
VCCSesuai spesifikasi modul

Komunikasi:

AS608 TX ─────→ ESP8266 RX

AS608 RX ─────→ ESP8266 TX

Perhatian: pastikan level tegangan dan catu daya sesuai dengan breakout AS608 yang om gunakan.

5. Program Verifikasi Fingerprint

Gunakan program berikut:

#include <SoftwareSerial.h>

#include <Adafruit_Fingerprint.h>


// RX ESP8266 = D6

// TX ESP8266 = D5

SoftwareSerial fingerSerial(D6, D5);


Adafruit_Fingerprint finger = Adafruit_Fingerprint(&fingerSerial);


void setup()

{

  Serial.begin(115200);

  delay(1000);


  Serial.println();

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

  Serial.println(" AS608 FINGERPRINT VERIFICATION ");

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


  finger.begin(57600);


  if (finger.verifyPassword())

  {

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

  }

  else

  {

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

    

    while (1)

    {

      delay(100);

    }

  }


  finger.getTemplateCount();


  Serial.print("Jumlah fingerprint tersimpan: ");

  Serial.println(finger.templateCount);


  Serial.println();

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

}


void loop()

{

  int id = getFingerprintID();


  if (id >= 0)

  {

    Serial.println();

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

    Serial.println("   FINGERPRINT DITEMUKAN");

    Serial.print("   ID FINGERPRINT : ");

    Serial.println(id);

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

    Serial.println();


    delay(2000);


    Serial.println("Tempelkan jari berikutnya...");

  }

}


int getFingerprintID()

{

  uint8_t p = finger.getImage();


  if (p == FINGERPRINT_NOFINGER)

  {

    return -1;

  }


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Gagal mengambil gambar fingerprint.");

    return -1;

  }


  p = finger.image2Tz();


  if (p != FINGERPRINT_OK)

  {

    Serial.println("Gagal mengubah gambar menjadi template.");

    return -1;

  }


  p = finger.fingerFastSearch();


  if (p == FINGERPRINT_OK)

  {

    Serial.print("Fingerprint cocok. ID = ");

    Serial.println(finger.fingerID);


    Serial.print("Confidence = ");

    Serial.println(finger.confidence);


    return finger.fingerID;

  }


  if (p == FINGERPRINT_NOTFOUND)

  {

    Serial.println("Fingerprint tidak ditemukan.");

    return -1;

  }


  Serial.println("Kesalahan saat pencarian fingerprint.");

  return -1;

}


6. Penjelasan Program

Program melakukan beberapa proses utama.

Membaca gambar fingerprint

finger.getImage();

Perintah ini mengambil gambar sidik jari dari sensor.


Mengubah gambar menjadi template

finger.image2Tz();

Data gambar diproses menjadi template yang dapat dibandingkan dengan fingerprint yang tersimpan.


Mencari fingerprint

finger.fingerFastSearch();

Perintah tersebut digunakan untuk mencari kecocokan dengan fingerprint yang sudah tersimpan.

Jika ditemukan, kita dapat mengambil:

finger.fingerID

dan:

finger.confidence


7. Pengujian

Upload program ke ESP8266.

Kemudian buka:

Serial Monitor

Gunakan:

115200 baud

Jika sensor berhasil terdeteksi:

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

 AS608 FINGERPRINT VERIFICATION

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

Sensor AS608 terdeteksi.

Jumlah fingerprint tersimpan: 3

Tempelkan jari...

Sekarang tempelkan jari yang sudah didaftarkan.

Jika cocok:

Fingerprint cocok. ID = 1

Confidence = 85

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

   FINGERPRINT DITEMUKAN

   ID FINGERPRINT : 1

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

Berarti proses verifikasi sudah berhasil.


8. Jika Fingerprint Tidak Dikenal

Coba gunakan jari yang belum pernah didaftarkan.

Hasilnya kira-kira:

Fingerprint tidak ditemukan.

Ini kondisi normal.

Sensor tidak akan memberikan ID jika sidik jari tidak cocok dengan template yang tersimpan.


9. Apa Itu Confidence?

AS608 juga dapat memberikan nilai confidence.

Contohnya:

ID = 1

Confidence = 85

Nilai tersebut merupakan ukuran keyakinan pencocokan dari sensor.

Namun, jangan menjadikan satu angka confidence sebagai satu-satunya dasar keamanan sistem. Untuk sistem absensi, gunakan hasil pencocokan sensor dan aturan aplikasi/server secara keseluruhan.


10. Mengubah ID Fingerprint Menjadi Nama

Sekarang kita mempunyai:

ID Fingerprint = 1

Tetapi pengguna tentu ingin melihat:

Nama = Bayu

Karena itu kita membutuhkan database.

Contohnya:

Fingerprint ID    Nama    NIP
1    Bayu    001
2    Andi    002
3    Budi    003

Ketika ESP8266 mendapatkan:

ID = 1

server nantinya mencari:

SELECT * FROM fingerprints

WHERE fingerprint_id = 1

Hasilnya:

Bayu


11. Konsep Absensi

Setelah verifikasi berhasil, barulah kita membuat log absensi.

Contohnya:

Fingerprint

     ↓

ID = 1

     ↓

Database

     ↓

Bayu

     ↓

Absensi

Data yang nantinya dikirim:

{

  "device_code": "ABS-001",

  "fingerprint_id": 1,

  "tanggal": "2026-09-04",

  "jam": "07:30:15",

  "status": "masuk"

}

Server CodeIgniter 4 kemudian melakukan validasi dan menyimpan data tersebut ke MySQL.

Inilah titik di mana project kita mulai berubah dari sekadar fingerprint menjadi sistem absensi IoT.


12. Mengapa Server Tetap Dibutuhkan?

ESP8266 sebenarnya dapat mengetahui:

ID = 1

Tetapi kita tidak sebaiknya menyimpan seluruh log absensi hanya di ESP8266.

Dengan server:

ESP8266

   ↓

WiFi

   ↓

API

   ↓

CodeIgniter 4

   ↓

MySQL

   ↓

Dashboard

kita mendapatkan banyak keuntungan:

  • data tersimpan terpusat;
  • dapat dilihat dari komputer;
  • dapat dibuat laporan;
  • dapat dibuat multi-device;
  • dapat dibuat backup;
  • dapat dibuat notifikasi;
  • dapat dibuat sistem login;
  • dapat dibuat monitoring perangkat.

13. Konsep Anti-Absen Ganda

Ketika sistem sudah digunakan di lapangan, kita juga perlu mencegah seseorang melakukan scan berkali-kali dalam waktu sangat singkat.

Misalnya:

07:30:01 → Bayu

07:30:03 → Bayu

07:30:05 → Bayu

07:30:07 → Bayu

Sistem sebaiknya tidak membuat empat data absensi.

Server dapat menerapkan aturan:

Jika fingerprint yang sama

sudah melakukan absensi

dalam periode tertentu

→ jangan buat log baru

Aturan ini nantinya kita masukkan ke API CodeIgniter 4.


14. Pengujian Lengkap

Lakukan pengujian berikut:

Test 1

Jari terdaftar.

Hasil yang diharapkan:

Fingerprint ditemukan

ID = 1

Test 2

Jari tidak terdaftar.

Hasil:

Fingerprint tidak ditemukan

Test 3

Sensor dicabut.

Hasil:

Sensor AS608 tidak terdeteksi

Test 4

TX/RX ditukar.

Hasil:

Komunikasi kemungkinan gagal.

Test 5

Beberapa fingerprint.

Misalnya:

ID 1 → Bayu

ID 2 → Andi

ID 3 → Budi

Uji satu per satu untuk memastikan ID yang dikembalikan benar.


15. Kesimpulan

Pada artikel ini kita sudah berhasil membuat proses:

Jari

 ↓

AS608

 ↓

Scan

 ↓

Template

 ↓

Pencarian

 ↓

Fingerprint ditemukan

 ↓

ID Fingerprint

Contohnya:

Fingerprint ditemukan

ID = 1

ID inilah yang nantinya menjadi penghubung antara sensor fingerprint dengan database pegawai.

Dengan demikian rangkaian project kita sekarang sudah memiliki:

#1 Konsep sistem absensi ✅
#2 Wiring AS608 + ESP8266 ✅
#3 Enrollment fingerprint ✅
#4 Verifikasi fingerprint ✅

Tidak ada komentar:

Posting Komentar