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 | Komponen | Jumlah |
|---|---|---|
| 1 | ESP8266 NodeMCU | 1 |
| 2 | AS608 Fingerprint | 1 |
| 3 | Kabel USB | 1 |
| 4 | Kabel jumper | Secukupnya |
| 5 | Laptop/PC | 1 |
Fingerprint sebelumnya harus sudah terdaftar.
4. Wiring AS608
Gunakan konfigurasi:
| AS608 | ESP8266 |
|---|---|
| TX | D6 |
| RX | D5 |
| GND | GND |
| VCC | Sesuai 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
Perintah ini mengambil gambar sidik jari dari sensor.
Mengubah gambar menjadi template
Data gambar diproses menjadi template yang dapat dibandingkan dengan fingerprint yang tersimpan.
Mencari fingerprint
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