Membuka Kunci Pintu Menggunakan Fingerprint (Doorlock with Fingerprint)
Hai teman-teman Jogjarobotika, kembali lagi di channel jogjarobotika. Channel yang membahas berbagai macam project tentang elektronika.
Video sebelumnya saya sudah membuat sistem membuka kunci pintu menggunakan RFID, kali ini saya akan mencoba membuat sistem membuka pintu menggunakan modul fingerprint / sidik jari. Dengan menggunakan fingerprint, tingkat keamanan akan semakin bagus. Karena sidik jari setiap orang berbeda-beda. Salah satu kelebihan fingerprint daripada RFID adalah sidik jari orang yang tidak dapat tertukar atau hilang. Lain halnya jika menggunakan kartu RFID yang memungkinkan untuk hilang/tertukar/dicuri orang lain.
.
Langsung saja kita siapkan bahan-bahan untuk membuat project ini.
1. C3 Modul Fingerprint atau JM-101B Modul Fingerprint
4. WT5001M02 Mp3 Modul Sound atau DFPLAYER
.
Pertama saya mau merangkai rangkaian LCD nya terlebih dahulu.
.
Kedua rangkaian fingerprint (JIKA MENGGUNAKAN FINGERPRINT C3)
.
(JIKA MENGGUNAKAN FINGERPRINT JM-101)
.
Ketiga rangkaian modul sound (JIKA MENGGUNAKAN WT5001M02)
.
(JIKA MENGGUNAKAN DFPLAYER)
.
Terakhir rangkaian relay solenoid doorlock
.
.
Setelah semua terangkai dengan benar, kita masuk ke pemrograman arduinonya.
Untuk mengakses modul fingerprint ini, kita harus menginisialisasikan terlebih dahulu sidik jari kita. Program untuk inisialisasi tersebut sudah ada bawaan dari arduino. Yaitu program enroll di example. Kita buka saja, file – example – adafruit fingerprint sensor library – enroll. Langsung saja upload program tersebut ke arduino. Setelah selesai upload, buka serial monitor. Nah jika muncul tulisan seperti ini, kita ketik angka 1 kemudian enter. Lalu tempelkan sidikjari kita ke fingerprint. Sekali lagi kita tempelkan. Dengan demikian inisialisasi sidikjari kita sudah selesai. Dan sudah terekam di modul fingerprint.
.
Library
.
Selanjutnya kita upload program fingerprint untuk doorlock (WT5001).
.
.
.
#include <Adafruit_Fingerprint.h>
#include <SPI.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //Inisialisasi serial RX TX modul fingerprint
LiquidCrystal_I2C lcd(0x3f, 16, 4); //Inisialisasi I2C LCD
int doorLock = 8; //pin untuk sinyal doorlock
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup()
{
Serial.begin(9600);
while (!Serial);
delay(100);
Serial.println("nnAdafruit finger detect test");
// set the data rate for the sensor serial port
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1) { delay(1); }
}
finger.getTemplateCount();
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
Serial.println("Waiting for valid finger...");
lcd.begin();
lcd.clear();
pinMode(doorLock, OUTPUT);
digitalWrite(doorLock, HIGH);
lcd.setCursor(0,0); //set koordinat LCD
lcd.print("HALLO GAES");
delay(100);
lcd.setCursor(0,1);
lcd.print("WELCOME");
delay(100);
SPI.begin(); // Initiate SPI bus
Serial.write(0x7E);
Serial.write(0x03);
Serial.write(0xA7);
Serial.write(0x1F); // volume max
Serial.write(0x7E);
}
void loop()
{
getFingerprintID();
delay(50);
}
//------------------------------------------------------------
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image taken");
break;
case FINGERPRINT_NOFINGER:
Serial.println("No finger detected");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK success!
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return p;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return p;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return p;
default:
Serial.println("Unknown error");
return p;
}
// OK converted!---------------------------------------------
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) { //jika fingerprint terdeteksi
Serial.println("Found a print match!");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MASUK PAK EKO");
delay (100);
suara1();
digitalWrite(doorLock, LOW);
lcd.setCursor(0,1);
lcd.print("AutoLock ");
for(int i=5; i>0; i--)
{
lcd.setCursor (10,1); lcd.print(i);
delay (1000);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("HALLO GAES");
delay(100);
lcd.setCursor(0,1);
lcd.print("WELCOME");
delay(100);
digitalWrite(doorLock, HIGH);
}
else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return p;
}
else if (p == FINGERPRINT_NOTFOUND) { //jika fingerprint salah
Serial.println("Did not find a match");
suara2();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BELUM BERUNTUNG");
delay (100);
lcd.setCursor(0,1);
lcd.print("COBA LAGI");
delay (2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("HALLO GAES");
delay(100);
lcd.setCursor(0,1);
lcd.print("WELCOME");
delay(100);
return p;
}
else {
Serial.println("Unknown error");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("??");
delay (100);
return p;
}
// found a match!
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
//-----------------------------------------------------------------------------
void suara1()
{
Serial.write(0x7E);
Serial.write(0x04);
serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x01); // track number 001.mp3
Serial.write(0x7E);
delay(100);
}
void suara2()
{
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x02); // track number 002.mp3
Serial.write(0x7E);
delay(100);
}
.
.
.
Oke setelah selesai di upload langsung saja kita coba rangkaiannya.
ketika saya tempelkan sidikjari yang tadi sudah terinisialisasi, modul fingerprint akan mendeteksi dan akan menjalankan doorlock. LCD akan menampilkan indicator. Dan Speaker akan mengeluarkan suara peringatan. Suara ini saya ambil dari voice generator online. Silahkan bisa kalian cari di google.
.
Kemudian jika saya tempelkan sidikjari yang belum terinisialisasi, modul fingerprint akan mendeteksi kesalahan sidikjari / error. Maka doorlock tidak akan membuka. LCD akan menampilkan indicator seperti ini. Dan Speaker akan mengeluarkan suara peringatan.
.
Ya itu tadi project sistem membuka pintu menggunakan modul fingerprint / sidik jari. Silahkan saran dan komen project apa yang akan kami buat selanjutnya.
.
.
--Beli Modul paketannya disini klik--
.
.
.
Comments
Leave your comment