Implementasi Smart Lock Sederhana Menggunakan Keypad dan LCD I2C dengan Notifikasi Buzzer

OLEH:

Suci Mailanisafitri607062330008
Alip Lizal607062300031

Pendahuluan

Sistem keamanan merupakan salah satu bidang penting dalam perkembangan teknologi embedded system dan Internet of Things (IoT) yang terus mengalami inovasi dari waktu ke waktu. Kebutuhan akan sistem keamanan yang lebih praktis, cepat, dan efisien mendorong munculnya berbagai inovasi seperti smart lock. Smart lock merupakan sistem penguncian elektronik yang menggantikan kunci konvensional dengan metode autentikasi digital seperti PIN atau password. Sistem ini banyak digunakan pada brankas digital, pintu otomatis, hingga perangkat keamanan modern lainnya. Oleh karena itu, pengembangan sistem smart lock sederhana menjadi salah satu media pembelajaran yang relevan dalam bidang mikrokontroler.

Pada proyek ini, dikembangkan sebuah prototipe smart lock sederhana berbasis Arduino yang mengintegrasikan beberapa komponen elektronik. Komponen yang digunakan meliputi keypad sebagai perangkat input untuk memasukkan PIN, LCD I2C sebagai media tampilan informasi, serta buzzer sebagai indikator suara. Sistem ini dirancang untuk dapat menerima input dari pengguna, memproses data PIN yang dimasukkan, dan memberikan umpan balik berupa tampilan status serta bunyi alarm. Setiap interaksi pengguna akan ditampilkan secara real-time pada LCD sehingga memudahkan proses monitoring. Dengan demikian, sistem ini dapat mensimulasikan mekanisme kerja smart lock secara sederhana namun tetap informatif.

Selain itu, sistem ini juga dirancang untuk memberikan pemahaman dasar mengenai integrasi antara perangkat input dan output dalam sistem embedded. Proses autentikasi PIN digunakan sebagai simulasi keamanan dasar yang umum diterapkan pada sistem digital modern. Jika PIN yang dimasukkan sesuai, maka sistem akan memberikan akses dengan notifikasi berhasil, sedangkan jika salah akan memicu alarm sebagai bentuk peringatan. Kombinasi antara tampilan visual pada LCD dan sinyal suara dari buzzer memberikan pengalaman interaksi yang lebih nyata. Dengan adanya sistem ini, diharapkan dapat menjadi media pembelajaran dalam memahami konsep dasar sistem keamanan berbasis mikrokontroler.

Tujuan

Adapun tujuan dari pembuatan sistem smart lock sederhana ini adalah sebagai berikut:

  1. Merancang konsep sistem keamanan digital berbasis PIN menggunakan mikrokontroler Arduino
  2. Mempelajari penggunaan perangkat input berupa keypad sebagai media autentikasi pengguna.
  3. Mengimplementasikan LCD I2C sebagai media output untuk menampilkan status sistem secara real-time.
  4. Menggunakan buzzer sebagai indikator suara untuk memberikan umpan balik terhadap hasil autentikasi.
  5. Membangun pemahaman dasar mengenai integrasi komponen input dan output dalam sistem embedded sederhana.
  6. Mensimulasikan konsep dasar sistem keamanan yang dapat dikembangkan menjadi sistem smart lock yang lebih kompleks di masa depan.

Konsep Sistem

  1. Pengguna memasukkan PIN melalui keypad.
  2. Input ditampilkan pada LCD I2C.
  3. Sistem membandingkan PIN dengan password yang telah ditentukan.
  4. Jika PIN benar:
    • LCD menampilkan “AKSES DITERIMA”
    • Buzzer berbunyi 2 kali pendek
  5. Jika PIN salah:
    • LCD menampilkan “AKSES DITOLAK”
    • Buzzer berbunyi panjang sebagai alarm

Alur Kerja Sistem

Komponen yang digunakan

1. Arduino Uno

Arduino Uno adalah papan mikrokontroler berbasis ATmega328P yang sangat populer bagi pemula. Memiliki 14 pin digital dan 6 input analog, papan ini berfungsi sebagai otak untuk mengendalikan sensor serta aktuator. Sifatnya yang open-source dan kemudahan pemrograman menggunakan Arduino IDE menjadikannya standar utama dalam pembuatan prototipe robotika dan perangkat IoT.

2. Keypad 4×4

Keypad adalah perangkat input berupa tombol yang disusun dalam matriks baris dan kolom. Pada rangkaian brankas digital ini, kamu menggunakan keypad jenis 4×4. Artinya, alat ini memiliki empat baris dan empat kolom, menghasilkan total enam belas tombol yang terdiri dari angka, huruf, serta simbol untuk memasukkan kombinasi kode PIN rahasiamu.

3. LCD I2C

LCD I2C adalah modul layar karakter yang dilengkapi dengan modul konverter PCF8547, sehingga hanya membutuhkan dua kabel data (SDA dan SCL) untuk berkomunikasi dengan mikrokontroler. Teknologi ini sangat efisien karena menghemat penggunaan pin I/O pada papan seperti Arduino.

Modul ini biasanya tersedia dalam ukuran 16×2 atau 20×4 karakter. Keunggulan utamanya adalah kemudahan instalasi serta adanya potensiometer bawaan untuk mengatur kontras layar secara manual. Dengan pustaka (library) pendukung, pengguna dapat menampilkan teks, angka, hingga simbol khusus untuk antarmuka proyek elektronik dengan lebih praktis dan rapi.

4. Buzzer

Buzzer adalah komponen elektronika yang berfungsi mengubah sinyal listrik menjadi gelombang suara. Dalam proyek brankas digital ini, buzzer bertindak sebagai indikator audio. Ia memberikan umpan balik berupa bunyi “klik” pendek saat tombol ditekan, serta menghasilkan nada peringatan khusus untuk menandakan apakah PIN yang dimasukkan benar atau salah.

5. Kabel Jumper

Kabel jumper adalah kabel konduktor berukuran kecil yang memiliki pin konektor di ujungnya (bisa berupa pin jantan/male atau lubang betina/female). Kabel ini sangat penting dalam pembuatan prototipe elektronik karena memungkinkanmu menghubungkan berbagai komponen—seperti Arduino, keypad, LCD, dan buzzer—secara langsung pada breadboard tanpa memerlukan proses penyolderan, sehingga memudahkan perakitan dan modifikasi rangkaian.

Rangkaian Sistem (Wokwi)

Keypad:

  • R1 → D9
  • R2 → D8
  • R3 → D7
  • R4 → D6
  • C1 → D5
  • C2 → D4
  • C3 → D3
  • C4 → D2

LCD I2C:

  • VCC → 5V
  • GND → GND
  • SDA → A4
  • SCL → A5

Buzzer:

  • (+) → D10
  • (-) → GND

Kode Arduino (Wokwi)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

// --- KONFIGURASI LCD I2C ---
// Alamat I2C: 0x27 (Jika layar kosong/error, coba ganti jadi 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2); 

// --- KONFIGURASI KEYPAD 4x4 ---
const byte ROWS = 4; 
const byte COLS = 4; // Berubah jadi 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}; 
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

// --- KONFIGURASI BUZZER & LOGIKA PIN ---
#define BUZZER_PIN 12
String pinBenar = "543210"; // <-- Ganti PIN rahasiamu di sini
String pinInput = "";

void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
  
  // Menyalakan LCD
  lcd.init();
  lcd.backlight();
  
  // Tampilan awal
  tampilkanMenuUtama();
}

void loop() {
  char key = keypad.getKey();

  if (key) {
    // Bunyikan suara klik
    bunyiKlik();
    
    // Proses input karakter
    if (pinInput.length() < 6) {
      pinInput += key;
      lcd.print("*"); // Samarkan input dengan bintang
    }

    // Pengecekan setelah 6 karakter dimasukkan
    if (pinInput.length() == 6) {
      delay(400); // Jeda agar bintang ke-4 terlihat sebentar
      
      if (pinInput == pinBenar) {
        aksesDiterima();
      } else {
        aksesDitolak();
      }
      
      // Reset input dan kembali ke menu utama
      pinInput = "";
      tampilkanMenuUtama();
    }
  }
}

// --- FUNGSI TAMPILAN LCD ---
void tampilkanMenuUtama() {
  lcd.clear();
  lcd.setCursor(0, 0); 
  lcd.print("Masukkan PIN:");
  lcd.setCursor(0, 1); 
}

// --- FUNGSI SUARA & STATUS ---
void bunyiKlik() {
  tone(BUZZER_PIN, 1000); 
  delay(50);
  noTone(BUZZER_PIN);
}

void aksesDiterima() {
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("AKSES DITERIMA");
  lcd.setCursor(2, 1);
  lcd.print("KUNCI TERBUKA");
  
  // Nada ceria
  tone(BUZZER_PIN, 1500); delay(150); noTone(BUZZER_PIN); delay(100);
  tone(BUZZER_PIN, 1500); delay(150); noTone(BUZZER_PIN);
  delay(2000); 
}

void aksesDitolak() {
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("PIN SALAH!");
  lcd.setCursor(1, 1);
  lcd.print("AKSES DITOLAK!");
  
  // Nada peringatan panjang
  tone(BUZZER_PIN, 300); 
  delay(1500); 
  noTone(BUZZER_PIN);
  delay(1000); 
}

Hasil Pengujian

Jika PIN benar :

Jika PIN salah :

Kesimpulan

Sistem smart lock sederhana ini berhasil mengimplementasikan konsep keamanan digital berbasis Arduino dengan kombinasi input (keypad), output visual (LCD I2C), dan output audio (buzzer). Sistem ini dapat dikembangkan lebih lanjut menjadi pintu otomatis atau sistem keamanan rumah pintar.

sucimailani@student.telkomuniversity.ac.id
sucimailani@student.telkomuniversity.ac.id
Articles: 1

Leave a Reply

Your email address will not be published. Required fields are marked *