Disusun Oleh:
| Risqi Prasdika | (24051204008) |
| Rahmat Ari Setyarto | (24051204010) |
| Carmelio Sivandra A. | (24051204116) |
| Rifqi Syawal | (24051204198) |
| Azzam Ghifari | (24051204178) |
BAB I
PENDAHULUAN
1.1 Latar Belakang
Internet of Things (IoT) menjadi salah satu teknologi yang berkembang pesat dan banyak digunakan untuk kebutuhan monitoring serta pengendalian sistem secara real-time. Salah satu penerapan yang sederhana namun penting adalah pemantauan suhu dan kelembaban, yang berfungsi dalam berbagai bidang seperti pertanian, industri, maupun lingkungan. Dengan adanya data sensor yang akurat, pengguna dapat melakukan analisis kondisi serta mengambil keputusan yang lebih tepat. Wokwi sebagai platform simulasi IoT memberikan kemudahan bagi mahasiswa maupun praktisi untuk merancang dan menguji project berbasis mikrokontroler tanpa harus menggunakan perangkat fisik, sehingga proses pembelajaran menjadi lebih efisien.
ThingsBoard merupakan platform open-source yang menyediakan layanan IoT dashboard untuk mengelola, memvisualisasikan, dan menganalisis data sensor. Menghubungkan project suhu dan kelembaban dari Wokwi ke ThingsBoard menjadi langkah penting dalam memahami alur kerja sistem IoT secara menyeluruh, mulai dari pengumpulan data, pengiriman data melalui protokol komunikasi, hingga visualisasi data pada dashboard interaktif. Praktikum ini bertujuan untuk melatih keterampilan teknis dalam integrasi sistem IoT serta memberikan pengalaman nyata dalam pemanfaatan data sensor untuk kebutuhan monitoring.
1.2 Rumusan Masalah
1.Bagaimana cara menghubungkan project simulasi sensor suhu dan kelembaban di Wokwi dengan platform ThingsBoard agar data dapat dikirim dan ditampilkan secara real-time?
2.Apa saja konfigurasi dan langkah teknis yang diperlukan untuk memastikan integrasi berjalan dengan baik antara Wokwi dan ThingsBoard?
3.Sejauh mana visualisasi data suhu dan kelembaban di ThingsBoard dapat membantu proses monitoring serta analisis sistem IoT sederhana?
1.3 Tujuan Laporan
1.Menjelaskan proses integrasi antara project simulasi sensor suhu dan kelembaban di Wokwi dengan platform ThingsBoard.
2.Melatih keterampilan teknis dalam konfigurasi perangkat lunak dan protokol komunikasi untuk pengiriman data sensor.
3.Memahami alur kerja sistem IoT mulai dari pengumpulan data, pengiriman data, hingga visualisasi pada dashboard interaktif.
4.Memberikan pengalaman praktis dalam pemanfaatan data sensor untuk kebutuhan monitoring dan analisis sederhana.
1.4 Manfaat Penulisan
•Melatih kemampuan praktis dalam memprogram mikrokontroler ESP32 menggunakan bahasa C/C++ pada platform Wokwi.
•Memberikan pengalaman langsung dalam mengonfigurasi dan mengimplementasikan protokol komunikasi MQTT untuk pengiriman data telemetri secara real-time.
•Membekali mahasiswa dengan pemahaman operasional platform ThingsBoard Cloud, mulai dari manajemen device credentials, pembuatan dashboard visualisasi, hingga penyusunan Rule Chain dan penanganan Alarm.
•Menjadi media pembuktian dan penerapan konsep dasar Internet of Things (pembacaan sensor, lapisan jaringan, hingga visualisasi data pada lapisan aplikasi).
•Dapat dijadikan sebagai bahan acuan, studi kasus, atau dokumentasi praktikum bagi mahasiswa lain yang ingin mempelajari simulasi integrasi Wokwi dan ThingsBoard.
•Membuktikan bahwa penggunaan simulator seperti Wokwi dapat menghemat biaya dan waktu dalam tahap perancangan serta pengujian sistem IoT sebelum diterapkan pada perangkat keras fisik.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
Internet of Things (IoT) adalah paradigma ketika objek fisik yang dilengkapi sensor, pengolah data, dan konektivitas jaringan dapat saling bertukar data tanpa campur tangan manusia secara langsung [1] (Atzori et al., 2010). Secara umum, sistem IoT terdiri atas lapisan perangkat (sensor dan mikrokontroler), lapisan jaringan (protokol komunikasi), dan lapisan aplikasi (penyimpanan, analisis, dan visualisasi data). Alur pada proyek ini mengikuti pola tersebut: sensor membaca suhu dan kelembaban, ESP32 mengirim data melalui protokol MQTT, dan ThingsBoard menampilkannya pada dashboard.
Wokwi adalah simulator daring untuk sistem tertanam yang mendukung ESP32, Arduino, dan mikrokontroler lain. Rangkaian komponen didefinisikan pada berkas diagram.json, program ditulis pada sketch.ino, dan pustaka didaftarkan pada libraries.txt. Simulasi ESP32 di Wokwi menyediakan jaringan Wi-Fi virtual Wokwi-GUEST yang dapat mengakses internet. Dengan begitu, perangkat simulasi dapat terhubung ke layanan cloud seperti ThingsBoard tanpa perangkat keras fisik [2] (Wokwi, n.d.).
ESP32 adalah system on chip berdaya rendah buatan Espressif yang memiliki modul Wi-Fi dan Bluetooth terintegrasi [3] (Espressif Systems, 2023). Fitur ini membuat ESP32 banyak dipakai pada aplikasi IoT yang mengirim data sensor ke server melalui jaringan nirkabel. Pada proyek ini, ESP32 berperan sebagai client yang membaca sensor, menyusun data dalam format JSON, lalu mempublikasikannya ke server.
DHT22 adalah sensor digital yang mengukur suhu dan kelembaban relatif udara dan mengirim hasilnya melalui satu jalur data [2] (Wokwi, n.d.). Pada program, pembacaan dilakukan dengan pustaka DHTesp, lalu hasilnya dikemas sebagai pasangan kunci–nilai suhu dan kelembaban agar dikenali ThingsBoard sebagai data telemetri. Di Wokwi, nilai suhu dan kelembaban sensor dapat diubah langsung saat simulasi berjalan untuk menguji respons sistem.
Message Queuing Telemetry Transport (MQTT) adalah protokol komunikasi ringan berbasis model publish/subscribe yang dirancang untuk perangkat dengan sumber daya dan bandwidth terbatas [4] (OASIS, 2014). Dalam model ini, client tidak berkomunikasi langsung, melainkan melalui perantara yang disebut broker. Pengirim (publisher) mempublikasikan pesan ke sebuah topic, lalu broker meneruskannya ke client yang berlangganan topik tersebut. MQTT berjalan di atas TCP/IP dengan port standar 1883 untuk koneksi tanpa enkripsi dan 8883 untuk koneksi dengan TLS. Pada proyek ini, ESP32 bertindak sebagai publisher menggunakan pustaka PubSubClient, dan ThingsBoard sebagai broker.
ThingsBoard adalah platform IoT sumber terbuka untuk manajemen perangkat, pengumpulan data, pemrosesan, dan visualisasi [5] (ThingsBoard, n.d.). Perangkat terhubung melalui MQTT dengan autentikasi MQTT Basic yang menggunakan client ID, username, dan password. Data telemetri dikirim dalam format JSON ke topik v1/devices/me/telemetry. Ketiga kredensial dibuat saat perangkat didaftarkan pada menu Devices dan dimasukkan ke dalam program sketch.ino.
Dashboard pada ThingsBoard adalah halaman visualisasi yang tersusun dari beberapa widget, seperti analogue gauge (skala termometer) dan simple value and chart card. Setiap widget dihubungkan ke sumber data (datasource) berupa perangkat tertentu dan data key tertentu, misalnya suhu atau kelembaban, sehingga tampilannya diperbarui sesuai data yang masuk [5] (ThingsBoard, n.d.).
Rule engine ThingsBoard memproses pesan masuk melalui rangkaian node yang disebut rule chain. Node Switch mengarahkan pesan ke jalur berbeda berdasarkan kondisi tertentu, misalnya rentang suhu. Node Create Alarm membuat alarm dengan tingkat keparahan tertentu (critical, major, atau minor), sedangkan node Clear Alarm menghapus alarm saat kondisi kembali normal [5] (ThingsBoard, n.d.). Dengan skema ini, perubahan suhu atau kelembaban pada DHT22 di Wokwi dapat menghasilkan notifikasi alarm di ThingsBoard secara otomatis.
BAB III
PEMBAHASAN
3.1 Penjelasan Simulasi
1.buka thingsboard.cloud
2.klik entities → devices
3.klik add device → add new device
4.isi nama, biarkan label kosong, device profile default, isi email untuk owner atau group. klik next credentials
5.pilih mqtt basic, kalian bisa membuat credentials sendiri atau dibuatkan oleh sistem. klik add
6.copy client id, user name, password ke kode sketch.ino yang ada di wokwi.
7.jalankan simulasi wokwi sampai muncul tulisan:
Attempting MQTT connection...Thingsboard is Connected !!
8.akan menunjukkan state aktif
9.masuk ke dashboard → klik add dashboards → create new dashboard → isi title dan owner/group → add
10.klik dashboard yang baru dibuat
11.klik edit mode → add widget
12.tambahkan analogue gauge → termometer scale
13.search cards → pilih simple value and chart card
14.edit temperatur
15.hubungkan ke device yang sedang berjalan, pilih data key suhu

16.biarkan data export dan fullscreen tercentang
17.klik simple value and chart card
18.edit datasource, device sesuaikan nama device yang sedang aktif.
19.biarkan ini tercentang lalu klik apply
20.buka tab rulechain
21.klik add rule chain → create new rule chain
22.berikan nama lalu klik add
23.klik rulechain yang baru dibuat
24.cari dan drad & drop switch
25.hubungkan input ke swithc
26.edit seperti ini lalu klik centang
27.drag and drop create alarm sebanyak 3 kali dan juga drag & drop clear alarm 1 kali
28.hubungkan seperti ini dengan memberi label critical, major, minor, normal:
29.modifikasi seperti ini:
kalian bisa klik device dht22 di wokwi dan mengubah kelembaban atau suhunya
lalu klik tab alarm di thingsboard.cloud dan kalian bisa melihat notif dari alarm
klik tab dashboard, kalian bisa melihat suhu dan kelembaban dashboard menyesuaikan dengan suhu dan kelembaban di dht22 wokwi
3.2 Kode Program
libraries.txt
# See https://docs.wokwi.com/guides/libraries
PubSubClient
DHT sensor library for ESPx
diagram.json
"version": 1,
"author": "Shiv",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-esp32-devkit-v1", "id": "esp", "top": -34.66, "left": -134.67, "attrs": {} },
{
"type": "wokwi-dht22",
"id": "dht1",
"top": -100.24,
"left": 40.86,
"attrs": { "temperature": "8.1", "humidity": "96" }
}
],
"connections": [
[ "esp:TX0", "$serialMonitor:RX", "", [] ],
[ "esp:RX0", "$serialMonitor:TX", "", [] ],
[ "dht1:VCC", "esp:VIN", "red", [ "v14.14", "h-73.03", "v-67.28", "h-124.67", "v162.32" ] ],
[ "esp:GND.1", "dht1:GND", "black", [ "h0" ] ],
[ "dht1:SDA", "esp:D15", "green", [ "v0" ] ]
],
"dependencies": {}
}
sketch.ino
#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 = "thingsboard.cloud";// thingboardserver url
const char* mqtt_clid = "r41xt4af1ad3fwp762ba"; // client id
const char* mqtt_user = "hervz49pd49phv9kfu49"; // username device
const char* mqtt_pass = "qyvlyryg8mhusr7rv9da"; // password device
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);
}
}
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan pembahasan dan simulasi yang telah dilakukan, project pemantauan suhu dan kelembaban di Wokwi dapat dihubungkan dengan ThingsBoard menggunakan mikrokontroler ESP32, sensor DHT22, dan protokol MQTT. ESP32 membaca data sensor, menyusunnya dalam format JSON dengan kunci suhu dan kelembaban, kemudian mengirimkannya ke topik v1/devices/me/telemetry setiap lima detik. Integrasi ini memerlukan konfigurasi jaringan Wi-Fi, alamat server, port MQTT, serta client ID, username, dan password yang sesuai dengan perangkat pada ThingsBoard.
Dashboard ThingsBoard menampilkan data melalui widget yang dihubungkan ke perangkat dan data key yang sesuai. Perubahan nilai suhu dan kelembaban pada DHT22 di Wokwi dapat diikuti pada dashboard, sehingga pengguna lebih mudah memantau kondisi yang disimulasikan. Selain itu, rule chain mengolah kondisi suhu menjadi alarm dengan tingkat critical, major, dan minor serta mengakhiri kondisi alarm ketika nilai kembali normal.
Praktikum ini memberikan pemahaman mengenai alur kerja sistem IoT, mulai dari pembacaan sensor, pengiriman data, hingga visualisasi dan pemrosesan alarm. Namun, hasil yang diperoleh masih terbatas pada simulasi dan belum menunjukkan akurasi sensor fisik maupun keandalan sistem dalam penggunaan jangka panjang.
4.2 Saran
Untuk pengembangan project selanjutnya, terdapat beberapa saran yang dapat diterapkan sebagai berikut.
1.Pengujian perlu dilanjutkan menggunakan ESP32 dan DHT22 fisik agar hasil simulasi dapat dibandingkan dengan kondisi nyata. Pembacaan sensor sebaiknya diperiksa menggunakan alat ukur pembanding untuk mengetahui kesesuaiannya.
2.Pengujian sistem sebaiknya mencakup perubahan nilai pada batas setiap tingkat alarm, kembalinya kondisi ke rentang normal, serta gangguan koneksi Wi-Fi dan MQTT. Hasil pengujian perlu dicatat agar fungsi dashboard, alarm, dan penyambungan ulang dapat dievaluasi secara lebih terukur.
3.Keamanan komunikasi perlu ditingkatkan dengan menggunakan MQTT melalui TLS pada penerapan nyata. Kredensial perangkat sebaiknya tidak dicantumkan dalam kode atau laporan yang dibagikan secara terbuka, dan perlu diganti apabila telah terekspos.
4.Dashboard dapat dikembangkan dengan grafik riwayat suhu dan kelembaban, satuan yang jelas, serta pengaturan rentang waktu untuk mempermudah analisis. Batas alarm dan interval pengiriman data juga perlu disesuaikan dengan kebutuhan pemantauan agar informasi yang ditampilkan lebih bermanfaat.
DAFTAR PUSTAKA
[1] L. Atzori, A. Iera, and G. Morabito, “The Internet of Things: A survey,” Computer Networks, vol. 54, no. 15, pp. 2787–2805, Oct. 2010.
[2] Wokwi, “Wokwi documentation.” Accessed: Oct. 11, 2026. [Online]. Available: https://docs.wokwi.com
[3] Espressif Systems, “ESP32 series datasheet,” 2023. [Online]. Available: https://www.espressif.com/en/support/documents/technical-documents
[4] A. Banks and R. Gupta, Eds., “MQTT version 3.1.1,” OASIS Standard, Oct. 2014. [Online]. Available: https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
[5] ThingsBoard, “ThingsBoard documentation.” Accessed: Oct. 11, 2026. [Online]. Available: https://thingsboard.io/docs/
LAMPIRAN
Link video presentasi: 2026-10-08 07-23-40.mp4
Tidak ada komentar:
Posting Komentar