LAPORAN PRAKTIKUM SIMULASI BRANKAS DIGITAL MENGGUNAKAN ARDUINO UNO PADA WOKWI
Mata Kuliah Internet of Things
Disusun Oleh:
- Mochamad Haikal (177)
- Syamil Bani Hafidz (197)
- Muhammad Najwan (202)
- Muhammad Risky Wira (186)
Prodi S1 Teknik Informatika
Fakultas Teknik
UNIVERSITAS NEGERI SURABAYA
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi mikrokontroler memberikan kemudahan dalam membuat berbagai sistem elektronik yang dapat bekerja secara otomatis dan terprogram. Salah satu mikrokontroler yang banyak digunakan dalam pembelajaran adalah Arduino UNO karena bersifat open source, memiliki library yang siap digunakan, serta relatif mudah diprogram. Arduino juga dapat diintegrasikan dengan berbagai komponen input dan output untuk membangun suatu sistem sesuai kebutuhan.
Salah satu penerapan sederhana mikrokontroler adalah sistem keamanan berupa brankas digital. Sistem ini menggunakan keypad sebagai media untuk memasukkan PIN, LCD sebagai media untuk menampilkan informasi, servo sebagai penggerak mekanisme pengunci, serta LED dan buzzer sebagai indikator kondisi sistem. Dengan menggabungkan beberapa komponen tersebut, Arduino UNO dapat digunakan untuk membuat sistem keamanan yang mampu memeriksa PIN dan memberikan respons berdasarkan hasil pemeriksaan.
Dalam proses pembelajaran dan perancangan, penggunaan Wokwi dapat membantu melakukan simulasi rangkaian dan program tanpa harus langsung menggunakan perangkat keras secara fisik. Modul pembelajaran juga memperkenalkan Wokwi sebagai simulator elektronik berbasis web yang dapat digunakan untuk melakukan simulasi proyek mikrokontroler.
Oleh karena itu, pada proyek ini dibuat brankas digital berbasis Arduino UNO yang menggunakan PIN sebagai sistem autentikasi. Sistem dirancang agar brankas dapat terbuka ketika PIN yang dimasukkan benar, sedangkan PIN yang salah akan menghasilkan indikator peringatan. Sistem juga dilengkapi dengan batas percobaan sebanyak tiga kali sebagai fitur keamanan tambahan. Melalui proyek ini, mahasiswa dapat memahami penerapan mikrokontroler, pemrograman Arduino, penggunaan berbagai komponen elektronik, serta proses perancangan dan simulasi sistem menggunakan Wokwi.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan, rumusan masalah dalam proyek ini adalah:
- Bagaimana merancang dan membuat sistem brankas digital berbasis Arduino UNO?
- Bagaimana menggunakan keypad 4×4 sebagai input untuk memasukkan PIN pada sistem brankas digital?
- Bagaimana Arduino UNO dapat memproses PIN yang dimasukkan dan menentukan apakah PIN tersebut benar atau salah?
- Bagaimana mengintegrasikan LCD I2C, servo, LED, dan buzzer sebagai output dan indikator pada sistem?
- Bagaimana menerapkan batas percobaan PIN sebanyak tiga kali sebagai fitur keamanan tambahan?
- Bagaimana melakukan simulasi dan pengujian sistem brankas digital menggunakan Wokwi?
1.3 Tujuan Laporan
Tujuan dari pembuatan laporan ini adalah:
- Mengetahui proses perancangan sistem brankas digital berbasis Arduino UNO.
- Memahami penggunaan keypad 4×4 sebagai input untuk memasukkan PIN.
- Mengetahui cara Arduino UNO memproses PIN dan menentukan apakah PIN benar atau salah.
- Memahami penggunaan LCD I2C, servo, LED, dan buzzer sebagai komponen output pada sistem.
- Menerapkan fitur pembatasan percobaan PIN sebanyak tiga kali sebagai sistem keamanan tambahan.
- Mengetahui proses simulasi dan pengujian rangkaian menggunakan Wokwi.
- Menerapkan pemrograman Arduino untuk mengendalikan seluruh komponen sehingga dapat berfungsi sebagai sistem brankas digital sederhana.
1.4 Manfaat Penulisan
Manfaat yang diperoleh dari penulisan laporan proyek Brankas Digital berbasis Arduino UNO adalah sebagai berikut:
- Bagi mahasiswa, yaitu menambah pengetahuan dan pemahaman mengenai mikrokontroler Arduino UNO, pemrograman, serta penggunaan berbagai komponen elektronik.
- Bagi proses pembelajaran, yaitu membantu mahasiswa memahami
penerapan teori mikrokontroler ke dalam sebuah proyek sederhana yang dapat disimulasikan menggunakan Wokwi.
- Bagi pengembangan keterampilan, yaitu melatih kemampuan dalam merancang rangkaian, membuat program, menghubungkan komponen, serta melakukan pengujian dan perbaikan sistem.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
2.1.1 Mikrokontroler
Mikrokontroler merupakan sebuah perangkat elektronik yang digunakan untuk mengendalikan suatu sistem berdasarkan program yang telah dibuat. Dalam satu chip mikrokontroler dapat terdapat beberapa bagian seperti RAM, ROM, GPIO, EEPROM, ADC, DAC, PWM, timer, dan komunikasi. Mikrokontroler dapat menerima data dari perangkat input, kemudian memproses data tersebut dan menghasilkan keluaran melalui perangkat output.
2.1.2 Arduino
Arduino merupakan platform mikrokontroler yang dikembangkan dengan konsep yang mudah digunakan oleh pengguna dari bidang elektronika maupun pemrograman. Arduino menggunakan mikrokontroler Atmel AVR dan mendukung pemrograman menggunakan bahasa C/C++. Arduino juga memiliki sifat open source serta menyediakan berbagai library yang dapat digunakan untuk mempermudah pemrograman. Selain itu, tersedia berbagai shield untuk sensor dan perangkat input/output.
Pada proyek ini digunakan Arduino UNO. Berdasarkan modul, Arduino UNO menggunakan mikrokontroler ATmega328P dengan kecepatan clock 16 MHz, SRAM sebesar 2 KB, dan memori program (Flash) sebesar 32 KB. Arduino UNO tidak memiliki konektivitas Wi-Fi dan Bluetooth bawaan.
2.1.3 Keypad
Keypad merupakan perangkat input yang terdiri dari 16 tombol yang tersusun dalam empat baris dan empat kolom. Keypad digunakan untuk memasukkan data atau perintah ke dalam sistem. Pada proyek brankas digital, keypad digunakan untuk memasukkan PIN keamanan.
Tombol angka 0–9 digunakan untuk memasukkan PIN, tombol # digunakan untuk memeriksa PIN, sedangkan tombol * digunakan untuk menghapus input PIN.
2.1.4 LCD I2C
LCD 16×2 merupakan perangkat output yang digunakan untuk menampilkan informasi kepada pengguna. LCD memiliki dua baris yang masing-masing dapat menampilkan hingga 16 karakter.
Pada proyek ini digunakan LCD dengan komunikasi I2C. Komunikasi tersebut menggunakan jalur SDA dan SCL, sehingga penggunaan pin Arduino menjadi lebih sederhana. LCD digunakan untuk menampilkan informasi seperti “DIGITAL SAFE”, “PIN BENAR!”, “PIN SALAH!”, “BRANKAS TERBUKA” dan “BRANKAS TERKUNCI”.
2.1.5 Servo Motor
Servo motor merupakan aktuator yang dapat mengatur posisi sudut berdasarkan sinyal kendali dari mikrokontroler. Pada sistem brankas digital, servo digunakan sebagai mekanisme pengunci dan pembuka brankas.
Pada proyek ini, posisi servo diatur menjadi:
- 0° → brankas terkunci.
- 90° → brankas terbuka.
2.1.6 LED
LED atau Light Emitting Diode merupakan komponen yang dapat menghasilkan cahaya ketika dialiri arus listrik. Pada proyek ini digunakan dua LED sebagai indikator kondisi sistem.
- LED hijau → menunjukkan bahwa PIN yang dimasukkan benar.
- LED merah → menunjukkan bahwa PIN yang dimasukkan salah atau sistem sedang dalam kondisi terkunci.
2.1.7 Buzzer
Buzzer merupakan komponen output yang menghasilkan suara sebagai tanda atau indikator. Pada proyek brankas digital, buzzer digunakan untuk memberikan informasi melalui pola bunyi.
- PIN benar → 1 bunyi pendek.
- PIN salah → 2 bunyi pendek.
- PIN salah sebanyak 3 kali → 3 bunyi alarm lebih panjang. 2.2 Komponen
|
No. |
Komponen |
Jumlah |
Fungsi |
|
1 |
Arduino UNO |
1 |
Sebagai mikrokontroler yang mengendalikan seluruh sistem |
|
2 |
Keypad 4×4 |
1 |
Sebagai input untuk memasukkan PIN |
|
3 |
LCD 16×2 I2C |
1 |
Menampilkan informasi dan status brankas |
|
4 |
Servo Motor |
1 |
Sebagai mekanisme pembuka dan pengunci brankas |
|
5 |
LED Hijau |
1 |
Indikator bahwa PIN benar |
|
6 |
LED Merah |
1 |
Indikator bahwa PIN salah atau brankas terkunci |
|
7 |
Buzzer |
1 |
Memberikan indikator berupa bunyi |
|
8 |
Resistor 220 Ω |
2 |
Membatasi arus pada LED |
BAB III
PEMBAHASAN
3.1 Penjelasan simulasi
Simulasi sistem brankas digital berbasis Arduino UNO dilakukan menggunakan Wokwi, yaitu simulator elektronik berbasis web yang dapat digunakan untuk merancang dan menguji rangkaian serta program mikrokontroler tanpa menggunakan perangkat keras secara langsung.
Pada simulasi ini, Arduino UNO berfungsi sebagai pusat kendali yang terhubung dengan keypad 4×4, LCD 16×2 I2C, servo motor, LED hijau, LED merah, dan buzzer. Keypad digunakan untuk memasukkan PIN, sedangkan Arduino memproses PIN tersebut dan memberikan keluaran melalui LCD, LED, buzzer, serta pergerakan servo.
Proses simulasi dilakukan dengan memasukkan PIN melalui keypad. PIN yang digunakan dalam sistem adalah 1234. Jika PIN yang dimasukkan benar dan tombol # ditekan, sistem akan menampilkan informasi bahwa PIN benar, LED hijau menyala, buzzer berbunyi satu kali, dan servo bergerak ke posisi terbuka. Setelah beberapa detik, servo kembali ke posisi terkunci.
Apabila PIN yang dimasukkan salah, LCD menampilkan informasi “PIN SALAH!”, LED merah menyala, dan buzzer memberikan dua bunyi sebagai tanda kesalahan. Sistem juga menghitung jumlah percobaan yang salah. Jika terjadi tiga kali kesalahan, sistem masuk ke kondisi penguncian sementara dan memberikan bunyi alarm sebanyak tiga kali sebelum kembali dapat digunakan.
Tombol * digunakan untuk menghapus input PIN, sedangkan tombol # digunakan untuk mengonfirmasi PIN. Dengan simulasi Wokwi, seluruh fungsi tersebut dapat diuji terlebih dahulu untuk memastikan rangkaian dan program bekerja sesuai dengan rancangan.
3.2 Progam
|
#include <Keypad.h> #include <LiquidCrystal_I2C.h> #include <Servo.h>
const byte ROWS = 4; const byte COLS = 4;
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 );
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myServo; const int servoPin = 10;
const int greenLED = 11; |
|
const int redLED = 12;
const int buzzer = 13;
String correctPIN = "1234"; String inputPIN = "";
int attempts = 0; const int maxAttempts = 3;
void beepBenar() { tone(buzzer, 1000); delay(200); noTone(buzzer); }
void beepSalah() { for (int i = 0; i < 2; i++) { tone(buzzer, 500); delay(200); noTone(buzzer); delay(150); } }
void beepAlarm() { for (int i = 0; i < 3; i++) { tone(buzzer, 300); delay(500); noTone(buzzer); delay(200); } |
|
}
void tampilkanMenu() { lcd.clear();
lcd.setCursor(0, 0); lcd.print("DIGITAL SAFE");
lcd.setCursor(0, 1); lcd.print("PIN: "); }
void setup() { Serial.begin(9600);
lcd.init(); lcd.backlight();
myServo.attach(servoPin); myServo.write(0);
pinMode(greenLED, OUTPUT); pinMode(redLED, OUTPUT); pinMode(buzzer, OUTPUT);
digitalWrite(greenLED, LOW); digitalWrite(redLED, LOW); digitalWrite(buzzer, LOW);
tampilkanMenu(); } |
|
void loop() {
char key = keypad.getKey();
if (!key) { return; }
Serial.println(key);
if (key >= '0' && key <= '9') {
if (inputPIN.length() < 4) {
inputPIN += key;
lcd.setCursor(0, 1); lcd.print("PIN: ");
for (int i = 0; i < inputPIN.length(); i++) { lcd.print("*"); } } }
else if (key == '#') {
lcd.clear(); if (inputPIN == correctPIN) { attempts = 0; |
|
digitalWrite(greenLED, HIGH); digitalWrite(redLED, LOW);
beepBenar();
myServo.write(90);
lcd.setCursor(0, 0); lcd.print("PIN BENAR!");
lcd.setCursor(0, 1); lcd.print("BRANKAS TERBUKA");
Serial.println("PIN BENAR");
delay(5000);
myServo.write(0);
lcd.clear();
lcd.setCursor(0, 0); lcd.print("BRANKAS"); lcd.setCursor(0, 1); lcd.print("TERKUNCI");
delay(2000); digitalWrite(greenLED, LOW); } |
|
else {
attempts++;
digitalWrite(greenLED, LOW); digitalWrite(redLED, HIGH);
beepSalah();
myServo.write(0);
lcd.setCursor(0, 0); lcd.print("PIN SALAH!");
lcd.setCursor(0, 1); lcd.print("Percobaan: "); lcd.print(attempts);
Serial.println("PIN SALAH");
delay(2000);
digitalWrite(redLED, LOW);
if (attempts >= maxAttempts) {
lcd.clear(); digitalWrite(redLED, HIGH); lcd.setCursor(0, 0); lcd.print("BRANKAS TERKUNCI"); |
lcd.setCursor(0, 1); lcd.print("TUNGGU 5 DETIK");
beepAlarm();
Serial.println("3 KALI SALAH!");
delay(5000);
digitalWrite(redLED, LOW);
attempts = 0;
}
}
inputPIN = "";
tampilkanMenu();
}
else if (key == '*') {
inputPIN = "";
tampilkanMenu();
}
}
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan perancangan dan simulasi yang telah dilakukan, dapat disimpulkan bahwa sistem Brankas Digital berbasis Arduino UNO berhasil dirancang dan disimulasikan menggunakan Wokwi. Sistem dapat menerima input PIN melalui keypad 4×4, kemudian Arduino memproses PIN tersebut dan memberikan respons melalui LCD, LED, buzzer, serta servo.
PIN yang benar dapat membuka brankas dengan menggerakkan servo ke posisi terbuka, sedangkan PIN yang salah akan memberikan indikator berupa LED merah dan bunyi buzzer. Sistem juga berhasil menerapkan batas maksimal 3 kali percobaan PIN yang salah, sehingga setelah tiga kali kesalahan, sistem akan terkunci sementara. Dengan demikian, seluruh komponen dapat bekerja secara terintegrasi sesuai dengan rancangan sistem.
4.2 Saran
- Sistem dapat dikembangkan dengan menambahkan fitur penggantian PIN
sehingga pengguna dapat mengubah PIN tanpa mengubah program.
- Dapat ditambahkan sensor tambahan, seperti sensor pintu, untuk mengetahui kondisi brankas terbuka atau tertutup.
- Sistem dapat dikembangkan menggunakan mikrokontroler yang memiliki konektivitas seperti Wi-Fi atau Bluetooth agar dapat memberikan notifikasi
keamanan.
- Pada pengembangan berikutnya, sistem dapat menggunakan daya dan rangkaian fisik yang lebih stabil apabila diterapkan pada perangkat nyata.
- Simulasi Wokwi sebaiknya dilakukan dengan berbagai kondisi pengujian untuk memastikan sistem tetap bekerja sesuai rancangan.
DAFTAR PUSTAKA
Wahyudi & Sabara. E. (2022). Desain dan Implementasi Media Pembelajaran Mikrokontroler Berbasis Hybrid Learning Menggunakan Wokwi Simulation. https://journal.unm.ac.id/index.php/mediaelektrik/article/view/5473
Aziz, Amirul. F. N. & Umar, S.T., M.T. (2026). Rancang Bangun Sistem Keamanan Brankas Berbasis Internet of Things (IoT).
https://eprints.ums.ac.id/143733/
LAMPIRAN
Link:
https://drive.google.com/file/d/1D23pXHLu_OYZICdQSWXGWgwruQSAax
Tidak ada komentar:
Posting Komentar