Minggu, 11 Oktober 2026

Prototipe Smart Street Lighting (Penerangan Jalan Pintar) Berbasis ESP32 dan Sensor Cahaya LDR

 

LAPORAN PRAKTIKUM

Prototipe Smart Street Lighting (Penerangan Jalan Pintar) Berbasis ESP32 dan Sensor Cahaya LDR

 

 

 

Disusun oleh:

Muhammad Naufal Zakcky Dzikrillah    24051204106

Mahdi Ghani Afriza                              24051204119

Muhammad Risqi Gemilang                  24051204181

Gerizt Geovany Saragih Sumbayak        24051204117

 

 

 

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem penerangan jalan pintar (Smart Street Lighting) merupakan salah satu implementasi Internet of Things (IoT) untuk meningkatkan efisiensi energi dan otomatisasi infrastruktur publik. Pada praktikum ini, ESP32 digunakan sebagai mikrokontroler utama yang mengendalikan lampu jalan berbasis pembacaan tingkat intensitas cahaya dari sensor LDR.

Selain melakukan kontrol otomatis secara lokal, sistem ini dihubungkan ke platform IoT cloud siap pakai, yaitu ThingsBoard Cloud, menggunakan protokol komunikasi MQTT. Data telemetri seperti intensitas cahaya dan status lampu dikirimkan secara real-time dari simulator Wokwi ke server cloud. Melalui integrasi ini, pemantauan dan pengelolaan perangkat dapat dilakukan secara terpusat melalui antarmuka web.

1.2 Rumusan Masalah

  1. Bagaimana mengonfigurasi perangkat pada ThingsBoard Cloud dan menghubungkan ESP32 menggunakan protokol MQTT?
  2. Bagaimana ESP32 membaca data analog dari sensor LDR dan mengendalikan status LED (lampu jalan) secara otomatis?
  3. Bagaimana mendesain payload JSON dan mengirimkan data telemetri dari Wokwi ke ThingsBoard Cloud?
  4. Bagaimana memastikan data terverifikasi dan masuk secara real-time pada tab Latest Telemetry ThingsBoard?

1.3 Tujuan Praktikum

  1. Memahami prosedur pendaftaran perangkat dan pembuatan kredensial MQTT Basic pada ThingsBoard Cloud.
  2. Melakukan pengujian awal pengiriman data telemetri MQTT berformat JSON dari PC/MQTTX ke server ThingsBoard.
  3. Merancang dan mensimulasikan rangkaian ESP32, LDR, dan LED pada platform Wokwi.
  4. Mengimplementasikan program C++ berbasis PubSubClient untuk mengontrol LED dan mengirimkan data telemetri berkala.
  5. Memverifikasi pembaruan data secara real-time pada ThingsBoard Cloud.

1.4 Ruang Lingkup

Praktikum dibatasi pada simulasi perangkat keras menggunakan Wokwi dengan komponen ESP32 DevKit, sensor LDR, LED, dan resistor. Platform IoT Cloud yang digunakan adalah ThingsBoard Cloud (Community/Maker Trial). Pengujian difokuskan pada pembacaan nilai LDR, kondisi aktivasi LED saat nilai LDR > 2000, serta pengiriman data telemetri berkala tiap 3 detik.

 


BAB II

DASAR TEORI DAN KOMPONEN

2.1 ESP32

ESP32 adalah mikrokontroler berkinerja tinggi yang dilengkapi dengan modul Wi-Fi dan Bluetooth terintegrasi. ESP32 mendukung berbagai komunikasi serial dan input/output analog-ke-digital (ADC). Pada praktikum ini, Pin Analog 34 digunakan untuk membaca sinyal dari LDR dan Pin Digital 2 digunakan untuk mengendalikan LED.

2.2 Sensor Cahaya LDR (Light Dependent Resistor)

Sensor LDR adalah komponen elektronik yang resistansinya berubah sesuai dengan intensitas cahaya yang diterimanya. Pada kondisi gelap, nilai resistansi LDR tinggi sehingga pembacaan nilai ADC pada ESP32 meningkat. Ambang batas (threshold) ditetapkan pada nilai ADC 2000 untuk menentukan kondisi gelap dan menyalakan lampu jalan.

2.3 ThingsBoard Cloud dan Protokol MQTT

ThingsBoard adalah platform IoT open-source yang menyediakan fitur pengumpulan data, visualisasi, pemrosesan, dan manajemen perangkat. Komunikasi antara ESP32 dan ThingsBoard memanfaatkan protokol MQTT (Message Queuing Telemetry Transport) pada port 1883 dengan topik standar v1/devices/me/telemetry. Autentikasi dilakukan menggunakan metode MQTT Basic (Client ID, Username, dan Password).

2.4 LED (Light Emitting Diode)

LED bertindak sebagai aktuator visual yang mensimulasikan lampu penerangan jalan umum. LED terhubung ke Pin Digital 2 ESP32 dan dinyalakan (HIGH) ketika kondisi lingkungan terdeteksi gelap (nilai LDR > 2000).

2.5 Alat dan Bahan

Tabel 2.1 Komponen pada proyek Wokwi

Komponen

Jumlah

Fungsi

ESP32 DevKit

1

Mikrokontroler utama pemroses data dan klien MQTT

Sensor LDR

1

Membaca tingkat intensitas cahaya lingkungan

LED Merah

1

Aktuator visual lampu jalan pintar

Resistor 220 Ω

1

Pembatas arus listrik untuk LED

Pustaka PubSubClient

1

Pustaka C++ untuk komunikasi protokol MQTT

Pustaka WiFi.h

1

Pustaka C++ untuk koneksi jaringan Wi-Fi ESP32

 



BAB III

PERANCANGAN DAN HASIL PRAKTIKUM

3.1 Konfigurasi Rangkaian

Tabel 3.1 Hubungan komponen dengan ESP32

Pin Komponen

Pin ESP32

Keterangan

LDR AO (Analog Output)

GPIO 34

Input analog pembacaan tingkat cahaya

LDR VCC & GND

3.3V & GND

Sumber daya sensor

LED Anoda (+)

GPIO 2

Output digital pengendali lampu (melalui resistor)

LED Katoda (-)

GND

Ground bersama

[PLACEHOLDER SCREENSHOT WOKWI – RANGKAIAN LENGKAP ESP32 + LDR + LED]

Gambar 3.1 Rangkaian prototipe Smart Street Lighting pada Wokwi.

3.2 Kode Program C++ (ESP32 Wokwi)

#include <WiFi.h>

#include <PubSubClient.h>

 

#define LDR_PIN 34

#define LED_PIN 2

 

const char* ssid = "Wokwi-GUEST";

const char* password = "";

 

// Konfigurasi ThingsBoard MQTT

const char* mqtt_server = "mqtt.thingsboard.cloud";

const char* mqtt_clid   = "wokwi_kelompok_8_unesa_ssl"; 

const char* mqtt_user   = "user_ssl";

const char* mqtt_pass   = "pass_ssl123";

const char* mqtt_topic  = "v1/devices/me/telemetry";

 

WiFiClient espClient;

PubSubClient client(espClient);

unsigned long lastMsg = 0;

 

void setup_wifi() {

  Serial.print("Connecting to WiFi");

  WiFi.mode(WIFI_STA);

  WiFi.begin(ssid, password, 6);

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("\nWiFi connected");

}

 

void reconnect() {

  while (!client.connected()) {

    Serial.print("Attempting MQTT connection...");

    if (client.connect(mqtt_clid, mqtt_user, mqtt_pass)) {

      Serial.println("Thingsboard is Connected !!");

    } else {

      Serial.print("failed, rc=")

      Serial.print(client.state());

      Serial.println(" try again in 5 seconds");

      delay(5000);

    }

  }

}

 

void setup() {

  Serial.begin(115200);

  pinMode(LDR_PIN, INPUT);

  pinMode(LED_PIN, OUTPUT);

  setup_wifi();

  client.setServer(mqtt_server, 1883);

}

 

void loop() {

  if (!client.connected()) {

    reconnect();

  }

  client.loop();

 

  unsigned long now = millis();

  if (now - lastMsg > 3000) { // Kirim data tiap 3 detik

    lastMsg = now;

 

    int ldrValue = analogRead(LDR_PIN);

    String statusLampu = "MATI";

 

    // Jika kondisi gelap (nilai analog LDR > 2000), lampu menyala

    if (ldrValue > 2000) { 

      digitalWrite(LED_PIN, HIGH);

      statusLampu = "AKTIF";

    } else {

      digitalWrite(LED_PIN, LOW);

      statusLampu = "MATI";

    }

 

    // Format payload JSON

    String payload = "{";

    payload += "\"intensitas_cahaya\":" + String(ldrValue) + ",";

    payload += "\"status_lampu\":\"" + statusLampu + "\"";

    payload += "}";

 

    client.publish(mqtt_topic, payload.c_str());

    Serial.print("Data Terkirim: ");

  Serial.println(payload);

  }

}

 

3.3 Langkah Pelaksanaan

  1. Konfigurasi Device dan Credentials di ThingsBoard Cloud:

a.                Membuat perangkat baru 'Smart_Street_Light' di ThingsBoard Cloud.

b.                Mengatur jenis autentikasi Credentials Type menjadi MQTT Basic.

c.                Mengisikan Client ID (wokwi_kelompok_ssl), User Name (user_ssl), dan Password (pass_ssl123).

d.                Menyimpan konfirmasi perangkat terdaftar (Device Created).

Gambar 3.1 Konfigurasi credentials MQTT Basic pada ThingsBoard Cloud.

Gambar 3.2 Device berhasil terdaftar pada ThingsBoard Cloud.

2.                Pengujian Pengiriman Data Telemetri via MQTTX (PC):

a.                Menghubungkan aplikasi MQTTX ke broker mqtt.thingsboard.cloud port 1883.

b.                Mengirimkan data telemetri JSON {"intensitas_cahaya": 3500, "status_lampu": "AKTIF"} ke topik v1/devices/me/telemetry.

c.                Memverifikasi masuknya data pada tab Latest telemetry ThingsBoard Cloud dengan nilai intensitas_cahaya 3500 dan status_lampu AKTIF.

Gambar 3.3 Pengujian pengiriman data telemetri dari PC menggunakan MQTTX.

Gambar 3.4 Verifikasi data telemetri dari PC pada tab Latest Telemetry ThingsBoard Cloud.

3.                Perancangan Rangkaian dan Instalasi Pustaka di Wokwi:

a.                Membuat proyek baru berbasis ESP32 DevKit pada Wokwi.

b.                Membuka Library Manager dan menginstal pustaka PubSubClient.

c.                Menghubungkan VCC/GND LDR ke 3.3V/GND ESP32 dan AO ke GPIO 34.

d.                Menghubungkan LED Merah ke GPIO 2 melalui resistor 220 ohm ke GND.

Gambar 3.5 Instalasi pustaka PubSubClient pada Library Manager Wokwi.

4.                Implementasi Kode Program C++ (sketch.ino):

a.                Menuliskan kode program C++ dengan pustaka WiFi.h dan PubSubClient.h.

b.                Mengatur kredensial MQTT dan logika pembanding LDR > 2000 untuk menyalakan LED (AKTIF) dan LDR <= 2000 untuk mematikan LED (MATI).

5.                Eksekusi Simulasi dan Pengujian Konektivitas:

a.                Jalankan simulasi di Wokwi dan amati Serial Monitor.

b.                Memastikan koneksi Wi-Fi terhubung dan pesan 'Thingsboard is Connected !!' muncul.

c.                Mengamati log data terkirim berkala setiap 3 detik.

Gambar 3.7 Output Serial Monitor Wokwi mengonfirmasi status Thingsboard is Connected.

6.                Verifikasi Real-Time Telemetri (Pengujian Split Screen):

a.                Melakukan pengujian interaktif dengan menggeser slider LDR ke kondisi gelap (1 lux).

b.                Memverifikasi LED menyala otomatis, log Serial Monitor mencetak data intensitas_cahaya 3906 dan status_lampu AKTIF, serta tab Latest telemetry di ThingsBoard terbarui secara real-time.

Gambar 3.8 Visualisasi pengujian real-time telemetri saat kondisi LDR gelap (Split Screen).

 

3.4 Hasil Pengujian

Tabel 3.2 Skenario dan hasil observasi simulasi Wokwi

Kondisi Cahaya (Lux)

Nilai Analog LDR

Status LED

Payload Telemetri

Status Telemetry ThingsBoard

Terang (1000 lux)

1001 (< 2000)

MATI

{"intensitas_cahaya":1001,"status_lampu":"MATI"}

Terbarui (Real-time)

Gelap (1 lux)

3906 (> 2000)

AKTIF (Menyala)

{"intensitas_cahaya":3906,"status_lampu":"AKTIF"}

Terbarui (Real-time)

3.5 Analisis Hasil

Hasil pengujian menunjukkan bahwa komunikasi MQTT antara Wokwi dan ThingsBoard Cloud berjalan tanpa loss. Ketika nilai analog LDR melebihi batas 2000 (kondisi gelap), ESP32 secara instan menyalakan LED dan mengirimkan JSON dengan key intensitas_cahaya dan status_lampu. Pembaruan data pada antarmuka ThingsBoard berlangsung secara real-time setiap 3 detik.

3.6 Keterbatasan dan Pengembangan

Simulasi saat ini baru mencakup pengiriman data telemetri satu arah (klien ke cloud). Pada implementasi nyata, batas ambang LDR perlu disesuaikan dengan kondisi kalibrasi cahaya riil. Pengembangan lanjutan dapat menambahkan Dashboard visualisasi (Gauge/Chart), Rule Chain untuk Alarm Email, serta RPC Subscriptions untuk kontrol dua arah.

 

 

BAB IV

PENUTUP

4.1 Kesimpulan

  1. Integrasi ESP32 dan platform ThingsBoard Cloud menggunakan protokol MQTT dengan autentikasi MQTT Basic telah berhasil dilaksanakan.
  2. ESP32 mampu membaca data sensor LDR secara presisi dan mengendalikan LED secara otomatis berdasarkan kondisi pencahayaan.
  3. Pengiriman data telemetri berformat JSON ke topik v1/devices/me/telemetry berjalan lancar dan terverifikasi secara real-time pada tab Latest Telemetry ThingsBoard Cloud.

4.2 Saran

  1. Perlu dibuatkan Dashboard interaktif pada ThingsBoard agar monitoring status penerangan jalan umum menjadi lebih informatif.
  2. Disarankan untuk menambahkan fitur kontrol manual (override) via Dashboard menggunakan fitur RPC ThingsBoard.

4.3 Link Proyek Wokwi

https://wokwi.com/projects/477497836162956289 

 


 

DAFTAR PUSTAKA

[1] ThingsBoard, Inc. "ThingsBoard MQTT Device API Reference." Dokumentasi API ThingsBoard Cloud.

[2] Espressif Systems. "ESP32 Analog to Digital Converter (ADC) API." Dokumentasi Resmi Espressif ESP-IDF.

[3] Wokwi. "wokwi-photoresistor-sensor Reference." Dokumentasi sensor LDR pada simulator Wokwi.

[4] Nick O'Leary. "PubSubClient Library for Arduino." Repository Resmi PubSubClient MQTT.

 

Tidak ada komentar:

Posting Komentar