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
- Bagaimana mengonfigurasi perangkat pada
ThingsBoard Cloud dan menghubungkan ESP32 menggunakan protokol MQTT?
- Bagaimana ESP32 membaca data analog dari
sensor LDR dan mengendalikan status LED (lampu jalan) secara otomatis?
- Bagaimana mendesain payload JSON dan
mengirimkan data telemetri dari Wokwi ke ThingsBoard Cloud?
- Bagaimana memastikan data terverifikasi dan
masuk secara real-time pada tab Latest Telemetry
ThingsBoard?
1.3
Tujuan Praktikum
- Memahami prosedur pendaftaran perangkat dan
pembuatan kredensial MQTT Basic pada ThingsBoard Cloud.
- Melakukan pengujian awal pengiriman data
telemetri MQTT berformat JSON dari PC/MQTTX ke server ThingsBoard.
- Merancang dan mensimulasikan rangkaian
ESP32, LDR, dan LED pada platform Wokwi.
- Mengimplementasikan program C++ berbasis
PubSubClient untuk mengontrol LED dan mengirimkan data telemetri berkala.
- 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
- 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
- Integrasi ESP32 dan platform ThingsBoard
Cloud menggunakan protokol MQTT dengan autentikasi MQTT Basic telah
berhasil dilaksanakan.
- ESP32 mampu membaca data sensor LDR secara
presisi dan mengendalikan LED secara otomatis berdasarkan kondisi
pencahayaan.
- 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
- Perlu dibuatkan Dashboard interaktif pada
ThingsBoard agar monitoring status penerangan jalan umum menjadi lebih
informatif.
- 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