Minggu, 18 Oktober 2026

SISTEM MONITORING SUHU DAN KELEMBAPAN MENGGUNAKAN WOKWI ESP32 DAN THINGSBOARD

SISTEM MONITORING SUHU DAN KELEMBAPAN MENGGUNAKAN WOKWI ESP32 DAN THINGSBOARD

Disusun Oleh :

Farel Rizky Aliansi(24051204016)
Moch Septian Yudis(24051204024)
Denny Kusuma Putra(24051204027)

BAB I
PENDAHULUAN

1.1 Latar Belakang

Sistem pemonitoran kondisi lingkungan seperti suhu dan kelembaban udara merupakan hal yang sangat krusial di berbagai sektor modern, termasuk industri manufaktur, manajemen pusat data (data center), pergudangan logistik bahan pangan, hingga sistem pertanian cerdas (smart agriculture). Pengukuran parameter fisik secara manual kerap kali tidak efisien, memiliki Risiko human error, serta tidak mampu memberikan respons cepat terhadap perubahan kondisi lingkungan yang ekstrem. Oleh karena itu, penerapan teknologi Internet of Things (IoT) menjadi solusi utama dalam menyajikan sistem monitoring secara real-time, terotomatisasi, dan terintegrasi.

Dalam pengembangan sistem IoT, mikrokontroler ESP32 banyak digunakan karena kinerjanya yang tinggi, konsumsi daya yang efisien, serta telah dilengkapi dengan modul komunikasi Wi-Fi dan Bluetooth terintegrasi. Untuk mengukur parameter lingkungan, sensor digital DHT22 dipilih karena memiliki tingkat akurasi dan rentang pengukuran yang lebih baik dibandingkan sensor generasi sebelumnya. Pada tahap perancangan awal, penggunaan simulator online seperti Wokwi sangat membantu mahasiswa dan pengembang untuk menguji rangkaian elektronik serta kode program tanpa khawatir akan kerusakan perangkat keras fisik.

Data parameter lingkungan yang ditangkap oleh ESP32 dikirimkan ke server cloud platform Thingsboard menggunakan protokol komunikasi lightweight MQTT (Message Queuing Telemetry Transport). Thingsboard tidak hanya berperan dalam menampilkan visualisasi data dalam bentuk dashboard interaktif, tetapi juga menyediakan fitur Rule Engine yang sangat andal. Melalui pemrosesan Rule Chain, sistem dapat mengevaluasi tingkatan bahaya suhu (severity alarm) secara otomatis, mulai dari status Minor, Major, hingga Critical, serta secara langsung memicu pengiriman notifikasi Email peringatan darurat kepada administrator sistem saat suhu melebihi ambang batas aman.

1.2 Tujuan

Tujuan dari pelaksanaan project praktikum Internet of Things ini adalah sebagai berikut:

•Merancang dan menguji simulasi sistem monitoring suhu dan kelembaban berbasis mikrokontroler ESP32 dan sensor DHT22 pada platform Wokwi.

•Mengonfigurasi dan mengintegrasikan jaringan Wi-Fi virtual serta protokol MQTT untuk menghubungkan simulator Wokwi dengan Thingsboard Cloud menggunakan Access Token.

•Membangun Dashboard Monitoring interaktif di Thingsboard Cloud dengan menyusun widget Time Series Chart, Entities Table, Value Card, Radial Gauge, dan Alarms Table.

•Mengembangkan logika pemrosesan data otomatis menggunakan Rule Chain custom (Wokwi_DHT_Alarm_Baru) untuk mengkategorikan batas suhu ke dalam tingkatan alarm Minor, Major, Critical, dan Clear.

•Mengimplementasikan integrasi notifikasi Email otomatis untuk mengirimkan pesan peringatan krisis secara real-time ke alamat email administrator.

•Menghubungkan node Rule Chain custom ke dalam Root Rule Chain utama Thingsboard agar seluruh payload telemetri dapat terproses secara sistematis.

BAB II
LANDASAN TEORI DAN KOMPONEN

2.1 Landasan Teori Internet of Things (IoT)

Internet of Things (IoT) adalah sebuah konsep di mana objek fisik atau ‘things’ dilengkapi dengan sensor, perangkat lunak, dan teknologi lain untuk menghubungkan serta membagikan data dengan perangkat lain dan sistem melalui jaringan internet. Konsep IoT memungkinkan pengawasan dan pengendalian infrastruktur secara terpusat dari jarak jauh. Protokol MQTT (Message Queuing Telemetry Transport) merupakan protokol komunikasi standar untuk IoT yang bekerja pada arsitektur Publish/Subscribe. MQTT sangat cocok digunakan pada perangkat dengan keterbatasan sumber daya (resource-constrained devices) karena struktur header-nya yang ringan, bandwidth rendah, dan pengiriman data yang efisien.

2.2 Spesifikasi Komponen Perangkat Keras dan Platform

Berikut adalah rincian komponen perangkat keras virtual dan platform cloud yang digunakan dalam project ini:

•ESP32 DevKit C V4: Mikrokontroler berbasis System on Chip (SoC) Tensilica LX6 32-bit dual-core dengan modul Wi-Fi 802.11 b/g/n bawaan. Berfungsi sebagai unit pemroses utama dan pengirim data telemetri ke cloud.

•Sensor DHT22 (AM2302): Sensor digital untuk mengukur suhu (-40°C hingga +80°C dengan akurasi ±0.5°C) dan kelembaban udara (0% hingga 100% RH dengan akurasi ±2-5% RH). Data dikirimkan melalui komunikasi bus digital single-wire.

•Simulator Wokwi: Platform simulator elektronik online yang mampu mensimulasikan board ESP32, sensor, layar display, dan koneksi Wi-Fi virtual secara presisi langsung di dalam web browser.

•Thingsboard Cloud: Platform IoT Cloud open-source berkinerja tinggi yang menyediakan fasilitas Device Management, Data Collection, Interactive Dashboard Visualization, serta Rule Engine pemrosesan logika alarm.

•Protokol MQTT Thingsboard: Koneksi MQTT ke server mqtt.thingsboard.cloud pada port 1883 dengan autentikasi menggunakan Device Access Token pada topik v1/devices/me/telemetry.

2.3 Pustaka (Library)

Project ini memanfaatkan beberapa pustaka (library) Arduino yang dikonfigurasi pada berkas libraries.txt simulator Wokwi:

1.Wifi.h

2.PubSubClient.h

3.DHTesp.h

4.DHT sensor library

5.ArduinoJson

6.ThingsBoard

BAB III
PERANCANG DAN LANGKAH PENGERJAAN

3.1 Skema Pengkabelan (Wiring)

Perancangan rangkaian fisik disimulasikan menggunakan Wokwi dengan mengacu pada diagram JSON. Konfigurasi pinout antara sensor DHT22 dan board ESP32 ditunjukkan pada berikut:

Pin Sensor DHT22Pin Board ESP32Keterangan / Warna Kabel
Pin VCCPin 3V3Catu Daya 3.3 Volt (Kabel
Merah)
Pin SDA / DataPin GPIO 15Jalur Data Digital Sensor
(Kabel Hijau)
Pin GNDPin GNDGround / Pentahanan (Kabel
Hitam)

3.2 Langkah Konfigurasi Perangkat pada Thingsboard Cloud

Tahapan pendaftaran dan konfigurasi kredensial perangkat pada portal Thingsboard Cloud adalah sebagai berikut:

1.Buka portal Thingsboard Cloud, navigasi ke menu Devices pada bilah navigasi kiri, kemudian pada tab All klik tombol Add device.

2.Pada form pembuatan perangkat, isikan kolom Name dengan: Sistem Monitoring Suhu dan Kelembapan.

3.Pada opsi Device profile, biarkan menggunakan profil standar default bawaan Thingsboard Cloud.

4.Setelah perangkat berhasil dibuat, klik pada baris perangkat tersebut untuk membuka panel Device details di sebelah kanan.

5.Klik pada tombol Manage credentials untuk mengonfigurasi autentikasi koneksi MQTT.

6.Ubah Credentials type menjadi Access token, kemudian masukkan string token: uhuyy123 lalu klik Save.

7.Salin Access Token tersebut untuk dimasukkan ke dalam variabel mqtt_user pada kode program ESP32 Wokwi.

3.3 Kode Program Mikrokontroler ESP32

Berikut adalah kode program C++ lengkap yang dimasukkan pada berkas sketch.ino simulator Wokwi.

//untuk menghubungkan sensor DHT dengan perangkat WiFi
#include <WiFi.h>
//mengirim data ke server MQTT
#include <PubSubClient.h>
//untuk berkomunikasi dengan sensor DHT
#include <DHTesp.h>

//untuk menentukan pin pada perangkat
const int DHT_PIN = 15;
//untuk membaca data dari sensor DHT
DHTesp dht;
const char* ssid = "Wokwi-GUEST"; /// wifi ssid
const char* password = "";
//variabel string untuk menyimpan alamat server MQTT
const char* mqtt_server = "mqtt.thingsboard.cloud";// thingboardserver url
const char* mqtt_clid = "workshop_IOT_informatika"; // client id
const char* mqtt_user = "uhuyy123"; // ganti dengan token ThingsBoard Anda
const char* mqtt_pass = ""; // dikosongkan saja
const char* mqtt_topic = "v1/devices/me/telemetry"; //topik ke device

WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;

//untuk menginisialisasi dan mengatur koneksi WiFi pada perangkat.
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password,6);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

//menjaga koneksi yang stabil dengan server MQTT dan mencoba kembali jika terjadi gangguan koneksi.
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
//ini untuk konek sesuai credential thingsboard
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);
}}
}
//untuk mengatur perangkat sebelum memulai operasi utama.
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
dht.setup(DHT_PIN, DHTesp::DHT22);
}
//memeriksa koneksi MQTT, mengelola koneksi, dan mempublikasikan data suhu dan kelembaban ke server MQTT
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
//milis = timer khas arduino, lebih simple
unsigned long now = millis();
if (now - lastMsg > 5000) { //perintah publish data tiap 5 detik

lastMsg = now;

//ambil pengukuran TempAndHumidity DHT22
TempAndHumidity data = dht.getTempAndHumidity();

String temp = String(data.temperature, 2);
String hum = String(data.humidity, 1);
String publish;

publish += "{";
publish += "\"suhu\":";
publish += temp;
publish += ",\"kelembaban\":";
publish += hum;
publish += "}";

client.publish(mqtt_topic, publish.c_str()); // publish ke thingsboard

Serial.print("Temperature: ");
Serial.println(temp);
Serial.print("Humidity: ");
Serial.println(hum);
}
}

3.4 Langkah Pembuatan Dashboard Monitoring

Tahapan penyusunan Dashboard visualisasi pada Thingsboard Cloud adalah sebagai berikut:

1.Buka menu Dashboards pada bilah navigasi kiri, kemudian klik Add dashboard.

2.Pada dialog pembuatan dashboard, isikan Title dengan: Monitoring Suhu dan Kelembapan.

3.Buka halaman dashboard yang telah dibuat, lalu klik Add widget untuk menambahkan elemen visualisasi.

4.Widget 1 - Time Series Chart (Riwayat Suhu & Kelembapan): Mengonfigurasi Datasource ke device Sistem Monitoring Suhu dan Kelembapan dengan data keys kelembaban dan suhu.

5.Widget 2 - Entities Table (Device Details): Menampilkan tabel entitas perangkat berisi parameter Name (displayName), Status (f(active)), Last Activity (f(lastActivityTime)), dan Last Connect (f(lastConnectTime)).

6.Widget 3 - Value Card (Suhu): Menampilkan angka suhu secara real-time dengan label Suhu, unit °C, dan icon termometer.

7.Widget 4 - Value Card (Kelembapan): Menampilkan angka kelembaban secara real-time dengan label Kelembapan, unit %, dan icon tetesan air.

8.Widget 5 - Radial Gauge (Kelembapan): Menampilkan pengukur analog kelembaban dengan label Kelembapan, unit %, dan skala Ticks -100 hingga 100.

9.Widget 6 - Radial Gauge (Suhu Gauge): Menampilkan pengukur analog suhu dengan label Suhu Gauge, unit °C, dan skala Ticks -100 hingga 100.

10.Widget 7 - Alarms Table (Alarms): Menampilkan tabel pemantauan alarm aktif dan cleared beserta filter status dan tingkat severity.

3.5 Perancangan Rule Chain, Alarm, dan Email

3.5.1 Pembuatan Custom Rule Chain (Wokwi_DHT_Alarm_Baru)

Langkah-langkah pembuatan logika pemrosesan alarm custom adalah sebagai berikut:

1.Buka menu Rule chains, klik Add rule chain, lalu beri nama: Wokwi_DHT_Alarm_Baru. Tambahkan Switch Node bernama setAlarm dari kategori Filter. Isikan logika script TBEL untuk mengevaluasi data telemetri suhu:

- Suhu > 40°C dan <= 50°C -> Relasi minor

- Suhu > 50°C dan <= 60°C -> Relasi major

- Suhu > 60°C -> Relasi critical

- Lainnya -> Relasi normal

2.Tambahkan 4 Action Node Create/Clear Alarm dan hubungkan dari node setAlarm:

- Action Node create alarm critical (Relasi critical): Alarm Type Suhu Tinggi, Severity Critical

- Action Node create alarm minor (Relasi minor): Alarm Type Suhu Tinggi, Severity Minor

- Action Node create alarm major (Relasi major): Alarm Type Suhu Tinggi, Severity Major

- Action Node clear alarm (Relasi normal): Menghapus alarm tipe Suhu Tinggi

3.Tambahkan Transformation Node bernama to email critical (Transformation - to email) dan hubungkan dari relasi critical pada node setAlarm. Konfigurasi parameters:

- From: no-reply@thingsboard.cloud

- To: septianyudis618@gmail.com

- Subject: PERINGATAN KRITIS: Suhu ${deviceName} Melebihi Batas!

- Body: Plain text memuat informasi variabel ${deviceName}, ${suhu}, dan ${kelembaban}.

4.Tambahkan Action Node bernama send email critical (External - send email) dan hubungkan dari relasi Success pada node to email critical. Untuk mendapatkan password haeua melakukan 2fa pada akun google yang akan dipakai untuk alarm kirim ke email, setelah itu salin password ke dalam node send email.

5.Dibawah merupakan gambar keseluruhan rule chain Wokwi_DHT_Alarm_Baru dan sesuai relais yang sudah dijelaskan.

3.5.2 Integrasi pada Root Rule Chain

Agar Rule Chain custom berjalan secara terintegrasi dengan seluruh pesan yang masuk ke platform, dilakukan pengubahan pada Root Rule Chain utama:

1.Buka halaman Root Rule Chain (Root) pada menu Rule chains.

2.Cari dan tambahkan node Rule chain dari bilah pencarian node, lalu beri nama: Alarm Baru.

3.Pada konfigurasi node Rule chain, pilih rule chain yang telah dibuat sebelumnya yaitu Wokwi_DHT_Alarm_Baru.

4.Tarik garis hubungan relasi dari node Message Type Switch (pada outlet Post telemetry) menuju ke node Rule chain Alarm Baru, lalu simpan perubahan.

BAB IV
HASIL DAN PEMBAHASAN

4.1 Hasil Simulasi dan Visualisasi Telemetri

Setelah simulator Wokwi dijalankan, board ESP32 berhasil menginisialisasi modul Wi-Fi dan terhubung ke jaringan virtual Wokwi-GUEST. Selanjutnya, pustaka PubSubClient berhasil melakukan autentikasi ke MQTT Broker mqtt.thingsboard.cloud pada port 1883 menggunakan Device Access Token uhuyy123. Setiap interval 5 detik (dikontrol menggunakan pewaktu non-blocking millis()), ESP32 membaca parameter dari sensor DHT22, menyusunnya ke dalam format JSON {&quot;suhu&quot;: temp,&quot;kelembaban&quot;: hum}, dan mempublikasikannya ke topik v1/devices/me/telemetry. Seluruh data telemetri yang diterima oleh Thingsboard Cloud direfleksikan secara instan pada Dashboard Monitoring Suhu dan Kelembapan. Grafik Time Series memperlihatkan tren perubahan kondisi lingkungan, sementara Value Card dan Radial Gauge menampilkan statistik nilai numerik secara jernih dan informatif.

4.2 Pengujian dan Analisis Rule Chain, Severity Alarm, dan Notifikasi Email

Pengujian fitur cerdas berbasis aturan dilakukan dengan mengubah parameter suhu buatan pada sensor DHT22 simulator Wokwi. Evaluasi performa sistem disajikan pada daftar poin berikut:

•Kondisi Normal (Suhu <= 40°C): Node setAlarm mengarahkan paket data ke relasi normal, yang secara otomatis memicu node clear alarm. Status alarm pada dashboard menjadi Cleared.

•Kondisi Peringatan Ringan (40°C < Suhu <= 50°C): Node setAlarm mengarahkan data ke relasi minor, memicu node create alarm minor. Tabel Alarms pada dashboard mencatat kejadian alarm baru berstatus Minor.

•Kondisi Peringatan Sedang (50°C < Suhu <= 60°C): Node setAlarm mengarahkan data ke relasi major, memicu node create alarm major. Status alarm dinaikkan menjadi Major.

•Kondisi Bahaya Kritis (Suhu > 60°C): Node setAlarm mengarahkan data ke relasi critical.

Kejadian ini secara simultan memicu dua jalur aksi:

a.Memicu node create alarm critical untuk mencatat alarm berstatus Critical pada dashboard.

b.Memicu node to email critical untuk menyusun template email peringatan darurat, lalu dilanjutkan oleh node send email critical yang secara otomatis mengirimkan pesan email ke alamat septianyudis618@gmail.com.

•Pengujian Notifikasi Email: Email darurat berhasil diterima pada kotak masuk septianyudis618@gmail.com dengan subjek 39;PERINGATAN KRITIS: Suhu Sistem Monitoring Suhu dan Kelembapan Melebihi Batas!; dan memuat detail suhu real-time (misalnya 65.6 °C).

BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan seluruh tahapan perancangan, implementasi, dan pengujian yang telah dilaksanakan pada project praktikum Internet of Things ini, dapat ditarik kesimpulan sebagai berikut:

1.Sistem pemonitoran suhu dan kelembaban udara berbasis mikrokontroler ESP32 dan sensor DHT22 telah berhasil dirancang dan disimulasikan secara rinci pada platform Wokwi.

2.Integrasi antara simulator Wokwi dan Thingsboard Cloud melalui protokol MQTT terbukti berjalan stabil dan andal menggunakan autentikasi Device Access Token (uhuyy123).

3.Dashboard Monitoring Suhu dan Kelembapan yang dibangun pada Thingsboard Cloud mampu menyajikan visualisasi data telemetri secara real-time melalui kombinasi widget Time Series Chart, Entities Table, Value Card, Radial Gauge, dan Alarms Table.

4.Logika pemrosesan Rule Chain custom (Wokwi_DHT_Alarm_Baru) berhasil mengevaluasi kriteria suhu secara otomatis serta mengklasifikasikannya ke dalam tingkatan alarm Minor, Major, dan Critical.

5.Integrasi notifikasi Email otomatis terbukti berhasil secara sempurna, di mana pesan peringatan bahaya dapat terkirim secara otomatis ke email septianyudis618@gmail.com saat suhu terdeteksi melebihi 60°C.

6.Penghubungan node Rule Chain custom ke dalam Root Rule Chain utama memastikan seluruh payload telemetri yang masuk dapat langsung dievaluasi oleh engine aturan secara real-time tanpa penundaan.

5.2 Saran

Untuk pengembangan dan penyempurnaan sistem monitoring IoT ini di masa mendatang, beberapa saran yang dapat direkomendasikan adalah:

1.Mengimplementasikan kontrol aktuator fisik atau virtual (seperti kipas pendingin DC atau Relay) yang dikendalikan secara otomatis dari Thingsboard menggunakan perintah RPC (Remote Procedure Call) saat alarm Critical terpicu.

2.Menambahkan kanal notifikasi instant messaging tambahan seperti Telegram Bot atau WhatsApp Gateway pada Rule Chain Thingsboard agar peringatan darurat dapat diterima lebih responsif pada perangkat seluler pengguna.

3.Menerapkan pengujian menggunakan hardware fisik ESP32 dan sensor DHT22 secara langsung untuk membandingkan tingkat kepresisian dan kestabilan komunikasi pada kondisi lingkungan nyata.

LAMPIRAN

Link Video:

https://drive.google.com/file/d/1Bf6OoAJyF68x7tEf2PWGdu8f7m_Fr7aS/view?usp=sharing

Tidak ada komentar:

Posting Komentar