Halo sobat Duwi, pada kesempatan kali ini kita akan membuat kunci motor dengan sidik jari menggunakan Arduino. Proyek ini sangat cocok buat kalian yang ingin menambah keamanan motor dengan teknologi terkini. Yuk, langsung aja kita bahas caranya!
Alat dan Bahan
- Arduino (Uno, Nano, atau jenis lainnya)
- Sensor sidik jari (R307 atau ZFM-20)
- Relay modul
- Breadboard dan kabel jumper
Langkah-langkah
- Rangkai Hardware:Pertama-tama, kita hubungkan sensor sidik jari ke Arduino:
- VCC ke 5V
- GND ke GND
- TX ke pin digital 2
- RX ke pin digital 3
- VCC ke 5V
- GND ke GND
- IN1 (kontak) ke pin digital 4
- IN2 (starter) ke pin digital 5
- Instal Library:Buka Arduino IDE, kemudian pergi ke
Sketch -> Include Library -> Manage Libraries
, cari “Adafruit Fingerprint Sensor Library” dan klik “Install”. - Kode Program:Berikut ini adalah kode lengkapnya. Copy dan paste kode ini ke dalam Arduino IDE.
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
// Pin untuk sensor sidik jari
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
// Pin untuk relay
const int relayKontak = 4;
const int relayStarter = 5;
void setup()
{
// Inisialisasi komunikasi serial
Serial.begin(9600);
Serial.println("Motor Fingerprint Lock");
// Inisialisasi sensor sidik jari
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Sensor ready.");
} else {
Serial.println("Cannot find sensor.");
while (1) { delay(1); }
}
// Set relay sebagai output
pinMode(relayKontak, OUTPUT);
pinMode(relayStarter, OUTPUT);
// Matikan relay pada awalnya
digitalWrite(relayKontak, LOW);
digitalWrite(relayStarter, LOW);
}
void loop()
{
// Cari sidik jari
Serial.println("Waiting for valid finger...");
int fingerID = getFingerprintID();
if (fingerID >= 0) {
// Sidik jari dikenali, hidupkan relay untuk kontak
Serial.print("Motor unlocked! ID: "); Serial.println(fingerID);
digitalWrite(relayKontak, HIGH);
// Tunda sebentar sebelum starter menyala
delay(1000);
// Hidupkan relay untuk starter
Serial.println("Starting motor...");
digitalWrite(relayStarter, HIGH);
// Tunda sebentar untuk mensimulasikan starter
delay(2000);
// Matikan relay starter
digitalWrite(relayStarter, LOW);
}
// Matikan relay kontak setelah beberapa detik
delay(5000);
digitalWrite(relayKontak, LOW);
}
int 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 -1;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return -1;
case FINGERPRINT_IMAGEFAIL:
Serial.println("Imaging error");
return -1;
default:
Serial.println("Unknown error");
return -1;
}
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
Serial.println("Image too messy");
return -1;
case FINGERPRINT_PACKETRECIEVEERR:
Serial.println("Communication error");
return -1;
case FINGERPRINT_FEATUREFAIL:
Serial.println("Could not find fingerprint features");
return -1;
case FINGERPRINT_INVALIDIMAGE:
Serial.println("Could not find fingerprint features");
return -1;
default:
Serial.println("Unknown error");
return -1;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
Serial.println("Found a print match!");
return finger.fingerID;
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
Serial.println("Communication error");
return -1;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println("No match found");
return -1;
} else {
Serial.println("Unknown error");
return -1;
}
}
4. Upload dan Uji Kode:Setelah kode selesai ditulis, upload ke Arduino dan uji dengan sidik jari yang sudah terdaftar pada sensor. Pastikan relay terhubung dengan benar ke sirkuit motor.
Penjelasan Kode:
- Inisialisasi:
- Kita mulai dengan inisialisasi komunikasi serial dengan sensor sidik jari.
- Setiap pin relay diatur sebagai output.
- Loop Utama:
- Program akan menunggu sidik jari yang valid.
- Jika sidik jari dikenali, relay untuk kontak akan menyala, diikuti relay untuk starter.
- Fungsi
getFingerprintID
:- Fungsi ini akan mengambil gambar sidik jari, mengonversinya, dan mencari kecocokan dalam database sidik jari.
Nah, itulah cara membuat kunci motor dengan sidik jari menggunakan Arduino. Semoga bermanfaat dan selamat mencoba! Jika ada pertanyaan, jangan ragu untuk bertanya di kolom komentar.
Eksplorasi konten lain dari Duwi Arsana
Berlangganan untuk dapatkan pos terbaru lewat email.
Om mau tanya dong
1. Itu untuk berapa sidik jari?
2. Untuk aplikasi nya ke motor simple kah?
3. Jika berminat ,beli nya dimana?
Semoga sukses dan banyak lagi idea idea brilian nya
max 50 sidik jari., penerapan di motor ada video tutor nya di youtube saya. bisa wa ke 085738244251