LAPORAN PRAKTIKUM INTERNET OF THINGS (IOT)
IMPLEMENTASI SISTEM SMART PARKING
GATE DENGAN MENGGUNAKAN ESP32 PADA WOKWI
Disusun Oleh :
Firman Nova Prayoga 24051204088
Haidar Ali Yafi 24051204111
Nita Aini Rohima 24051204217
Arsyanda Nareswari Widaryanto 24051204109
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi Internet of
Things (IoT) telah memberikan banyak kemudahan dalam berbagai bidang kehidupan,
salah satunya pada pengelolaan sistem parkir. Sistem parkir konvensional
umumnya masih membutuhkan pengawasan dan pengelolaan secara langsung oleh
petugas untuk mengetahui kondisi tempat parkir. Hal tersebut dapat menyebabkan
proses pemantauan menjadi kurang efisien, terutama ketika jumlah kendaraan yang
menggunakan area parkir cukup banyak.
Salah satu permasalahan yang sering
ditemukan pada area parkir adalah kurangnya informasi mengenai ketersediaan
tempat parkir dan ketidakteraturan posisi kendaraan. Kondisi tersebut dapat
menyebabkan pengendara kesulitan mengetahui apakah tempat parkir masih tersedia
atau kendaraan yang diparkir telah melewati batas area yang ditentukan. Oleh
karena itu, diperlukan suatu sistem yang dapat membantu memantau kondisi parkir
secara otomatis.
Berdasarkan permasalahan tersebut,
dikembangkan sebuah sistem Smart Parking Gate berbasis Internet of Things
menggunakan mikrokontroler ESP32. Sistem ini memanfaatkan sensor ultrasonik
HC-SR04 untuk mendeteksi jarak objek atau kendaraan. Data jarak yang diperoleh
kemudian digunakan untuk menentukan kondisi area parkir, yaitu kosong, terisi
dengan posisi parkir yang sesuai, atau mengalami pelanggaran batas parkir.
Selain menggunakan sensor
ultrasonik, sistem ini dilengkapi dengan servo motor sebagai penggerak palang
parkir, LED sebagai indikator kondisi, buzzer sebagai alarm peringatan, serta
LCD I2C untuk menampilkan informasi jarak dan status parkir. ESP32 juga memanfaatkan
koneksi Wi-Fi untuk mengirimkan data hasil pemantauan menuju MQTT Broker HiveMQ
sehingga informasi kondisi parkir dapat dikirimkan melalui jaringan internet.
Dalam praktikum ini, sistem Smart
Parking Gate dirancang dan diuji menggunakan platform simulasi Wokwi.
Penggunaan Wokwi memungkinkan proses perancangan rangkaian elektronik dan
pengujian program dilakukan secara virtual tanpa harus menggunakan seluruh perangkat
keras secara langsung. Dengan demikian, praktikum ini diharapkan dapat
memberikan pemahaman mengenai penerapan sensor, aktuator, mikrokontroler, serta
komunikasi IoT menggunakan protokol MQTT.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan, rumusan
masalah dalam praktikum ini adalah sebagai berikut:
- Bagaimana
merancang sistem Smart Parking Gate menggunakan mikrokontroler ESP32
melalui platform simulasi Wokwi?
- Bagaimana sensor ultrasonik
HC-SR04 digunakan untuk mendeteksi jarak kendaraan dan menentukan kondisi
area parkir?
- Bagaimana mengintegrasikan
servo motor, LED, buzzer, dan LCD I2C sebagai perangkat keluaran dalam
sistem parkir otomatis?
- Bagaimana menerapkan komunikasi
MQTT menggunakan ESP32 dan MQTT Broker HiveMQ untuk mengirimkan data
kondisi parkir?
- Bagaimana
hasil pengujian sistem Smart Parking Gate berdasarkan perubahan jarak
objek yang terdeteksi oleh sensor?
1.3 Tujuan Laporan
Tujuan penyusunan laporan praktikum ini adalah:
- Memahami
proses perancangan sistem Smart Parking Gate berbasis ESP32 menggunakan
platform Wokwi.
- Mengetahui cara kerja sensor
ultrasonik HC-SR04 dalam mengukur jarak objek atau kendaraan.
- Memahami penerapan servo motor
sebagai penggerak palang parkir otomatis.
- Mengetahui fungsi LED, buzzer,
dan LCD I2C sebagai perangkat indikator dan informasi pada sistem parkir.
- Memahami penerapan komunikasi
MQTT untuk mengirimkan data dari ESP32 menuju MQTT Broker HiveMQ.
- Mengetahui
hasil simulasi sistem berdasarkan beberapa kondisi jarak yang telah
ditentukan.
1.4 Manfaat Laporan
Manfaat dari penyusunan laporan ini
adalah :
●
Memberikan
pemahaman mengenai konsep Internet of Things (IoT), penggunaan mikrokontroler
ESP32, sensor ultrasonik, aktuator, serta komunikasi MQTT dalam pengembangan
sistem otomatis.
●
Memberikan
pengalaman dalam merancang dan mengimplementasikan rangkaian elektronik serta
program mikrokontroler menggunakan platform simulasi Wokwi.
●
Meningkatkan
kemampuan dalam memahami proses pengolahan data sensor, pengendalian perangkat
keluaran, dan pengiriman data melalui jaringan internet.
●
Memberikan
gambaran mengenai penerapan teknologi IoT dalam membantu meningkatkan efisiensi
pemantauan dan pengelolaan area parkir secara otomatis.
BAB 2
TINJAUAN PUSTAKA
2.1 Dasar Teori
2.1.1 Internet of Things
(IoT)
Internet of Things (IoT) adalah konsep di mana berbagai perangkat, seperti sensor, perangkat elektronik, dan objek lainnya, terhubung dan berkomunikasi melalui jaringan internet. Dengan IoT, pengguna dapat terkoneksi untuk melakukan berbagai aktivitas, mulai dari pencarian informasi hingga pengolahan data, tanpa perlu campur tangan manusia.
Konsep IoT sepintas hampir serupa dengan Machine-to-Machine (M2M), namun sebenarmya kedua konsep ini memiliki perbedaan signifikan dalam skala dan lingkup penggunaannya. M2M fokus pada komunikasi antara mesin tanpa intervensi manusia, seperti mesin pabrik yang berkoordinasi secara otomatis untuk meningkatkan efisiensi produksi.
Meskipun berbeda, kedua konsep ini sering digunakan bersamaan. Hal ini disebabkan karena tujuan dari IoT dan M2M adalah sama-sama membangun sebuah komunikasi yang terhubung secara otomatis untuk meningkatkan efisiensi.
2.1.2 ESP32
ESP32
adalah modul mikrokontroler terintegrasi yang
memiliki fitur lengkap dan kinerja tinggi. Modul ini merupakan pengembangan
dari ESP8266, yang merupakan modul WiFi populer.
ESP32
memiliki dua prosesor komputasi, satu prosesor untuk mengelola jaringan WiFi dan Bluetooth, serta satu prosesor lainnya untuk
menjalankan aplikasi. Dilengkapi dengan memori RAM yang cukup besar untuk
menyimpan data.
Fitur
yang berguna seperti TCP/IP, HTTP, dan FTP. Modul ini juga dilengkapi fitur
pemrosesan sinyal analog, dukungan untuk sensor, dan dukungan untuk perangkat
masukan/keluaran (I/O) digital. ESP32 juga memiliki dukungan untuk konektivitas
Bluetooth. Dapat digunakan untuk mengendalikan perangkat yang terhubung dengan
Bluetooth.
ESP32
sangat cocok untuk digunakan dalam proyek-proyek IoT (Internet of Things). Modul ini mampu
menyambungkan perangkat ke jaringan Internet dengan mudah. ESP32 dapat
digunakan dalam proyek-proyek yang membutuhkan pemrosesan sinyal analog dan
perangkat I/O digital. Modul ini mudah digunakan dan tersedia dalam bentuk
modul terpisah atau papan sirkuit terpadu (PCB) yang siap digunakan.
2.1.3 Sensor Ultrasonik
HC-SR04
Sensor
ultrasonik merupakan sensor yang menggunakan gelombang ultrasonik. Gelombang
ultrasonik yaitu gelombang yang umum digunakan untuk mendeteksi keberadaan
suatu benda dengan memperkirakan jarak antara sensor dan benda tersebut. Sensor
ini berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik
begitu pula sebaliknya. Gelombang ultrasonik memiliki frekuensi sebesar 20.000
Hz. Bunyi tersebut tidak dapat didengar oleh telinga manusia. Bunyi tersebut
dapat didengar oleh hewan tertentu seperti anjing, kelelawar dan kucing. Bunyi
gelombang ultrasonik dapat merambat melalui zat cair, padat dan gas. Benda cair
merupakan media merambat yang paling baik untuk sensor ultrasonik jika
dibandingkan dengan benda padat dan gas. Oleh karena itu, sensor ultrasonik
banyak digunakan pada kapal selam dan alat khusus untuk mengukur kedalaman air
laut.
Cara
kerja sensor ultrasonik berdasarkan prinsip dari pantulan suatu
gelombang suara sehingga dapat dipakai untuk menafsirkan jarak suatu benda
menggunakan frekuensi tertentu. Gelombang ultrasonik dibangkitkan melalui
sebuah alat yang disebut dengan piezoelektrik menggunakan frekuensi tertentu.
Piezoelektrik tersebut akan menghasilkan gelombang ultrasonik dengan frekuensi
40KHz ketika sebuah osilator diterapkan pada benda tersebut. Pada umumnya, alat
tersebut akan menembakkan gelombang ultrasonik menuju suatu area atau suatu
target. Ketika gelombang sudah menyentuh permukaan target, maka target akan
memantulkan kembali gelombang tersebut. Kemudian gelombang pantulan yang
dihasilkan dari target akan ditangkap oleh sensor. Setelah itu, sensor akan
menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul
yang diterima.
2.1.4 MQTT (Message
Queuing Telemetry Transport)
MQTT
adalah protokol pesan berbasis standar, atau seperangkat aturan, yang digunakan
untuk komunikasi mesin-ke-mesin. Sensor pintar, perangkat yang dapat dikenakan,
dan perangkat Internet untuk Segala (IoT) lainnya biasanya harus mengirim dan
menerima data melalui jaringan dengan sumber daya dan bandwidth terbatas.
Perangkat IoT ini menggunakan MQTT untuk transmisi data, karena mudah
diterapkan dan dapat mengomunikasikan data IoT secara efisien. MQTT mendukung
pengiriman pesan antara perangkat ke cloud dan cloud ke
perangkat.
2.1.5 MQTT Broker HiveMQ
HiveMQ
merupakan layanan MQTT Broker yang digunakan sebagai perantara komunikasi
antara perangkat IoT. Broker menerima pesan yang dikirimkan oleh publisher dan
mendistribusikannya kepada subscriber yang menggunakan topik yang sesuai. Pada
proyek ini, broker yang digunakan adalah broker.hivemq.com dengan port 1883.
ESP32 terhubung ke broker tersebut melalui jaringan Wi-Fi Wokwi.
2.1.6 Wi-Fi
Wi-Fi
merupakan teknologi komunikasi nirkabel yang memungkinkan perangkat terhubung
ke jaringan tanpa menggunakan kabel. Dalam proyek IoT, Wi-Fi digunakan sebagai
media komunikasi untuk menghubungkan mikrokontroler dengan layanan jaringan.
Pada simulasi Wokwi, ESP32 menggunakan jaringan Wi-Fi dengan SSID Wokwi-GUEST
dan tanpa kata sandi. Koneksi ini digunakan untuk mengakses MQTT Broker HiveMQ.
2.1.7 Servo Motor
Servo
motor merupakan aktuator yang dapat mengatur posisi sudut putaran berdasarkan
sinyal kendali yang diberikan. Servo umumnya digunakan pada sistem otomatisasi
yang membutuhkan pengaturan posisi secara presisi.
Pada
proyek Smart Parking Gate, servo motor digunakan sebagai penggerak palang
parkir. Program mengatur posisi servo pada sudut 90 derajat ketika slot parkir
kosong dan 0 derajat ketika kondisi parkir terisi atau terjadi pelanggaran
batas parkir.
2.1.8 Liquid Crystal
Display (LCD) I2C
LCD
atau Liquid Crystal Display adalah suatu jenis media (tampilan) yang
menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang
terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair
sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel,
layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer,
Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk
elektronik lainnya.
Teknologi
Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih
tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube
atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat
dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran
cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD
membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung
karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum
digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode
fluorescent lamps) dan backlight LED (Light-emitting diodes).
2.1.9 LED dan Buzzer
LED
(Light Emitting Diode) merupakan komponen elektronik yang menghasilkan cahaya
ketika dialiri arus listrik. LED dapat digunakan sebagai indikator kondisi
suatu sistem.
Sementara
itu, buzzer merupakan komponen elektronik yang menghasilkan suara sebagai tanda
peringatan.
Pada
proyek ini terdapat tiga LED dengan warna berbeda, yaitu hijau, kuning, dan
merah. LED hijau menunjukkan slot parkir kosong, LED kuning menunjukkan
kendaraan parkir dengan posisi sesuai, sedangkan LED merah menunjukkan kondisi
parkir melewati batas. Buzzer digunakan untuk memberikan peringatan ketika
terjadi pelanggaran batas parkir.
2.1.10 Platform Wokwi
Wokwi
merupakan platform simulasi elektronik berbasis web yang memungkinkan pengguna
merancang dan menguji rangkaian mikrokontroler secara virtual. Platform ini
mendukung berbagai perangkat seperti ESP32, Arduino, sensor, dan aktuator.
Dalam
proyek ini, Wokwi digunakan untuk membuat rangkaian Smart Parking Gate dan
menjalankan program ESP32 tanpa harus menggunakan perangkat keras secara
langsung.
2.2 Komponen
|
Nama |
Fungsi |
|
ESP 32 |
Mikrokontroler utama untuk
mengendalikan sistem |
|
HC-SR04 |
Mengukur jarak kendaraan atau
objek |
|
Servo Motor |
Menggerakkan palang parkir |
|
LED Hijau |
Indikator slot parkir kosong |
|
LED Kuning |
Indikator parkir terisi dengan
posisi sesuai |
|
LED Merah |
Indikator pelanggaran batas parkir
|
|
Buzzer |
Memberikan peringatan suara |
|
LCD I2C 16x2 |
Menampilkan jarak dan status
parkir |
|
Wi-Fi |
Menghubungkan ESP32 ke jaringan
internet |
|
MQTT Broker HiveMQ |
Perantara pengiriman data MQTT |
BAB 3
HASIL DAN PEMBAHASAN
Berdasarkan
proyek Wokwi berjudul Smart Parking Gate – JER KINGDOM IoT, sistem yang dibuat
merupakan simulasi tempat parkir pintar (Smart Parking System) menggunakan
ESP32, sensor ultrasonik HC-SR04, LCD I2C, LED indikator, buzzer, dan motor
servo.
Sistem ini
bekerja dengan mendeteksi jarak objek menggunakan sensor ultrasonik. Hasil
pengukuran digunakan untuk menentukan kondisi tempat parkir, mengatur palang
parkir secara otomatis, memberikan peringatan melalui LED dan buzzer, serta
mengirimkan informasi kondisi parkir ke broker MQTT HiveMQ.
3.1 Alat dan Bahan
Dalam
pembuatan simulasi Smart Parking Gate, diperlukan beberapa komponen perangkat
keras virtual dan perangkat lunak yang tersedia pada platform Wokwi.
3.1.1 Alat
dan Komponen
|
No. |
Komponen |
Jumlah |
Fungsi |
|
1 |
ESP32 DevKit V1 |
1 |
Mikrokontroler utama untuk mengendalikan sistem |
|
2 |
Sensor Ultrasonik HC-SR04 |
1 |
Mengukur jarak kendaraan atau objek |
|
3 |
LCD I2C 16x2 |
1 |
Menampilkan jarak dan status parkir |
|
4 |
LED Hijau |
1 |
Indikator slot parkir kosong |
|
5 |
LED Kuning |
1 |
Indikator parkir terisi dengan posisi sesuai |
|
6 |
LED Merah |
1 |
Indikator parkir melewati batas |
|
7 |
Buzzer |
1 |
Memberikan peringatan suara |
|
8 |
Servo Motor |
1 |
Menggerakkan palang parkir |
|
9 |
Kabel Jumper |
Secukupnya |
Menghubungkan antarkomponen |
3.1.2 Perangkat lunak dan layanan
- Wokwi Simulator, digunakan
untuk merancang rangkaian elektronik dan menjalankan simulasi
mikrokontroler secara virtual.
- Arduino IDE / Arduino
Framework, digunakan sebagai lingkungan pemrograman ESP32.
- Library WiFi.h, digunakan untuk
menghubungkan ESP32 dengan jaringan Wi-Fi.
- Library PubSubClient.h,
digunakan untuk melakukan komunikasi menggunakan protokol MQTT.
- Library LiquidCrystal_I2C.h,
digunakan untuk mengendalikan LCD I2C.
- Library ESP32Servo.h, digunakan
untuk mengatur pergerakan motor servo.
- Broker HiveMQ, digunakan
sebagai perantara pengiriman data menggunakan protokol MQTT.
- Wi-Fi
Wokwi-GUEST, digunakan sebagai jaringan internet virtual dalam simulasi.
3.2 Langkah - Langkah
Berikut merupakan tahapan pembuatan dan pelaksanaan simulasi
Smart Parking Gate menggunakan platform Wokwi.
1. Membuka proyek Wokwi
Membuka proyek melalui tautan Wokwi yang telah disediakan.
Setelah proyek terbuka, pengguna dapat melihat rangkaian komponen elektronik
dan kode program yang digunakan dalam simulasi.
2. Mengidentifikasi komponen
Mengidentifikasi seluruh komponen yang digunakan, seperti
ESP32, sensor ultrasonik HC-SR04, LCD I2C, tiga LED indikator, buzzer, dan
motor servo. Setiap komponen memiliki fungsi masing-masing dalam mendukung
proses kerja sistem parkir otomatis.
3. Memahami konfigurasi pin
Memastikan setiap komponen telah terhubung dengan pin GPIO
ESP32 sesuai konfigurasi program. Berikut konfigurasi pin yang digunakan:
|
Komponen |
Pin ESP32 |
|
HC-SR04
TRIG |
GPIO
5 |
|
HC-SR04
ECHO |
GPIO
18 |
|
LED
Hijau |
GPIO
25 |
|
LED
Kuning |
GPIO
33 |
|
LED
Merah |
GPIO
32 |
|
Buzzer |
GPIO
26 |
|
Servo
Motor |
GPIO
27 |
|
LCD
I2C SDA/SCL |
Jalur
I2C ESP32 |
4. Memasukkan dan memeriksa kode program
Memastikan kode program telah menggunakan library yang
dibutuhkan, melakukan konfigurasi pin, menentukan batas jarak parkir, serta
mengatur koneksi Wi-Fi dan MQTT.
5. Menjalankan simulasi
Menekan tombol Start Simulation pada Wokwi untuk menjalankan
program ESP32. Setelah simulasi dimulai, sistem akan melakukan inisialisasi
komponen, menghubungkan ESP32 ke jaringan Wi-Fi Wokwi-GUEST, kemudian mencoba
menghubungkan perangkat ke broker MQTT HiveMQ.
6. Melakukan pengujian sensor ultrasonik
Mengubah jarak objek pada sensor HC-SR04 melalui pengaturan
interaktif Wokwi. Pengujian dilakukan dengan tiga kondisi jarak:
● Jarak lebih dari 100 cm untuk
menunjukkan slot parkir kosong.
● Jarak antara 20–100 cm untuk
menunjukkan kendaraan parkir dengan posisi yang sesuai.
● Jarak kurang dari 20 cm untuk
menunjukkan kendaraan melewati batas parkir.
7. Mengamati respons sistem
Mengamati perubahan indikator LED, bunyi buzzer, tampilan
LCD, serta pergerakan motor servo berdasarkan jarak yang terdeteksi oleh sensor
ultrasonik.
8. Memeriksa komunikasi MQTT
Memastikan ESP32 berhasil terhubung ke broker HiveMQ dan
mengirimkan data kondisi parkir dalam format JSON melalui topik MQTT yang telah
ditentukan.
3.3 Hasil Simulasi
Berdasarkan kode program pada proyek Wokwi, sistem Smart
Parking Gate memiliki tiga kondisi utama yang ditentukan berdasarkan hasil
pengukuran jarak sensor ultrasonik HC-SR04.
A. Kondisi pertama: Slot parkir kosong
Jarak lebih dari 100 cm
Ketika sensor ultrasonik mendeteksi objek dengan jarak lebih
dari 100 cm, sistem akan mengidentifikasi bahwa slot parkir dalam keadaan
kosong. ESP32 kemudian mengaktifkan LED hijau, mematikan LED kuning dan merah,
serta memastikan buzzer tidak berbunyi.
Pada kondisi ini, motor servo akan bergerak ke posisi 90
derajat sehingga palang parkir berada dalam keadaan terbuka. LCD menampilkan
informasi jarak dan status SLOT: KOSONG.

Gambar
3.1. Hasil simulasi ketika slot parkir dalam keadaan kosong.
B. Kondisi kedua: Kendaraan parkir dengan posisi sesuai
Jarak 20–100 cm
Ketika sensor mendeteksi objek dengan jarak antara 20 sampai
100 cm, sistem akan mengidentifikasi bahwa slot parkir sedang terisi dengan
posisi kendaraan yang masih sesuai dengan batas yang telah ditentukan.
ESP32 akan mengaktifkan LED kuning, sedangkan LED hijau dan
merah dimatikan. Buzzer juga tidak diaktifkan. Motor servo bergerak ke posisi 0
derajat sehingga palang parkir berada dalam keadaan tertutup.
LCD menampilkan informasi jarak dan status PARKIR: RAPI.

Gambar
3.2. Hasil simulasi ketika kendaraan parkir dengan posisi sesuai.
C. Kondisi ketiga: Kendaraan melewati batas parkir
Jarak kurang dari 20 cm
Ketika sensor ultrasonik mendeteksi objek dengan jarak
kurang dari 20 cm, sistem akan mengidentifikasi bahwa kendaraan telah melewati
batas parkir yang ditentukan.
Pada kondisi ini, ESP32 akan mengaktifkan LED merah dan
buzzer sebagai tanda peringatan. LED hijau dan kuning dimatikan, sedangkan
motor servo tetap berada pada posisi 0 derajat atau palang tertutup.
LCD menampilkan informasi jarak dan pesan RAPIKAN PARKIR!
untuk memberikan peringatan kepada pengguna agar memperbaiki posisi kendaraan.

Gambar
3.3. Hasil simulasi ketika kendaraan melewati batas parkir.
D.
Hasil komunikasi MQTT
Selain mengendalikan komponen secara langsung, sistem juga
menerapkan protokol MQTT untuk mengirimkan informasi kondisi parkir ke broker
HiveMQ.
Data dikirimkan setiap satu detik dalam format JSON melalui
topik sic8/jerkingdom/parking/data. Informasi yang dikirimkan meliputi jarak
objek, status parkir, posisi servo, dan kondisi buzzer.
Berikut contoh struktur data yang dikirimkan:
|
{ "distance": 150.0, "status":
"AVAILABLE", "gate": 90, "buzzer":
"OFF" } |
E.
Tabel hasil pengujian simulasi
|
No. |
Jarak
Sensor |
Status
Parkir |
LED Aktif |
Buzzer |
Servo |
|
1 |
150 cm |
Kosong |
Hijau |
OFF |
90° |
|
2 |
50 cm |
Parkir Rapi |
Kuning |
OFF |
0° |
|
3 |
10 cm |
Melewati Batas |
Merah |
ON |
0° |
Berdasarkan hasil pengujian berdasarkan logika program,
dapat diketahui bahwa sistem mampu membedakan tiga kondisi parkir berdasarkan
jarak yang dideteksi sensor ultrasonik. Setiap kondisi menghasilkan respons
yang berbeda pada LED, buzzer, LCD, dan motor servo. Selain itu, sistem juga
dirancang untuk mengirimkan data hasil pengukuran ke broker MQTT sehingga
informasi parkir dapat dipantau melalui perangkat lain yang berlangganan pada
topik tersebut.
3.4
Kode Program
|
#include <WiFi.h> #include <PubSubClient.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <ESP32Servo.h> // --- 1. Konfigurasi Wi-Fi Simulasi Wokwi --- const char* WIFI_SSID = "Wokwi-GUEST"; const char* WIFI_PASSWORD = ""; // --- 2. Konfigurasi Broker MQTT HiveMQ --- const char* MQTT_BROKER = "broker.hivemq.com"; const int MQTT_PORT = 1883; const char* MQTT_TOPIC =
"sic8/jerkingdom/parking/data"; // --- 3. Konfigurasi Pin GPIO ESP32 --- const int TRIG_PIN = 5; const int ECHO_PIN = 18; const int LED_GREEN = 25; const int LED_YELLOW = 33; const int LED_RED = 32; const int BUZZER_PIN = 26; const int SERVO_PIN = 27; // --- 4. Batas Jarak Parkir (Threshold) & Timer --- const float EMPTY_THRESHOLD = 100.0; // > 100 cm: Slot Kosong const float VIOLATION_THRESHOLD = 20.0; // < 20 cm : Parkir Lewat Batas unsigned long lastPublishTime = 0; const unsigned long PUBLISH_INTERVAL = 1000; // Interval 1
detik (1000 ms) // --- 5. Pembuatan Objek Perangkat & Komunikasi --- WiFiClient espClient; PubSubClient mqtt(espClient); LiquidCrystal_I2C lcd(0x27, 16, 2); Servo gateServo; // --- Fungsi Menghubungkan ESP32 ke Wi-Fi --- void connectWiFi() {
Serial.println("Menghubungkan ke WiFi..."); WiFi.mode(WIFI_STA); WiFi.begin(WIFI_SSID,
WIFI_PASSWORD); int attempts = 0; while (WiFi.status()
!= WL_CONNECTED && attempts < 30) { delay(500);
Serial.print("."); attempts++; } if (WiFi.status() ==
WL_CONNECTED) {
Serial.println("\nWiFi Terhubung!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP()); } else {
Serial.println("\nKoneksi WiFi Gagal."); } } // --- Fungsi Menghubungkan ESP32 ke Broker MQTT HiveMQ --- bool connectMQTT() { if (mqtt.connected())
{ return true; }
Serial.println("Menghubungkan ke MQTT Broker HiveMQ..."); String clientId =
"ESP32-JERKINGDOM-"; clientId +=
String((uint32_t)ESP.getEfuseMac(), HEX); if
(mqtt.connect(clientId.c_str())) {
Serial.println("MQTT Terhubung!");
Serial.print("Topic: ");
Serial.println(MQTT_TOPIC); return true; }
Serial.print("Koneksi MQTT Gagal. Kode State: ");
Serial.println(mqtt.state()); return false; } // --- Fungsi Membaca Jarak dari Sensor HC-SR04 --- float readDistance() { digitalWrite(TRIG_PIN,
LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN,
HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN,
LOW); unsigned long duration
= pulseIn(ECHO_PIN, HIGH, 30000); if (duration == 0) { return -1.0; } float distance =
duration * 0.0343 / 2.0; return distance; } // --- Fungsi Mengatur LED, Buzzer, Servo, dan LCD Berdasarkan
Jarak --- void updateParkingSystem(float distance) { lcd.setCursor(0, 0); if (distance < 0) {
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, LOW);
digitalWrite(BUZZER_PIN, LOW);
lcd.print("Jarak: Error
"); lcd.setCursor(0, 1);
lcd.print("SENSOR ERROR
");
Serial.println("STATUS: SENSOR ERROR"); return; } lcd.print("Jarak:
" + String(distance, 1) + " cm
"); lcd.setCursor(0, 1); if (distance >
EMPTY_THRESHOLD) { // Kondisi 1: Slot
Parkir Kosong (> 100 cm)
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, LOW);
digitalWrite(BUZZER_PIN, LOW); gateServo.write(90);
// Palang gerbang terbuka (90 derajat)
lcd.print("SLOT: KOSONG
");
Serial.println("STATUS: AVAILABLE (Slot Kosong)"); } else if (distance
>= VIOLATION_THRESHOLD && distance <= EMPTY_THRESHOLD) { // Kondisi 2: Parkir
Terisi Rapi (20 - 100 cm)
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, HIGH);
digitalWrite(LED_RED, LOW);
digitalWrite(BUZZER_PIN, LOW);
gateServo.write(0); // Palang
gerbang tertutup (0 derajat)
lcd.print("PARKIR: RAPI
");
Serial.println("STATUS: OCCUPIED (Parkir Rapi)"); } else { // Kondisi 3: Parkir
Lewat Batas (< 20 cm)
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, HIGH);
digitalWrite(BUZZER_PIN, HIGH); // Alarm teguran aktif
gateServo.write(0); // Palang
gerbang tertutup (0 derajat)
lcd.print("RAPIKAN PARKIR! ");
Serial.println("STATUS: VIOLATION (Lewat Batas!)"); } } // --- Fungsi Mengirim Data JSON ke MQTT HiveMQ --- void publishMQTT(float distance) { if (distance < 0) {
Serial.println("Jarak tidak valid. Pengiriman MQTT
dilewati."); return; } if (!mqtt.connected())
{ if (!connectMQTT())
{ return; } } const char* status =
"OCCUPIED"; int gateAngle = 0; const char*
buzzerState = "OFF"; if (distance >
EMPTY_THRESHOLD) { status =
"AVAILABLE"; gateAngle = 90; buzzerState =
"OFF"; } else if (distance
< VIOLATION_THRESHOLD) { status =
"VIOLATION"; gateAngle = 0; buzzerState =
"ON"; } char payload[140]; snprintf( payload, sizeof(payload),
"{\"distance\":%.1f,\"status\":\"%s\",\"gate\":%d,\"buzzer\":\"%s\"}", distance, status, gateAngle, buzzerState ); bool published =
mqtt.publish(MQTT_TOPIC, payload);
Serial.print("MQTT Payload: ");
Serial.println(payload); if (published) {
Serial.println("Publish MQTT Berhasil.\n"); } else {
Serial.println("Publish MQTT Gagal.\n"); } } void setup() { Serial.begin(115200); delay(1000); pinMode(TRIG_PIN,
OUTPUT); pinMode(ECHO_PIN,
INPUT); pinMode(LED_GREEN,
OUTPUT); pinMode(LED_YELLOW,
OUTPUT); pinMode(LED_RED,
OUTPUT); pinMode(BUZZER_PIN,
OUTPUT); digitalWrite(TRIG_PIN,
LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, LOW); digitalWrite(LED_RED,
LOW);
digitalWrite(BUZZER_PIN, LOW);
gateServo.attach(SERVO_PIN, 500, 2400); gateServo.write(90); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("JER
KINGDOM IoT"); lcd.setCursor(0, 1);
lcd.print("Menyiapkan WiFi"); connectWiFi();
mqtt.setServer(MQTT_BROKER, MQTT_PORT); mqtt.setKeepAlive(60);
mqtt.setSocketTimeout(5); if (WiFi.status() ==
WL_CONNECTED) { connectMQTT(); } } void loop() { if (WiFi.status() !=
WL_CONNECTED) {
Serial.println("WiFi terputus. Menyambung ulang..."); connectWiFi(); delay(500); return; } if (!mqtt.connected())
{ connectMQTT(); } mqtt.loop(); unsigned long now =
millis(); if (now -
lastPublishTime >= PUBLISH_INTERVAL) { lastPublishTime =
now; float distance =
readDistance();
updateParkingSystem(distance);
publishMQTT(distance); } } |
BAB 4
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Berdasarkan praktikum
pembuatan simulasi Smart Parking Gate menggunakan platform Wokwi, dapat diambil
beberapa kesimpulan sebagai berikut:
- Sistem Smart Parking Gate berhasil dirancang menggunakan ESP32
sebagai mikrokontroler utama dengan sensor ultrasonik HC-SR04 untuk
mendeteksi jarak kendaraan.
- Sensor ultrasonik mampu mendeteksi tiga kondisi parkir, yaitu slot
parkir kosong, kendaraan parkir dengan posisi sesuai, dan kendaraan yang
melewati batas parkir.
- LED indikator, buzzer, LCD I2C, dan motor servo dapat bekerja
secara otomatis sesuai dengan kondisi jarak yang terdeteksi oleh sensor.
- Penerapan protokol MQTT dengan broker HiveMQ memungkinkan sistem
mengirimkan informasi kondisi parkir melalui jaringan Wi-Fi dalam format
JSON.
- Praktikum ini memberikan pemahaman mengenai
penerapan konsep Internet of Things (IoT), penggunaan sensor dan aktuator,
serta komunikasi data dalam membangun sistem parkir otomatis.
4.2 Saran
Berdasarkan hasil praktikum yang telah dilakukan, terdapat
beberapa saran untuk pengembangan sistem Smart Parking Gate agar dapat bekerja
lebih optimal, yaitu:
- Menggunakan perangkat keras
secara langsung agar sistem dapat diuji dan diterapkan pada kondisi parkir
yang sebenarnya.
- Meningkatkan akurasi pembacaan
sensor ultrasonik agar pendeteksian jarak kendaraan menjadi lebih stabil
dan tepat.
- Menambahkan beberapa sensor
ultrasonik agar sistem dapat memantau lebih dari satu slot parkir secara
bersamaan.
- Mengembangkan dashboard
berbasis web atau aplikasi mobile untuk memudahkan pengguna dalam memantau
ketersediaan tempat parkir secara real-time.
- Meningkatkan
keamanan komunikasi MQTT dengan menambahkan autentikasi dan enkripsi data
agar informasi yang dikirimkan lebih terlindungi.
DAFTAR PUSTAKA
Amazon Web Services. (n.d.). Apa itu MQTT? Penjelasan tentang protokol MQTT. https://aws.amazon.com/id/what-is/mqtt/
Aris Prastyo, E. (2022, 31 Oktober). Pengertian dan cara kerja sensor ultrasonik HC-SR04. Arduino Indonesia. https://www.arduinoindonesia.id/2022/10/pengertian-dan-cara-kerja-sensor-ultrasonik-HC-SR04.html
Kho, D. (n.d.). Pengertian LCD (Liquid Crystal Display) dan prinsip kerjanya. Teknik Elektronika. https://teknikelektronika.com/pengertian-lcd-liquid-crystal-display-prinsip-kerja-lcd/
Maulana, K. Y. (2022, 30 Desember). Apa itu ESP32, salah satu modul Wi-Fi populer. Anak Teknik. https://www.anakteknik.co.id/krysnayudhamaulana/articles/apa-itu-esp32-salah-satu-modul-wi-fi-poppuler
Sari, R. P. (2024, 24 Januari). Internet of Things (IoT): Pengertian, cara kerja dan contohnya. Cloud Computing Indonesia. https://www.cloudcomputing.id/pengetahuan-dasar/iot-pengertian-contohnya
Wokwi.
(n.d.). Smart parking gate [Simulasi proyek ESP32]. https://wokwi.com/projects/478839737653996545
Tidak ada komentar:
Posting Komentar