Membuat Penguncian lemari berbasis arduino

Membuat sistem penguncian lemari berbasis Arduino adalah proyek yang cukup menarik dan bermanfaat. Dalam proyek ini, kita akan membuat sistem penguncian otomatis yang dikendalikan oleh Arduino dan dapat diaktifkan menggunakan kombinasi tombol, sensor sidik jari, atau RFID. Berikut adalah langkah-langkah dasar untuk membuat penguncian lemari sederhana berbasis Arduino menggunakan motor servo dan keypad untuk memasukkan PIN.
Komponen yang Dibutuhkan:
- Arduino Uno (atau tipe Arduino lainnya)
- Keypad 4×4 atau Keypad 3×4 (untuk memasukkan PIN)
- Motor Servo (untuk menggerakkan kunci)
- Resistor 10K ohm
- Kabel Jumper
- Breadboard
- LED (opsional) (untuk indikator)
- Buzzer (opsional) (untuk suara notifikasi)
- Power Supply (baterai 9V atau adaptor)
Langkah-langkah Pembuatan:
1. Rangkaian Elektronik:
- Arduino terhubung dengan keypad untuk input PIN.
- Motor servo terhubung ke salah satu pin digital untuk menggerakkan kunci (misalnya, Pin 9).
- LED dan buzzer (jika digunakan) bisa dihubungkan ke pin digital lainnya untuk notifikasi.
- Hubungkan semua komponen ke breadboard sesuai dengan skematik yang akan kita buat.
2. Skema Koneksi:
- Keypad:
- Hubungkan pin keypad ke pin digital Arduino (misalnya Pin 2 hingga Pin 9).
- Servo:
- Sinyal servo ke pin digital (misalnya, Pin 10), dan power servo ke 5V dan GND.
- LED:
- Positif LED ke pin digital (misalnya, Pin 11), negatif ke GND.
- Buzzer:
- Positif ke pin digital (misalnya, Pin 12), negatif ke GND.
3. Kode Program Arduino:
Berikut adalah contoh kode sederhana untuk mengunci dan membuka lemari menggunakan kombinasi PIN dan motor servo.
// Deklarasi motor servo
Servo myServo;
int pos = 0; // Posisi awal servo (kunci terkunci)
// Deklarasi Keypad
const byte ROWS = 4; // 4 baris
const byte COLS = 4; // 4 kolom
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // Pin baris keypad ke Arduino
byte colPins[COLS] = {5, 4, 3, 2}; // Pin kolom keypad ke Arduino
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Kode PIN
String password = "1234"; // Ganti dengan kode PIN yang Anda inginkan
String input_password;
void setup() {
myServo.attach(10); // Pin servo terhubung ke Pin 10
myServo.write(0); // Servo pada posisi terkunci
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.println(key); // Menampilkan input keypad ke serial monitor
if (key == '#') {
if (input_password == password) {
bukaKunci();
} else {
Serial.println("PIN Salah");
}
input_password = ""; // Reset input password setelah dikirim
} else if (key == '*') {
input_password = ""; // Reset input password
} else {
input_password += key; // Menambah input password
}
}
}
void bukaKunci() {
Serial.println("PIN Benar, Membuka Kunci...");
for (pos = 0; pos <= 90; pos += 1) {
myServo.write(pos); // Membuka kunci
delay(15);
}
delay(3000); // Menunggu 3 detik sebelum mengunci kembali
for (pos = 90; pos >= 0; pos -= 1) {
myServo.write(pos); // Mengunci kembali
delay(15);
}
}
Penjelasan Kode:
- Keypad digunakan untuk input kode PIN. Saat pengguna menekan tombol, angka akan dicatat dalam variabel
input_password. - Jika tombol
#ditekan, program akan memeriksa apakah kode PIN yang dimasukkan sesuai dengan password yang telah ditentukan. - Jika PIN benar, motor servo akan bergerak membuka kunci, kemudian setelah beberapa saat, akan mengunci kembali.
- Servo bergerak pada sudut tertentu (misalnya 0° untuk terkunci, 90° untuk terbuka).
- Buzzer dan LED bisa ditambahkan untuk memberikan notifikasi jika PIN salah atau benar.
Pengembangan:
- Anda dapat mengganti sistem input dengan sensor sidik jari, RFID, atau bahkan aplikasi Bluetooth jika ingin membuat sistem lebih canggih.
- Tambahkan database EEPROM untuk menyimpan beberapa PIN yang valid.

