Disusun Oleh:
| Amira Najihah Fadri Putri | (24051204002) |
| Mareta Surya Tananjaya | (24051204006) |
| Novasya Aulia Putri Hidayat | (24051204028) |
| Sulthania Auliya Afandi | (24051204034) |
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kebocoran gas, seperti LPG, dan asap hasil kebakaran merupakan ancaman serius bagi keselamatan di rumah, laboratorium, maupun area industri. Gas tersebut sering tidak terlihat dan sulit dikenali tanpa alat bantu, sehingga diperlukan sistem yang mampu mendeteksi dan melaporkan kondisi udara secara otomatis dan terus-menerus.
Internet of Things (IoT) memungkinkan data sensor dikirim melalui jaringan internet sehingga kondisi suatu area dapat dipantau dari jarak jauh. Sensor gas MQ-2 menghasilkan keluaran tegangan analog yang berubah sesuai tingkat kepekatan gas atau asap di sekitarnya, kemudian dibaca oleh mikrokontroler ESP32. Agar data tersebut mudah dipantau, diperlukan platform yang dapat menampilkannya secara visual. ThingsBoard Cloud menyediakan dashboard dengan berbagai widget, seperti chart, gauge, dan alarm, serta menerima data dari perangkat melalui protokol MQTT.
Laporan ini disusun untuk menjelaskan gambaran tampilan dashboard ThingsBoard dan rangkaian pada simulator Wokwi, serta langkah-langkah pengaturannya dari awal, mulai dari pembuatan device, pengambilan Access Token, hingga desain dashboard, sehingga data kadar gas dari simulator Wokwi dapat masuk dan ditampilkan pada ThingsBoard secara real-time.
1.2 Rumusan Masalah
1.Bagaimana merancang sistem pendeteksi kebocoran gas atau asap berbasis ESP32 pada simulator Wokwi dengan potensiometer sebagai pengganti sensor MQ-2?
2.Bagaimana data pembacaan sensor dikirim ke ThingsBoard melalui protokol MQTT?
3.Bagaimana langkah-langkah membuat device, mengambil Access Token, dan mendesain dashboard pada ThingsBoard Cloud?
1.3 Tujuan Laporan
1.Menjelaskan rancangan rangkaian dan cara kerja sistem deteksi gas pada Wokwi yang mengklasifikasikan kadar gas menjadi Aman, Sedang, dan Tinggi.
2.Menjelaskan alur pengiriman data telemetri dari ESP32 ke ThingsBoard menggunakan MQTT dengan format JSON.
3.Menyusun langkah-langkah pengaturan ThingsBoard Cloud secara berurutan, meliputi pembuatan device, pengambilan Access Token, dan desain dashboard.
1.4 Manfaat Penulisan
1.Memberikan panduan praktis pengaturan ThingsBoard Cloud bagi pembaca yang baru mengenal platform IoT.
2.Membantu memahami alur pengiriman data sensor dari simulator ke dashboard sebelum tahap implementasi pada perangkat fisik.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
•ESP32: Mikrokontroler dengan konektivitas Wi-Fi yang memiliki ADC 12-bit, sehingga pembacaan sensor analog menghasilkan nilai dari 0 sampai 4095.
•Sensor Gas MQ-2: Sensor yang dapat mendeteksi LPG, asap, dan gas mudah terbakar lainnya. Sensor ini menghasilkan keluaran analog yang naik seiring meningkatnya kepekatan gas.
•Potensiometer: Resistor variabel yang menghasilkan tegangan analog sesuai posisi slider, digunakan pada simulasi untuk menggantikan keluaran sensor MQ-2.
•MQTT: Protokol komunikasi ringan berbasis publish/subscribe yang banyak dipakai pada IoT untuk mengirim data dari perangkat ke server.
•ThingsBoard Cloud: Platform IoT berbasis cloud yang berfungsi sebagai broker MQTT sekaligus pusat dashboard untuk visualisasi dan pemantauan data perangkat.
•Access Token: Kunci autentikasi unik milik setiap device di ThingsBoard yang digunakan sebagai username saat ESP32 terhubung melalui MQTT.
•Telemetri: Data deret waktu yang dikirim perangkat ke ThingsBoard melalui topik v1/devices/me/telemetry, dalam proyek ini berupa kadar gas dan status_udara.
•Wokwi: Simulator daring untuk mikrokontroler seperti ESP32 yang memungkinkan rangkaian dan program diuji tanpa perangkat fisik.
2.2 Komponen
| No | Nama Komponen | Fungsi dalam Sistem |
|---|---|---|
| 1. | ESP32 (Wokwi) | Mikrokontroler pemroses data dan pengirim data ke ThingsBoard melalui Wi-Fi |
| 2. | Potensiometer slider (pengganti sensor MQ-2) | Menghasilkan nilai analog sebagai simulasi kepekatan gas atau asap |
| 3. | LED hijau, kuning, dan merah | Indikator lokal kondisi udara: Aman, Sedang, dan Tinggi |
| 4. | Device ThingsBoard | Representasi perangkat pada ThingsBoard yang menerima data telemetri |
| 5. | Widget Chart | Menampilkan grafik riwayat perubahan kadar gas |
| 6. | Widget Gauge | Menampilkan nilai kadar gas terbaru secara real-time |
| 7. | Alarm | Memberi peringatan jika kadar gas melebihi batas normal |
| 8. | Access Token | Kunci akses untuk menghubungkan Wokwi dengan ThingsBoard |
BAB III
PEMBAHASAN
3.1 Penjelasan Pengaturan ThingsBoard Cloud
3.1.1 Gambaran Bentuk Web ThingsBoard (Dashboard)
Tampilan dashboard pada ThingsBoard Cloud dapat didesain sesuai kebutuhan menggunakan widget yang tersedia. Untuk proyek pemantauan gas dan asap, bentuk yang paling sesuai adalah sebagai berikut:


•Widget Latest Telemetry / Gauge: menampilkan nilai kadar gas dan status udara terbaru secara real-time (misalnya dari 0 sampai 4095).
•Widget Chart (Timeseries Line Chart): grafik garis yang bergerak naik-turun untuk memperlihatkan riwayat perubahan kadar gas dari waktu ke waktu.
•Alarm Widget: menampilkan peringatan ketika kadar gas melebihi batas normal.
•Seluruh widget dihubungkan ke satu sumber data yang sama, yaitu device ThingsBoard dengan key telemetri kadar_gas.
3.1.2 Gambaran Bentukan Web Wokwi
Tampilan pada Wokwi membaca nilai analog dari potensiometer sebagai simulasi sensor gas MQ-2, menyalakan LED sesuai tingkat kadar gas, lalu mengirimkan datanya ke ThingsBoard Cloud agar bisa dipantau secara real-time melalui dashboard IoT.

•Menghubungkan ESP32 ke Wi-Fi virtual bawaan Wokwi (SSID Wokwi-GUEST).
•Menggunakan ThingsBoard Cloud (thingsboard.cloud) sebagai broker MQTT dan penampil data sensor.
•Potensiometer pada GPIO 34 dipakai sebagai pengganti sensor MQ-2 untuk membaca kepekatan gas.
•Tiga LED, yaitu hijau (GPIO 25), kuning (GPIO 26), dan merah (GPIO 27), menjadi indikator lokal kondisi udara.
Cara kerja sistem secara berurutan adalah sebagai berikut:
1.Inisialisasi perangkat. ESP32 terhubung ke Wi-Fi virtual dan melakukan autentikasi ke ThingsBoard menggunakan Access Token.
2.Pengambilan data. Sensor membaca nilai analog dari gas atau asap secara berkala.
3.Klasifikasi dan indikator lokal. Nilai pembacaan dibandingkan dengan ambang batas, lalu LED yang sesuai dinyalakan.
4.Pengiriman data (telemetri). Data dikirim ke topik MQTT v1/devices/me/telemetry dalam format JSON.
5.Visualisasi. Pada Latest Telemetry atau dashboard, kenaikan kadar gas terlihat secara langsung, dan dapat dibuat chart atau alarm widget jika kadar gas melebihi batas normal.
Berikut bagian konfigurasi dan fungsi koneksi Wi-Fi pada kodingan sketch.ino di Wokwi:
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "thingsboard.cloud"; // Sesuaikan server Anda
const char* mqtt_token = "112345567890";
WiFiClient espClient;
PubSubClient client(espClient);
const int sensorPin = 34; // Pin potensiometer
const int ledHijau = 25; // Pin LED Hijau (Aman: di bawah 500)
const int ledKuning = 26; // Pin LED Kuning (Sedang: 500 - 2499)
const int ledMerah = 27; // Pin LED Merah (Tinggi: 2500 ke atas)
void setup_wifi() {
delay(10);
WiFi.begin(ssid, password);
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("ESP32Client", mqtt_token, "")) {
Serial.println("connected");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
pinMode(ledHijau, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledMerah, OUTPUT);
setup_wifi();
client.setServer(mqtt_server, 1883);
}
unsigned long lastMsg = 0;
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
unsigned long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
int sensorValue = analogRead(sensorPin); // Nilai berkisar antara 0 - 4095
// Matikan semua LED terlebih dahulu
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
String statusUdara = "Aman";
// Logika Ambang Batas Baru
if (sensorValue >= 2500) {
digitalWrite(ledMerah, HIGH); // LED Merah menyala (Kadar Tinggi)
statusUdara = "Tinggi";
}
else if (sensorValue >= 750) {
digitalWrite(ledKuning, HIGH); // LED Kuning menyala (Kadar Sedang)
statusUdara = "Sedang";
}
else {
digitalWrite(ledHijau, HIGH); // LED Hijau menyala (Aman / Di bawah 500)
statusUdara = "Aman";
}
Serial.println("Nilai: " + String(sensorValue) + " | Status: " + statusUdara);
// Kirim data telemetri ke ThingsBoard
String payload = "{\"kadar_gas\": " + String(sensorValue) + ", \"status\": \"" + statusUdara + "\"}";
client.publish("v1/devices/me/telemetry", payload.c_str());
}
}
Fungsi setup_wifi() menghubungkan ESP32 ke jaringan Wi-Fi virtual dan menunggu sampai status terhubung. Fungsi reconnect() menjaga koneksi MQTT ke ThingsBoard tetap aktif dengan mencoba tersambung kembali jika terputus. Pada bagian loop, nilai analogRead(sensorPin) dibandingkan dengan ambang batas untuk menentukan LED yang menyala dan status udara, kemudian dipublikasikan sebagai telemetri.
3.1.3 Step-by-Step Pengaturan di ThingsBoard Cloud
Langkah 1: Membuat Akun dan Device Baru
1.Buka situs thingsboard.cloud, lalu daftar atau login ke akun.
2.Masuk ke menu Entities lalu pilih Devices (pada versi ThingsBoard terbaru, menu ini dapat bernama Devices pada sidebar kiri).
3.Klik tombol + (Add device) di pojok kanan atas, lalu pilih Add new device.
4.Isi Name dengan nama device, misalnya Sensor Gas, biarkan Device profile pada nilai default, lalu klik Add.
Langkah 2: Mengambil Kunci Akses (Access Token)
Access Token berfungsi sebagai identitas device saat ESP32 melakukan koneksi MQTT ke ThingsBoard.
1.Klik device yang baru dibuat pada daftar Devices untuk membuka halaman detailnya.
2.Klik tombol Copy access token pada bagian detail device.
3.Tempel token tersebut ke variabel mqtt_token pada kodingan di Wokwi.
Langkah 3: Mendesain Dashboard
1.Buka menu Dashboards, lalu klik + dan pilih Create new dashboard, beri judul misalnya Pemantauan Gas MQ-2.
2.Buka dashboard tersebut, klik ikon pensil (Edit mode), lalu klik Add widget.
3.Pilih widget Timeseries Line Chart (kelompok Charts), lalu atur sumber data ke device Sensor Gas dengan key kadar_gas.
4.Tambahkan widget Gauge (kelompok Gauges) atau Latest Telemetry dengan key yang sama untuk menampilkan nilai terbaru, serta atur batas maksimum 4095.
5.Untuk peringatan, buat Alarm rule pada Device profile dengan kondisi kadar_gas lebih besar atau sama dengan 2500, lalu tampilkan melalui Alarm Widget.
6.Klik tombol Save di pojok kanan bawah untuk menyimpan seluruh desain dashboard.
Langkah 4: Menjalankan Simulasi dan Memeriksa Telemetri
1.Jalankan simulasi pada Wokwi dengan menekan tombol Start (ikon segitiga hijau).
2.Pastikan Serial Monitor menampilkan pesan WiFi connected dan koneksi MQTT berhasil.
3.Geser slider potensiometer untuk mengubah kadar gas, lalu amati LED pada Wokwi.
4.Buka tab Latest telemetry pada device atau dashboard di ThingsBoard, kemudian pastikan nilai kadar_gas dan status_udara ikut berubah.
Dengan mengikuti langkah di atas, dashboard ThingsBoard telah siap menerima data. Begitu simulasi di Wokwi dijalankan dengan kodingan yang berisi Access Token tersebut, angka dan grafik pada dashboard akan bergerak secara otomatis.
3.2 Konfigurasi dan Kredensial Program
Pengaturan yang dibuat pada ThingsBoard Cloud dan program Wokwi dirangkum pada tabel berikut.
| Parameter | Nilai |
|---|---|
| Platform | ThingsBoard Cloud (thingsboard.cloud) |
| Protokol | MQTT |
| Autentikasi | Access Token device sebagai username MQTT |
| Topik telemetri | v1/devices/me/telemetry |
| Format data | JSON: kadar_gas dan status_udara |
| Pin sensor | GPIO 34 (ADC 12-bit, nilai 0 sampai 4095) |
| Widget dashboard | Chart, Gauge/Latest Telemetry, dan Alarm (key kadar_gas) |
Sistem mengklasifikasikan kadar gas ke dalam tiga tingkat sesuai ambang batas pada kodingan, seperti pada tabel berikut.
| Status | Rentang Nilai ADC | LED | Contoh Payload Telemetri |
|---|---|---|---|
| Aman | di bawah 500 | Hijau | {"kadar_gas": 450, "status_udara": "Aman"} |
| Sedang | 500 sampai 2499 | Kuning | {"kadar_gas": 1500, "status_udara": "Sedang"} |
| Tinggi | 2500 ke atas | Merah | {"kadar_gas": 3200, "status_udara": "Tinggi"} |
Access Token dari Langkah 2 dimasukkan pada bagian awal kodingan di Wokwi, seperti contoh berikut (nilai disesuaikan dengan device masing-masing kelompok).
const char* password = "";
const char* mqtt_server = "thingsboard.cloud"; // Sesuaikan server Anda
const char* mqtt_token = "112345567890";
WiFiClient espClient;
PubSubClient client(espClient);
const int sensorPin = 34; // Pin potensiometer
const int ledHijau = 25; // Pin LED Hijau (Aman: di bawah 500)
const int ledKuning = 26; // Pin LED Kuning (Sedang: 500 - 2499)
const int ledMerah = 27; // Pin LED Merah (Tinggi: 2500 ke atas)
BAB IV
PENUTUP
4.1 Kesimpulan
1.Sistem deteksi gas dan asap berbasis ESP32 dapat disimulasikan pada Wokwi dengan potensiometer sebagai pengganti sensor MQ-2, dan mengklasifikasikan kadar gas menjadi Aman, Sedang, dan Tinggi yang ditandai dengan LED hijau, kuning, dan merah.
2.Data kadar gas dikirim ke ThingsBoard melalui protokol MQTT pada topik v1/devices/me/telemetry dalam format JSON, sehingga kondisi udara dapat dipantau dari jarak jauh secara real-time.
3.Pengaturan ThingsBoard Cloud dilakukan dalam empat langkah, yaitu membuat device, mengambil Access Token, mendesain dashboard, dan menjalankan simulasi untuk memeriksa telemetri.
4.2 Saran
1.Pengembangan selanjutnya dapat menambahkan buzzer sebagai alarm suara lokal serta notifikasi melalui email atau Telegram dari alarm ThingsBoard.
2.Sistem dapat diimplementasikan pada ESP32 dan sensor MQ-2 fisik dengan kalibrasi ambang batas untuk menguji keandalan pendeteksian pada kondisi nyata.
3.Dapat ditambahkan sensor lain, seperti suhu dan kelembapan, untuk pemantauan kualitas udara yang lebih lengkap.
DAFTAR PUSTAKA
ThingsBoard. ThingsBoard Documentation. https://thingsboard.io/docs
Wokwi. Wokwi Documentation. https://docs.wokwi.com
MQTT.org. MQTT: The Standard for IoT Messaging. https://mqtt.org
Espressif Systems. ESP32 Technical Reference Manual.
LAMPIRAN
Link Video Penjelasan:
https://drive.google.com/file/d/1r2VLC21RihCzSBPC2qYrTCiN6lezUdKy/view?usp=drivesdk
Tidak ada komentar:
Posting Komentar