Modul Fingerprint R305
Modul ini adalah merupakan modul sensor fingerprint yang dilengkapi oleh chip dengan dua buah algoritma yaitu
- Fingerprint enrolling yaitu proses fingerprint image atau pembentukan image dan dilanjutkan dengan menghasilkan template dan menyimpan template tersebut dalam memori
- Fingerprint matching yaitu proses pembentukan template dari image yang discan dan dibandingkan dengan template-template yang tersimpan di memori
Mikrokontroler akan berkomunikasi dengan modul ini yaitu dengan mengirimkan perintah-perintah untuk enrolling ataupun matching dan juga menerima hasil dari modul melalui port serial UART.
Perintah-perintah dari mikrokontroler untuk mengakses Modul Fingerprint ini adalah berupa protokol-protokol yang dijelaskan pada bagian user manual fingerprint yang dapat didownload di sini. Pada link tersebut juga terdapat software demo untuk menghubungkan modul fingerprint dengan PC / Laptop.
Agar dapat terhubung dengan PC / Laptop maka perlu ditambahkan modul USB to Serial namun untuk menghubungkan dengan mikrokontroler dapat langsung menghubungkan pin TD ke RXD mikrokontroler dan RD ke TXD mikrokontroler saja.
Modul Fingerprint R305 ini dapat diperoleh di https://www.tokopedia.com/delta-electronic/r305-fingerprint-reader-recognition-sensor-sidik-jari-uart
Wiring Diagram R305 Fingerprint dengan DE-ATMega2560-Embedded-Board
Gambar di atas adalah antarmuka Modul Fingerprint R305 dengan DE-ATMega2560-Embedded-Board. Modul ini dapat diperoleh di link ini.
Tampak di sini Modul Fingerprint R305 hanya cukup dihubungkan ke port UART saja dari mikrokontroler. Pada ATMega2560 kita gunakan saja serial1 karena serial0 kita gunakan untuk download sketch / source code dari Arduino IDE ke ATMega2560
Arduino Source Code
Apabila Arduino IDE kita masih belum memiliki library fingerprint ini maka terlebih dahulu kita instal library fingerprint sebagai berikut. Pilih library manager dan ketik fingerprint di bagian search. Lalu pilih Adafruit fingerprint sensor library.
Maka akan terbentuk folder library Adafruit Fingerprint di folder berikut
Setelah library ter install maka kita dapat memilih contoh program fingerprint sebagai berikut
Berikut ini adalah penjelasan sketch secara flowchart, diawali dengan mengatur baudrate fingerprint sesuai dengan baudrate serial port lalu deteksi password fingerprint. Apabila password ditemukan merupakan indikasi bahwa sensor fingerprint ada di port serial dan selanjutnya ditampilkan isi fingerprint parameter.
Kemudian dilanjutkan dengan menghitung jumlah template yang tersimpan di memori. Apabila tidak terdapat template maka ditampilkan pesan “No Fingerprint Data and please use enroll example”
Setelah inisialisasi selesai dilanjutkan dengan loop di mana program akan menunggu adanya image dari jari yang ditempel. Saat jari yang ditempel terdeteksi maka dilanjutkan dengan proses konversi ke template dan verifikasi template dengan template yang telah tersimpan. Apabila ditemukan maka ditampilkan nomor ID template dan confidence.
Penjelasan Sketch/Code
Di bagian awal terlebih dahulu didefinisikan port serial yang akan digunakan, untuk selain ATMega2560 yang sudah memiliki hardware serial lebih dari satu maka digunakan fungsi SoftwareSerial yang pada sketch ini menggunakan digital 2 dan 3. Untuk ATMega2560 digunakan serial1 dan hasil dari definisi ini disimpan di konstanta mySerial. Kemudian konstanta mySerial ini digunakan untuk mendefinisikan serial port yang akan digunakan oleh serial port fingerprint yang digunakan pada library Adafruit.
Awal setup dilakukan dengan inisial serial port (pada ATMega2560 adalah serial0) dengan baudrate 9600 bps dan kemudian menunggu data serial (yaitu saat Serial Monitor dibuka biasanya ada data serial yang dikirim ke serial0). Setelah data serial diterima / serial monitor dibuka maka program akan mengirimkan “Adafruit finger detect test” ke layar terminal.
Kemudian baudrate sensor fingerprint diinisialisasi 9600 bps juga sesuai dengan baudrate dari serial port dan dilanjutkan dengan verifikasi password. Apabila password sesuai berarti memang terdeteksi ada sensor fingerprint yang terhubung di port serial dan ditampilkan pesan “Found fingerprint sensor” tetapi bila password tidak cocok maka berarti tidak terdeteksi ada sensor fingerprint di port tersebut dan program berhenti.
Setelah sensor fingerprint terdeteksi maka dilanjutkan dengan menampilkan parameter-parameter sensor mulai dari status, sistem ID, capacity, security level, alamat device, panjang paket dan baud rate.
Selanjutnya fungsi finger.getTemplateCount() dipanggil untuk menghitung jumlah template yang ada. Apabila jumlah template = 0 maka ditampilkan pesan bahwa sensor tidak memiliki data dan disarankan menjalankan contoh sketch enroll untuk mendaftarkan jari dan membuat template. Namun bila data bukan nol maka langsung ditampilkan jumlah template yang ada.
Proses selanjutnya dilakukan pengambilan fingerprint ID dan pengambilan Image. Apabila proses ini mengalami error maka akan ditampilkan pesan error sesuai error mana yang terjadi dan return. Namun bila hasilnya OK maka akan ditampilkan pesan “image taken” dan program lanjut ke step berikutnya.
Step berikutnya adalah proses konversi dari image menjadi template yaitu dengan memanggil fungsi finger.image2Tz() dan menyimpan hasilnya di variabel p. Kemudian variabel ini dicek dengan statement case dibawahnya di mana apabila hasilnya adalah FINGERPRINT_OK maka ditampilkan pesan “image converted” dan proses lanjut ke step berikutnya. Namun bila hasilnya error maka ditampilkan pesan error sesuai error yang terjadi dan program return.
Step berikutnya adalah mencari template hasil konversi tadi dengan template yang ada di memori dengan menggunakan fungsi finger.fingerSearch(). Apabila ditemukan maka akan ditampilkan pesan “found a print match” dan lanjut ke step berikutnya yaitu menampilkan ID yang match dengan nilai confidencenya dan bila ditemukan error maka akan ditampilkan pesan error sesuai error yang terjadi dan return.
DELTA ELECTRONIC
Paulus Andi Nalwan, ST