LAPORAN PRAKTIKUM INTERNET OF
THINGS (IOT)
Simulasi Palan Pintu Kereta Api
Antarkota Berbasis Arduino Uno Dengan Indikator 7-Segment
Disusun Oleh:
Athallah Firmansyah 24051204136
Dave Osvaldo Adris 24051204172
Arsena Cahya Fioralle 24051204190
M. Ai-Bee Tazkyan N 24051204212
BAB I
PENDAHULUAN
1.1
Latar Belakang
Sistem
transportasi perkerataapian memerlukan keandalan tinggi, khususnya pada
perlintasan sebidang untuk menjamin keselamatan pengguna jalan maupun
perjalanan kereta api. Sebagian besar kecelakaan di perlintasan sebidang
disebabkan oleh keterlambatan peringatan dini atau kelalaian dalam
pengoperasian palang pintu secara manual. Seiring pesat nya perkembangan
teknologi embedded system dan Internet of Things (IoT), modernisasi otomatisasi
perlintasan kereta api dapat diwujudkan melalui pengolahan sinyal input dan
output (I/O) pada mikrokontroler.
Dalam merancang purwarupa sistem peringatan perlintasan kereta api, mikrokontroler seperti Arduino Uno bertindak sebagai unit pemroses utama yang mengolah sinyal digital dan analog. Perubahan jarak atau kedatangan kereta dapat disimulasikan menggunakan sinyal analog dari potensiometer yang dibaca melalui fitur Analog to Digital Converter (ADC). Data analog tersebut selanjutnya diolah oleh program untuk memberikan instruksi keluaran (output) berupa indikator visual, seperti kedipan LED peringatan dan tampilan hitung mundur (countdown) pada modul display 7 segment 4 digit. Selain itu, integrasi saklar interupsi manual (push button) diperlukan sebagai mekanisme override atau reset sistem saat perlintasan telah kembali aman.
Untuk
memvalidasi logika pemrograman I/O dan skematik pengkabelan tanpa risiko
kerusakan komponen fisik,
penggunaan
platform simulasi berbasis cloud Wokwi menjadi solusi yang efisien. Platform
ini mampu mensimulasikan karakteristik Analog/Digital I/O, Internal Pull-Up,
hingga teknik pemindaian display (multiplexing) secara real-time. Berdasarkan
hal tersebut, laporan praktikum ini disusun untuk mendokumentasikan
perancangan, simulasi, dan pengujian sistem Palang Pintu Kereta Api Antarkota
Berbasis Arduino Uno sebagai bentuk implementasi materi pemrosesan Digital
& Analog I/O.
1.2
Rumusan Masalah
Berdasarkan
latar belakang yang telah diuraikan, maka rumusan masalah dalam praktikum ini
adalah sebagai berikut:
- Bagaimana
merancang dan merangkai simulasi sistem palang pintu kereta api berbasis
Arduino Uno menggunakan platform Wokwi?
- Bagaimana
proses pengolahan sinyal masukan analog dari potensiometer (simulator
jarak/kedatangan kereta) melalui Analog to Digital Converter (ADC) untuk
menentukan ambang batas peringatan (threshold)?
- Bagaimana
mengimplementasikan logika kontrol digital untuk menyalakan kedipan LED
indikator secara bergantian dan menampilkan hitung mundur waktu tunggu
pada display 7 segment 4 digit?
- Bagaimana
fungsi push button berpengaruh terhadap interupsi dan reset status sistem
kembali ke kondisi aman?
1.3
Tujuan Laporan
Adapun
tujuan dari penulisan laporan praktikum ini adalah:
- Memahami
serta mengimplementasikan konsep pemrosesan Digital & Analog
Input/Output (I/O) serta pembacaan ADC pada mikrokontroler Arduino
Uno.
- Mampu
merancang alur algoritma kontrol untuk menggerakkan aktuator berupa LED
peringatan dan display 7 segment 4 digit berdasarkan pemicu sinyal
input.
- Memvalidasi
kebenaran alur logika program dan skematik rangkaian sistem simulasi
palang pintu kereta api pada platform Wokwi sebelum tahap pengadaan
perangkat keras fisik.
1.4
Manfaat Penulisan
Manfaat
yang diharapkan dari pembuatan simulasi dan penyusunan laporan ini
meliputi:
- Bagi
Penulis:
Menjadi media untuk menerapkan secara langsung teori arsitektur
mikrokontroler, pengondisian pin GPIO, konversi Analog to Digital
Converter (ADC), dan teknik multiplexing display 7 segment pada kasus
nyata berbasis embedded system.
- Bagi
Pengguna/Operator Perlintasan:
Memberikan gambaran rancangan sistem peringatan dini otomatis yang
presisi, sehingga meminimalisir potensi human error dalam pemantauan
kedatangan kereta api di perlintasan sebidang.
- Bagi
Pengembang/Sistem:
Mempercepat proses pengujian dan debugging alur program secara efisien
melalui platform Wokwi, sehingga mencegah terjadinya kesalahan pengkabelan
maupun risiko kerusakan komponen elektronik saat implementasi
hardware.
BAB II
TINJAUAN PUSTAKA
2.1
Dasar Teori
Internet
of Things (IoT) merupakan konsep interkoneksi antar perangkat fisik yang
dilengkapi sensor, perangkat lunak, dan konektivitas jaringan sehingga mampu
mengumpulkan serta bertukar data secara mandiri. Dalam konteks sistem
monitoring seperti Smart Compost Monitor, IoT memungkinkan proses akuisisi data
lingkungan dilakukan secara kontinu dan direspons melalui aktuator tanpa
memerlukan intervensi manual secara langsung.
ESP32
adalah mikrokontroler system-on-chip (SoC) berbasis prosesor dual-core
Tensilica Xtensa LX6 yang dilengkapi modul konektivitas Wi-Fi dan Bluetooth
terintegrasi. Selain kemampuan pemrosesan data, ESP32 menyediakan sejumlah pin
General Purpose Input/Output (GPIO) yang dapat dikonfigurasi sebagai jalur
digital maupun analog, sehingga menjadikannya platform yang tepat untuk
aplikasi embedded system berbasis IoT.
Pemrosesan
sinyal digital pada mikrokontroler bekerja berdasarkan dua kondisi logika,
yaitu HIGH (1) dan LOW (0). Pada sisi input, sinyal digital diperoleh dari
perangkat seperti push button yang menghasilkan perubahan status logika saat
ditekan, maupun sensor digital seperti DHT22 yang mengirimkan data melalui
protokol komunikasi satu jalur (single-wire). Pada sisi output, sinyal digital
digunakan untuk mengendalikan aktuator sederhana seperti LED indikator melalui
pengaturan status HIGH/LOW pada pin GPIO.
Berbeda
dengan sinyal digital, sinyal analog bersifat kontinu dan dapat memiliki nilai
tegangan pada rentang tertentu. ESP32 dilengkapi fitur Analog to Digital
Converter (ADC) beresolusi 12 bit yang mampu mengonversi tegangan analog
masukan (0-3,3V) menjadi nilai digital dalam rentang 0-4095. Fitur ini
dimanfaatkan untuk membaca keluaran potensiometer yang merepresentasikan
simulasi parameter kelembapan tanah pada sistem kompos.
Komunikasi
Inter-Integrated Circuit (I2C) merupakan protokol komunikasi serial dua jalur
yang terdiri atas jalur data (SDA) dan jalur clock (SCL), yang memungkinkan
pertukaran data antara mikrokontroler dan modul periferal seperti LCD 16x2.
Penggunaan I2C mengurangi jumlah pin yang dibutuhkan dibandingkan dengan
komunikasi paralel, sehingga mempermudah proses pengkabelan pada rangkaian
simulasi.
Wokwi
merupakan platform simulasi elektronika berbasis cloud yang memungkinkan
pengujian rangkaian mikrokontroler, termasuk ESP32, secara virtual tanpa
memerlukan perangkat keras fisik. Melalui Wokwi, perilaku sinyal digital dan
analog dapat diamati secara real-time, termasuk visualisasi pembacaan sensor
dan respons aktuator, sehingga mempercepat proses debugging sebelum
implementasi pada perangkat sesungguhnya.
2.2
Komponen
- ESP32
(DevKit): berperan sebagai mikrokontroler utama yang mengendalikan
seluruh proses akuisisi data sensor serta kendali aktuator pada
sistem.
- Potensiometer:
digunakan sebagai simulasi sensor kelembapan tanah, menghasilkan sinyal
tegangan analog yang dibaca melalui pin ADC ESP32.
- Push
Button: berfungsi sebagai sensor input digital yang mensimulasikan aksi
manual pengguna, misalnya sebagai tombol reset atau pemicu perubahan
status sistem.
- Sensor
DHT22: sensor digital yang membaca parameter suhu dan kelembapan udara di
sekitar kompos, dengan data dikirimkan ke mikrokontroler melalui protokol
komunikasi single-wire.
- LED
(Light Emitting Diode): berperan sebagai aktuator output digital yang
memberikan indikator visual terhadap status kematangan kompos.
- LCD
16x2 I2C: modul tampilan yang menampilkan informasi hasil pembacaan sensor
secara real-time, dihubungkan ke ESP32 menggunakan komunikasi I2C agar
penggunaan pin lebih efisien.
BAB III
PEMBAHASAN
3.1
Rangkaian Simulasi
3.1.1 Mikrokontroler Arduino
Uno
Perakitan antarmuka perangkat keras
virtual dilakukan dengan memetakan koneksi antar komponen menuju pin pada board
mikrokontroler Arduino Uno. Konfigurasi pengkabelan disusun secara sistematis
berdasarkan fungsi masing-masing pin sebagai berikut:
- Potensiometer
(Sensor Jarak):
Bertindak sebagai simulator pendeteksi kedatangan kereta, pin output
sinyal analognya dihubungkan ke pin A0. Pemilihan pin ini didasarkan pada
fungsinya yang mendukung fitur Analog-to-Digital Converter (ADC) untuk
mengkonversi nilai tegangan menjadi data estimasi jarak.
- Push
Button (Saklar Reset):
Dikonfigurasi dengan pull-up internal dan dipasang pada pin digital
13. Tombol ini berfungsi sebagai saklar interupsi manual bagi penjaga
perlintasan untuk mereset dan menormalkan sistem.
- LED
Indikator:
Bertindak sebagai output peringatan visual layaknya alarm perlintasan,
masing-masing anoda LED merah dihubungkan ke pin digital 9 dan pin digital
10.
- Modul
4-Digit 7-Segment:
Dirangkai secara paralel ke pin-pin digital Arduino untuk memproyeksikan
angka hitung mundur estimasi waktu. Pin segmen dihubungkan ke pin 1 hingga
8, sedangkan pin kontrol digit menggunakan pin A1 hingga A4.
3.1.2 Algoritma Sistem
Secara
algoritma, sistem beroperasi dengan membaca input kondisi secara terus-menerus
(looping). Mikrokontroler Arduino Uno akan mengekstraksi data fluktuasi nilai
dari potensiometer secara real-time. Data tersebut langsung diproses
untuk memicu aktuator visual. Sistem menggunakan logika kondisional (if-else)
berdasarkan nilai ambang batas (threshold) kedatangan kereta:
- Kondisi
Peringatan/Aktif:
Jika nilai pembacaan sensor analog melampaui ambang batas (nilai >
500), program mendeteksi bahwa kereta telah memasuki radius peringatan.
Mikrokontroler akan mengirimkan sinyal HIGH dan LOW secara bergantian ke
pin 9 dan 10 untuk menciptakan efek kedipan lampu peringatan, sekaligus
memulai hitung mundur (contoh: 30 detik) pada layar 7-segment.
- Kondisi
Aman (Reset):
Program terus memantau status penekanan tombol interupsi. Jika operator
menekan tombol (membaca logika LOW), sistem akan mengeksekusi instruksi override
untuk menghentikan alarm, mematikan kedua LED merah, dan mengosongkan
layar 7-segment sebagai indikasi bahwa perlintasan telah kembali aman.
3.2
Program
Berikut
adalah struktur kode program yang digunakan dalam simulasi:
|
const int segmentPins[] = {1,
2, 3, 4, 5, 6, 7, 8}; const int digitPins[] = {A1,
A2, A3, A4};
const int potPin =
A0; const int led1 =
9; const int led2 =
10; const int buttonPin =
13;
const byte digits[] = { B11000000, B11111001, B10100100, B10110000, B10011001, B10010010, B10000010, B11111000, B10000000, B10010000 };
bool keretaDatang = false; unsigned long
waktuSebelumnyaLED = 0; unsigned long
waktuSebelumnyaDetik = 0; const int intervalKedip = 400; bool statusLed = LOW; int waktuTunggu = 0;
void setup() { for (int i = 0; i
< 8; i++) { pinMode(segmentPins[i],
OUTPUT); } for (int i = 0; i
< 4; i++) { pinMode(digitPins[i],
OUTPUT); digitalWrite(digitPins[i],
LOW); } pinMode(led1,
OUTPUT); pinMode(led2,
OUTPUT); pinMode(buttonPin,
INPUT_PULLUP); }
void loop() { int jarakSensor =
analogRead(potPin); int statusTombol =
digitalRead(buttonPin);
if (jarakSensor
> 500 && !keretaDatang) { keretaDatang
= true; waktuTunggu
= 30; waktuSebelumnyaDetik
= millis(); }
if (statusTombol ==
LOW) { keretaDatang
= false; waktuTunggu
= 0; digitalWrite(led1,
LOW); digitalWrite(led2,
LOW); }
if (keretaDatang) { unsigned
long waktuSekarang = millis(); if
(waktuSekarang - waktuSebelumnyaLED >= intervalKedip) { waktuSebelumnyaLED
= waktuSekarang; statusLed
= !statusLed; digitalWrite(led1,
statusLed); digitalWrite(led2,
!statusLed); } if
(waktuSekarang - waktuSebelumnyaDetik >= 1000) { waktuSebelumnyaDetik
= waktuSekarang; if
(waktuTunggu > 0) { waktuTunggu--; } } tampilkanAngka(waktuTunggu); } }
void tampilkanAngka(int angka)
{ int ribuan = (angka
/ 1000) % 10; int ratusan =
(angka / 100) % 10; int puluhan =
(angka / 10) % 10; int satuan = angka
% 10;
tulisDigit(0,
ribuan); tulisDigit(1,
ratusan); tulisDigit(2,
puluhan); tulisDigit(3,
satuan); }
void tulisDigit(int
posisiDigit, int nilai) { for (int i = 0; i
< 4; i++) { digitalWrite(digitPins[i],
LOW); } for (int i = 0; i
< 8; i++) { digitalWrite(segmentPins[i],
bitRead(digits[nilai], i)); } digitalWrite(digitPins[posisiDigit],
HIGH); delay(5); }
|
BAB IV
PENUTUP
4.1
Kesimpulan
Berdasarkan
perancangan, pembuatan kode program, dan pengujian simulasi yang telah
dilakukan, dapat ditarik beberapa kesimpulan sebagai berikut:
- Simulasi
sistem peringatan dini palang pintu kereta api antarkota berhasil
dirancang dan divalidasi menggunakan platform Wokwi tanpa kendala, dengan
mikrokontroler Arduino Uno yang bertindak sebagai pemroses utama sinyal
Input/Output (I/O).
- Sistem
berhasil melakukan pengolahan sinyal masukan analog dari potensiometer
menggunakan fitur Analog to Digital Converter (ADC). Ketika nilai
pembacaan sensor jarak melebihi ambang batas (threshold > 500),
program secara akurat mendeteksi simulasi kedatangan kereta api.
- Logika
kontrol digital pada program mampu menggerakkan aktuator visual secara
bersamaan saat kondisi peringatan aktif, yaitu menyalakan LED indikator
merah yang berkedip secara bergantian serta menampilkan hitung mundur
waktu tunggu (countdown) selama 30 detik pada modul display
7-segment 4 digit.
- Tombol
push button yang dikonfigurasi dengan pull-up internal
berhasil berfungsi sebagai saklar interupsi (sistem override). Saat
ditekan, sistem berhasil mereset status kembali ke kondisi aman dengan
menghentikan hitung mundur, mematikan peringatan LED, dan mengosongkan
tampilan display.
4.2
Saran
Untuk
pengembangan sistem dan perbaikan pada praktikum atau penelitian selanjutnya,
disarankan beberapa hal berikut:
- Pada
tahap implementasi perangkat keras (hardware) di masa mendatang,
penggunaan potensiometer sebaiknya diganti dengan sensor jarak
sesungguhnya, seperti sensor ultrasonik atau inframerah, guna mendapatkan
data kedatangan objek kereta api yang presisi.
- Sistem
dapat disempurnakan dengan menambahkan aktuator berupa motor servo untuk
mensimulasikan pergerakan palang pintu kereta api yang menutup atau
membuka secara fisik.
- Penambahan
komponen buzzer atau speaker sangat direkomendasikan untuk
memberikan peringatan berupa audio (alarm suara) yang melengkapi
indikator visual LED, sehingga meminimalisir kelalaian operator maupun
pengguna jalan.
DAFTAR PUSTAKA
Arduino.
(2024). Arduino Uno Rev3 Documentation and Pinout Guide. Arduino Docs.
https://docs.arduino.cc/hardware/uno-rev3/
Banzi,
M., & Shiloh, M. (2014). Getting Started with Arduino: The Open Source
Electronics Prototyping Platform (3rd ed.). Sebastopol: O'Reilly Media.
Kementerian
Perhubungan Republik Indonesia. (2018). Peraturan Menteri Perhubungan
Republik Indonesia Nomor PM 94 Tahun 2018 tentang Peningkatan Keselamatan
Perlintasan Sebidang Antara Jalur Kereta Api dengan Jalan. Jakarta:
Kementerian Perhubungan RI.
Microchip
Technology Inc. (2018). ATmega328P 8-bit AVR Microcontroller Datasheet.
Microchip Technology Documentation. https://www.microchip.com/
Monk,
S. (2016). Programming Arduino: Getting Started with Sketches (2nd ed.).
New York: McGraw-Hill Education.
Wokwi.
(2024). Wokwi Documentation - Arduino Uno Simulator. Wokwi Docs.
https://docs.wokwi.com/
Tidak ada komentar:
Posting Komentar