Sabtu, 14 November 2026

IMPLEMENTASI SISTEM SMART PARKING GATE DENGAN MENGGUNAKAN ESP32 PADA WOKWI

 

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:

  1. Bagaimana merancang sistem Smart Parking Gate menggunakan mikrokontroler ESP32 melalui platform simulasi Wokwi?
  2. Bagaimana sensor ultrasonik HC-SR04 digunakan untuk mendeteksi jarak kendaraan dan menentukan kondisi area parkir?
  3. Bagaimana mengintegrasikan servo motor, LED, buzzer, dan LCD I2C sebagai perangkat keluaran dalam sistem parkir otomatis?
  4. Bagaimana menerapkan komunikasi MQTT menggunakan ESP32 dan MQTT Broker HiveMQ untuk mengirimkan data kondisi parkir?
  5. 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:

  1. Memahami proses perancangan sistem Smart Parking Gate berbasis ESP32 menggunakan platform Wokwi.
  2. Mengetahui cara kerja sensor ultrasonik HC-SR04 dalam mengukur jarak objek atau kendaraan.
  3. Memahami penerapan servo motor sebagai penggerak palang parkir otomatis.
  4. Mengetahui fungsi LED, buzzer, dan LCD I2C sebagai perangkat indikator dan informasi pada sistem parkir.
  5. Memahami penerapan komunikasi MQTT untuk mengirimkan data dari ESP32 menuju MQTT Broker HiveMQ.
  6. 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

Komponen yang digunakan dalam proyek Smart Parking Gate terdiri dari perangkat keras virtual dan perangkat pendukung komunikasi jaringan. 


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

  1. Wokwi Simulator, digunakan untuk merancang rangkaian elektronik dan menjalankan simulasi mikrokontroler secara virtual.
  2. Arduino IDE / Arduino Framework, digunakan sebagai lingkungan pemrograman ESP32.
  3. Library WiFi.h, digunakan untuk menghubungkan ESP32 dengan jaringan Wi-Fi.
  4. Library PubSubClient.h, digunakan untuk melakukan komunikasi menggunakan protokol MQTT.
  5. Library LiquidCrystal_I2C.h, digunakan untuk mengendalikan LCD I2C.
  6. Library ESP32Servo.h, digunakan untuk mengatur pergerakan motor servo.
  7. Broker HiveMQ, digunakan sebagai perantara pengiriman data menggunakan protokol MQTT.
  8. 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:

  1. Sistem Smart Parking Gate berhasil dirancang menggunakan ESP32 sebagai mikrokontroler utama dengan sensor ultrasonik HC-SR04 untuk mendeteksi jarak kendaraan.
  2. Sensor ultrasonik mampu mendeteksi tiga kondisi parkir, yaitu slot parkir kosong, kendaraan parkir dengan posisi sesuai, dan kendaraan yang melewati batas parkir.
  3. LED indikator, buzzer, LCD I2C, dan motor servo dapat bekerja secara otomatis sesuai dengan kondisi jarak yang terdeteksi oleh sensor.
  4. Penerapan protokol MQTT dengan broker HiveMQ memungkinkan sistem mengirimkan informasi kondisi parkir melalui jaringan Wi-Fi dalam format JSON.
  5. 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:

  1. Menggunakan perangkat keras secara langsung agar sistem dapat diuji dan diterapkan pada kondisi parkir yang sebenarnya.
  2. Meningkatkan akurasi pembacaan sensor ultrasonik agar pendeteksian jarak kendaraan menjadi lebih stabil dan tepat.
  3. Menambahkan beberapa sensor ultrasonik agar sistem dapat memantau lebih dari satu slot parkir secara bersamaan.
  4. Mengembangkan dashboard berbasis web atau aplikasi mobile untuk memudahkan pengguna dalam memantau ketersediaan tempat parkir secara real-time.
  5. 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