Minggu, 18 Oktober 2026

LAPORAN PRAKTIKUM SMARTCLASS VIRTUAL MONITORING: SISTEM MONITORING SUHU, KELEMBAPAN, DAN AKTIVITAS RUANG KELAS BERBASIS ESP32, DHT22, SENSOR PIR DAN THINGSBOARD CLOUD

LAPORAN PRAKTIKUM SMARTCLASS VIRTUAL MONITORING: SISTEM MONITORING SUHU, KELEMBAPAN, DAN AKTIVITAS RUANG KELAS BERBASIS ESP32, DHT22, SENSOR PIR DAN THINGSBOARD CLOUD

Disusun Oleh:

Irma Aulia(24051204005)
Kaysa karuma Amalia(24051204011)
Maskurotin Faizah(24051204015)
Qurrota A'yun(24051204082)
Syifa Nayla Artika Dewi(24051204238)

BAB I
PENDAHULUAN

1.1 Latar Belakang

Internet of Things (IoT) merupakan konsep yang memungkinkan perangkat fisik terhubung ke jaringan internet untuk mengumpulkan, mengirimkan, dan menampilkan data secara otomatis. Teknologi ini dapat diterapkan dalam berbagai bidang, termasuk pemantauan kondisi lingkungan di ruang kelas.

Suhu dan kelembapan merupakan parameter lingkungan yang dapat dipantau untuk mengetahui kondisi suatu ruangan. Pemantauan secara digital dapat membantu pengguna mengamati perubahan kondisi ruangan tanpa harus melakukan pengukuran secara manual secara terus-menerus.

Berdasarkan kebutuhan tersebut, dibuat proyek SmartClass Virtual Monitoring, yaitu sistem simulasi pemantauan suhu dan kelembapan menggunakan mikrokontroler ESP32 dan sensor DHT22. Sistem dirancang menggunakan platform Wokwi untuk simulasi rangkaian dan program, sedangkan ThingsBoard Cloud digunakan untuk menerima data, menampilkan hasil pemantauan melalui dashboard, dan mengatur alarm berdasarkan nilai sensor.

Melalui proyek ini, konsep dasar IoT dapat dipelajari mulai dari pembacaan sensor, pengolahan data oleh mikrokontroler, komunikasi menggunakan protokol MQTT, hingga visualisasi data dan konfigurasi notifikasi pada platform cloud.

1.2 Rumusan Masalah

1.Bagaimana merancang sistem monitoring suhu, kelembapan, dan gerakan menggunakan ESP32, sensor DHT22, dan sensor PIR?

2.Bagaimana mengirimkan data sensor dari simulasi Wokwi ke ThingsBoard Cloud?

3.Bagaimana menampilkan data suhu, kelembapan, dan status gerakan pada dashboard ThingsBoard dan website monitoring?

4.Bagaimana mengonfigurasi alarm untuk mendeteksi nilai suhu dan kelembapan yang melewati batas tertentu serta mengirimkan notifikasinya?

5.Apa saja kendala yang muncul selama proses implementasi dan pengujian sistem?

1.3 Tujuan Laporan

1.Membuat simulasi sistem monitoring suhu, kelembapan, dan gerakan menggunakan ESP32, DHT22, dan sensor PIR.

2.Mengimplementasikan komunikasi MQTT antara ESP32 dan ThingsBoard Cloud.

3.Menampilkan data sensor melalui dashboard ThingsBoard dan website monitoring.

4.Mengonfigurasi alarm berdasarkan nilai telemetry beserta notifikasi pop-up dan email.

5.Memahami proses pengiriman notifikasi serta keterbatasan layanan cloud yang digunakan.

1.4 Manfaat Penulisan

•Bagi mahasiswa, menambah pemahaman mengenai penerapan konsep Internet of Things melalui simulasi perangkat ESP32, sensor DHT22, dan sensor PIR.

•Bagi proses pembelajaran, memberikan pengalaman dalam mengintegrasikan sensor, mikrokontroler, komunikasi MQTT, platform IoT berbasis cloud, dan website monitoring.

•Bagi pengembangan sistem, menjadi dasar untuk memahami pemantauan suhu, kelembapan, dan keberadaan aktivitas secara digital melalui dashboard.

•Bagi pengujian sistem, membantu mengidentifikasi kendala komunikasi data dan keterbatasan fitur notifikasi pada platform yang digunakan.

BAB II
TINJAUAN PUSTAKA

2.1 Dasar Teori

Internet of Things (IoT)

Internet of Things (IoT) merupakan konsep yang menghubungkan perangkat fisik ke jaringan sehingga perangkat dapat mengumpulkan, mengirimkan, dan bertukar data secara otomatis. Sistem IoT umumnya terdiri atas sensor, mikrokontroler, jaringan komunikasi, platform pengolahan data, dan antarmuka untuk menampilkan informasi.

Dalam proyek SmartClass Virtual Monitoring, konsep IoT diterapkan melalui simulasi pembacaan suhu dan kelembapan menggunakan DHT22 yang terhubung dengan ESP32. Data sensor kemudian dirancang untuk dikirimkan ke ThingsBoard Cloud agar dapat ditampilkan dan dipantau melalui dashboard.

Mikrokontroler ESP32

ESP32 merupakan mikrokontroler yang memiliki kemampuan komunikasi Wi-Fi dan dapat digunakan untuk membaca data sensor serta mengirimkannya ke server. Mikrokontroler ini banyak digunakan dalam pengembangan sistem IoT karena mendukung integrasi antara perangkat sensor dan jaringan komunikasi.

Pada proyek ini, ESP32 digunakan sebagai pengendali utama yang membaca data suhu dan kelembapan dari sensor DHT22. Program ESP32 juga mengatur koneksi jaringan dan komunikasi MQTT dengan ThingsBoard Cloud.

Sensor DHT22 (Suhu dan Kelembapan)

DHT22 merupakan sensor digital yang digunakan untuk mengukur suhu dan kelembapan relatif. Sensor ini menghasilkan data yang dapat digunakan oleh mikrokontroler untuk memantau kondisi lingkungan.

Dalam proyek SmartClass Virtual Monitoring, DHT22 digunakan sebagai sumber data utama dengan dua key telemetry, yaitu suhu untuk nilai suhu dan kelembapan untuk nilai kelembapan. Pembacaan sensor dilakukan melalui program ESP32 yang dijalankan menggunakan simulator Wokwi.

Sensor PIR (Gerakan)

PIR (Passive Infrared) merupakan sensor yang mendeteksi gerakan dengan membaca perubahan radiasi inframerah dari objek di sekitarnya, misalnya manusia. Sensor ini memiliki tiga pin, yaitu daya (+), data (D), dan ground (−). Pin data menghasilkan sinyal digital HIGH ketika gerakan terdeteksi dan LOW ketika tidak ada gerakan.

Pada proyek ini, pin data PIR dihubungkan ke GPIO 27 ESP32 dan dibaca dengan digitalRead(). Hasil pembacaan dikirim dengan key telemetry occupied, yang bernilai true jika gerakan terdeteksi dan false jika tidak. Pada simulasi Wokwi, gerakan dibuat dengan tombol Simulate motion. Status gerakan hanya menjadi informasi tambahan pada dashboard dan tidak memicu alarm.

Protokol MQTT

Message Queuing Telemetry Transport (MQTT) merupakan protokol komunikasi ringan yang banyak digunakan pada sistem IoT. MQTT memungkinkan perangkat mengirimkan data ke broker sehingga data dapat diteruskan dan diterima oleh layanan yang terhubung.

Dalam proyek ini, MQTT digunakan sebagai mekanisme komunikasi antara ESP32 dan ThingsBoard Cloud. Program menggunakan pustaka PubSubClient untuk membantu mengatur koneksi dan pengiriman data telemetry.

Wokwi

Wokwi merupakan simulator berbasis web yang digunakan untuk merancang rangkaian elektronik dan menjalankan program mikrokontroler secara virtual. Simulator ini memungkinkan proses pengujian dilakukan tanpa harus menggunakan perangkat keras fisik secara langsung.

Pada proyek ini, Wokwi digunakan untuk menyimulasikan ESP32 dan sensor DHT22, menjalankan program, serta mengamati keluaran melalui Serial Monitor. Melalui simulasi tersebut, proses pembacaan sensor dan komunikasi jaringan dapat diperiksa sebelum sistem digunakan lebih lanjut.

ThingsBoard Cloud

ThingsBoard Cloud merupakan platform IoT yang menyediakan fitur pengelolaan perangkat, penerimaan data telemetry, visualisasi melalui dashboard, serta pengaturan alarm dan pemrosesan pesan.

Dalam proyek SmartClass Virtual Monitoring, ThingsBoard Cloud digunakan sebagai platform untuk menerima data dari perangkat SmartClass-ESP32. Data tersebut menggunakan key suhu dan kelembapan, kemudian dapat ditampilkan melalui dashboard SmartClass Monitoring. Platform ini juga digunakan untuk mengonfigurasi alarm dan mengelola notifikasi berdasarkan kondisi telemetry.

Website Monitoring

Website monitoring merupakan antarmuka berbasis web yang menampilkan data sensor secara visual. Website dibangun dengan HTML untuk struktur halaman, CSS untuk tampilan, dan JavaScript untuk mengambil serta memperbarui data. Grafik dibuat dengan library Chart.js, dan pengembangannya menggunakan Visual Studio Code. Konfigurasi sambungan ke ThingsBoard dan layanan email disimpan pada file .env agar kredensial tidak ditulis langsung di kode program.

Pada proyek ini, website berjalan di localhost:3000 dan menampilkan kartu Suhu Ruangan, Kelembapan Udara, dan Status Ruangan, grafik monitoring, serta Riwayat Alarm dari ThingsBoard. Saat alarm aktif, website menampilkan pop-up peringatan dan dapat membunyikan suara alarm

Notifikasi Email

Notifikasi email digunakan untuk memberi tahu pengguna ketika kondisi melewati ambang tanpa harus membuka dashboard. Pada proyek ini, layanan yang dikonfigurasi adalah Gmail, dan email berisi jenis peringatan, nilai terbaca, batas maksimum, serta waktu kejadian

2.2 Komponen

Berikut adalah rincian komponen perangkat keras (virtual) dan perangkat lunak yang digunakan dalam implementasi simulasi berbasis Wokwi ini:

Perangkat Keras

NoKomponenFungsi
1ESP8266 / ESP32Sebagai mikrokontroler yang membaca data sensor dan mengatur pengiriman data ke ThingsBoard Cloud.
2Sensor Suhu DHT22Mengukur suhu dan kelembapan relatif sebagai data utama sistem monitoring.
3Sensor Gerak PIRMendeteksi ada tidaknya gerakan di ruangan sebagai informasi status ruangan.
4Kabel Penghubung VirtualMenghubungkan pin sensor DHT22 dengan pin ESP32 pada rangkaian simulasi Wok

Perangkat Lunak

NoKomponenFungsi
1WokwiMenyimulasikan rangkaian ESP32 dan DHT22 serta menjalankan program secara virtual.
2ArduinoDigunakan untuk menulis program pembacaan sensor dan pengiriman data.
3Wifi.hMengatur koneksi ESP32 ke jaringan Wi-Fi simulasi.
4Dht.hMembantu membaca nilai suhu dan kelembapan dari sensor DHT22.
5PubSubClient,hMendukung komunikasi MQTT untuk mengirimkan data dari ESP32.
6ThingsBoard CloudMenerima dan menyimpan telemetry serta menyediakan fitur pemantauan perangkat.
7Dashboard SmartClass MonitoringMenampilkan data suhu dan kelembapan dalam bentuk nilai maupun grafik.
8Rule Engine dan Rule ChainMengatur pemrosesan pesan serta alur tindakan berdasarkan konfigurasi yang dibuat.
9AlarmMendeteksi kondisi telemetry yang memenuhi aturan ambang batas.
10Notification CenterMengelola template, penerima, dan aturan notifikasi.
11Visual Studio CodeEditor untuk mengembangkan kode website monitoring
12Website MonitoringMenampilkan kartu data, status ruangan, grafik, riwayat alarm, dan pop-up peringatan.
13Chart.jsLibrary untuk menampilkan grafik suhu dan kelembapan pada website.
14File .envMenyimpan konfigurasi sambungan ThingsBoard, port, dan layanan email.
15GmailLayanan pengiriman email notifikasi alarm.

BAB III
PEMBAHASAN

3.1 Perancangan Sistem

Sistem SmartClass IoT dirancang untuk memantau kondisi lingkungan melalui data suhu dan kelembapan yang diperoleh dari sensor DHT22 pada simulasi ESP32 di Wokwi. Data sensor diproses oleh program yang dikembangkan menggunakan Visual Studio Code, kemudian dikirimkan untuk ditampilkan pada website monitoring dan diintegrasikan dengan ThingsBoard Cloud. Website monitoring menampilkan informasi sensor dalam bentuk nilai dan grafik sehingga perubahan kondisi lingkungan dapat diamati dengan lebih mudah.

Selain menampilkan data sensor, sistem dilengkapi dengan fitur riwayat alarm untuk memantau peringatan suhu dan kelembapan. ThingsBoard Cloud digunakan untuk memeriksa status perangkat serta mendukung pengelolaan data telemetri dan konfigurasi alarm sesuai pengaturan yang tersedia. Dengan rancangan ini, sistem menggabungkan simulasi perangkat, pengiriman data, visualisasi monitoring, dan pemantauan alarm dalam satu alur kerja.

-No.KomponenPin SensorPin ESP32Keterangan
1DHT22VCC3V3Catu daya sensor
2DHT22GNDGNDGround sensor
3DHT22SDAGPIO 15Data suhu dan kelembapan
4PIR+3V3Catu daya sensor
5PIR-GNDGround sensor
6PIRDGPIO27Data gerakan

Batas alarm tidak ditentukan pada program ESP32, tetapi pada ThingsBoard sehingga dapat diubah tanpa mengubah program. Batas yang digunakan ditunjukkan pada tabel berikut

NoParameterAmbangKondisiTampilan pada Website
1Suhu≤ 30°CNormal“Suhu normal” (hijau)
2Suhu> 30°CAlarm Suhu“Peringatan suhu” (merah)
3Kelembapan≤ 50%Normal“Kelembapan normal” (hijau)
4Kelembapan> 50%Alarm Kelembapan“Peringatan kelembapan” (merah)
5Gerakantrue/falseInformasi (tidak memicu alarm)“Gerakan Terdeteksi” / “Tidak Ada Gerakan”

3.2 Pengujian Nilai Suhu dan Kelembapan

Pengujian dilakukan dalam dua tahap dengan mengubah nilai sensor melalui slider DHT22 dan tombol Simulate motion pada Wokwi.

Tahap pertama menguji dua kondisi dasar pada sensor DHT22. Pada kondisi normal, suhu 23,9°C dan kelembapan 49% masih berada di bawah ambang alarm (suhu 30°C dan kelembapan 50%). Pada kondisi melewati batas, nilai dinaikkan menjadi 33,1°C dan 53,5%, sehingga keduanya melampaui ambang. Serial Monitor mencatat telemetry dengan benar pada kedua kondisi tersebut (Lampiran 2).

Tahap kedua menguji empat kondisi yang menggabungkan suhu, kelembapan, dan status gerakan, dengan hasil sebagai berikut.

KondisiSuhuKelembapanGerakanAlarmEmail
114,7°C (normal)49,5% (normal)Tidak adaTidak adaTidak ada
223,2°C (normal)37,5% (normal)TerdeteksiTidak adaTidak ada
331,0°C (tinggi)37,5% (normal)TerdeteksiAlarm SuhuTerkirim
45,5°C (normal)53,5% (tinggi)Tidak adaAlarm KelembapanTerkirim

Hasil ini menunjukkan bahwa alarm hanya muncul ketika suhu atau kelembapan melewati ambang. Status gerakan ditampilkan sebagai informasi tambahan dan tidak memicu alarm

3.3 Konfigurasi ThingsBoard

Konfigurasi pada ThingsBoard Cloud tidak membuat akun atau device baru, tetapi memeriksa dan mengatur perangkat yang sudah terdaftar.

Device SmartClass-ESP32 berstatus Active, yang menandakan perangkat terhubung dan aktif mengirim data. Tab Latest telemetry menampilkan nilai terakhir dari key suhu dan kelembapan, yang sama dengan keluaran Serial Monitor. Komunikasi MQTT memerlukan access token yang diperiksa melalui menu Manage credentials. Token digunakan ESP32 sebagai username MQTT, sedangkan password dikosongkan, dan nilainya harus sama dengan token pada program. Karena bersifat sensitif, token tidak ditampilkan pada laporan ini.

Alarm dikonfigurasi pada device profile dengan dua aturan terpisah. Aturan High Temperature aktif ketika suhu lebih dari 30, dan aturan High Humidity aktif ketika kelembapan lebih dari 50. Keduanya bertingkat keparahan Major dan aktif sepanjang waktu. Ketika nilai melewati ambang, alarm dibuat dengan status Active Unack dan notifikasi muncul. Ketika nilai kembali normal, alarm otomatis berstatus Cleared. Status ini berarti kondisi pemicu sudah tidak terpenuhi, bukan bahwa alarm tidak pernah terjadi.

Alur pemrosesan pesan diatur pada Root Rule Chain. Pesan masuk melalui node Input dan diarahkan oleh Message Type Switch. Pesan Post telemetry diteruskan ke Save Timeseries, dan Post attributes ke Save Attributes. Pesan Alarm Created diteruskan ke node to email dan send email sebagai jalur notifikasi email. Selain email, peristiwa alarm dicatat pada Notification Center secara berurutan, yaitu New alarm, peringatan MAJOR, dan cleared.

3.4 Kode Program

3.4.1 Kode Konfigurasi Wokwi

#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>

// Wi-Fi simulasi Wokwi
const char* WIFI_SSID = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";

// ThingsBoard Cloud
const char* MQTT_SERVER = "thingsboard.cloud";
const int MQTT_PORT = 1883;

// Ganti dengan Access Token perangkatmu
const char* MQTT_TOKEN = [Isi access token];

// DHT22
#define DHT_PIN 15
#define DHT_TYPE DHT22

// Sensor PIR
#define PIR_PIN 27

DHT dht(DHT_PIN, DHT_TYPE);

WiFiClient espClient;
PubSubClient mqtt(espClient);

unsigned long lastSend = 0;
const unsigned long SEND_INTERVAL = 5000;

bool gerakanTerdeteksi = false;

void connectWiFi() {
Serial.print("Menghubungkan ke WiFi");

WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

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

Serial.println("\nWiFi terhubung!");
Serial.println(WiFi.localIP());
}

void connectMQTT() {
while (!mqtt.connected()) {
Serial.print("Menghubungkan ke ThingsBoard... ");

if (mqtt.connect("SmartClass-ESP32", MQTT_TOKEN, nullptr)) {
Serial.println("Berhasil!");
} else {
Serial.print("Gagal, kode: ");
Serial.println(mqtt.state());
delay(3000);
}
}
}

void setup() {
Serial.begin(115200);

dht.begin();
pinMode(PIR_PIN, INPUT);
connectWiFi();

mqtt.setServer(MQTT_SERVER, MQTT_PORT);
connectMQTT();
}

void loop() {
if (WiFi.status() != WL_CONNECTED) {
connectWiFi();
}

if (!mqtt.connected()) {
connectMQTT();
}

mqtt.loop();

if (millis() - lastSend >= SEND_INTERVAL) {
lastSend = millis();

float suhu = dht.readTemperature();
float kelembapan = dht.readHumidity();

if (isnan(suhu) || isnan(kelembapan)) {
Serial.println("Gagal membaca sensor DHT22");
return;
}

int gerakan = digitalRead(PIR_PIN);
Serial.print("status PIR: ");
Serial.println(gerakan);

char payload[150];
snprintf(
payload,
sizeof(payload),
"{\"suhu\":%.2f,\"kelembapan\":%.2f,\"occupied\":%s}",
suhu,
kelembapan,
gerakan == HIGH ? "true" : "false"
);

Serial.print("Telemetry: ");
Serial.println(payload);

if (mqtt.publish("v1/devices/me/telemetry", payload)) {
Serial.println("Data berhasil dikirim!");
} else {
Serial.println("Pengiriman data gagal.");
}
}
}

3.4.2 Kode .env

TB_URL=https://thingsboard.cloud
TB_DEVICE_ID=[Isi device ID]
TB_USERNAME=[Isi username]
TB_PASSWORD=[Isi password]

PORT=3000

EMAIL_SERVICE=gmail
EMAIL_USER=[Isi email user]
EMAIL_PASS=[Isi email password]

EMAIL_RECEIVER=[Isi email penerima]

3.4.3 Kode Tampilan Website Monitoring

<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SmartClass Monitoring</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<header>
<div>
<p class="eyebrow">INTERNET OF THINGS</p>
<h1>SmartClass Monitoring</h1>
<p class="subtitle">Pemantauan suhu dan kelembapan ruangan secara real-time</p>
<p class="last-updated">
<span></span>
Pembaruan terakhir:
<strong id="lastUpdated">Menunggu data...</strong>
</p>
</div>
<div class="system-status">
<span id="statusDot" class="status-dot"></span>
<div>
<strong id="systemStatus">Memeriksa sistem...</strong>
<p id="systemDetail">Menghubungkan ke ThingsBoard...</p>
</div>
</div>
</header>

<main>
<section class="cards">
<article class="card">
<p class="card-heading">
<span class="card-icon icon-suhu">️</span>
Suhu Ruangan
</p>
<div class="value"><span id="suhu">--</span><small>°C</small></div>
<p id="statusSuhu" class="status">Memuat data...</p>
<div class="progress-info">
<span>Level suhu</span>
<span id="persenSuhu">0%</span>
</div>
<div class="progress-bar">
<div id="barSuhu" class="progress-fill suhu-fill"></div>
</div>
<p class="limit">Batas alarm: > 30°C</p>
</article>

<article class="card">
<p class="card-heading">
<span class="card-icon icon-kelembapan"></span>
Kelembapan Udara
</p>
<div class="value"><span id="kelembapan">--</span><small>%</small></div>
<p id="statusKelembapan" class="status">Memuat data...</p>
<div class="progress-info">
<span>Level kelembapan</span>
<span id="persenKelembapan">0%</span>
</div>
<div class="progress-bar">
<div id="barKelembapan" class="progress-fill kelembapan-fill"></div>
</div>
<p class="limit">Batas alarm: > 50%</p>
</article>

<article class="card">
<p class="card-heading">
<span class="card-icon icon-status"></span>
Status Ruangan
</p>
<h2 id="statusOkupansi">Memeriksa sensor PIR...</h2>
<div class="occupancy-indicator">
<span id="occupancyDot" class="occupancy-dot"></span>
<span id="occupancyLabel">Memeriksa sensor...</span>
</div>
<p id="detailOkupansi" class="status">
Menunggu data sensor gerakan
</p>
</article>
</section>

<section class="panel">
<h2>Grafik Monitoring</h2>
<p class="subtitle">Perubahan pembacaan sensor yang diterima website</p>
<canvas id="grafik"></canvas>
</section>

<section class="panel">
<h2>Riwayat Alarm</h2>
<p class="subtitle">
Riwayat peringatan suhu dan kelembapan dari ThingsBoard
</p>
<div id="alarmList">
<p>Memuat riwayat alarm...</p>
</div>
<p id="statusSistem">Menghubungkan ke ThingsBoard...</p>
<p id="waktuUpdate" class="subtitle">Menunggu data pertama...</p>
</section>
</main>

<footer>SmartClass Virtual Monitoring · ESP32 + DHT22</footer>

<div id="alarmPopup" class="alarm-popup" hidden>
<div class="alarm-popup-icon">⚠️</div>
<div class="alarm-popup-content">
<strong id="alarmPopupTitle">PERINGATAN SMARTCLASS</strong>
<p id="alarmPopupMessage">Alarm sensor terdeteksi.</p>
</div>
<button id="stopAlarmSound" type="button">
Hentikan suara
</button>
</div>

<button id="enableAlarmSound" class="sound-toggle" type="button">
 Aktifkan Suara Alarm
</button>

<script src="script.js"></script>
</body>
</html>

3.5 Dashboard ThingsBoard

Dashboard dibuat untuk menampilkan kondisi ruang kelas secara visual. Dashboard SmartClass Monitoring di ThingsBoard berisi kartu nilai terbaru serta grafik suhu dan kelembapan terhadap waktu. Pada pengujian awal, kartu menampilkan 33°C dan 53,5%, sedangkan grafik menampilkan 33,1°C karena kartu membulatkan nilai.

Selain itu, data juga ditampilkan pada website SmartClass Monitoring di localhost:3000 yang menerima data dari ThingsBoard. Website memiliki kartu Suhu Ruangan, Kelembapan Udara, dan Status Ruangan, masing-masing dengan keterangan kondisi, level, dan batas alarm. Status Ruangan berubah antara “Tidak Ada Gerakan” (hijau) dan “Gerakan Terdeteksi” (merah) sesuai sensor PIR. Di bawahnya terdapat grafik monitoring dan Riwayat Alarm. Saat alarm aktif, website menampilkan pop-up “PERINGATAN SMARTCLASS” dan dapat membunyikan suara alarm.

3.6 Skenario Pengujian

Pengujian dilakukan dengan mengubah nilai suhu dan kelembapan pada slider DHT22 serta menekan tombol Simulate motion pada Wokwi, lalu mengamati Serial Monitor, dashboard, danemail. Skenario dan hasilnya ditunjukkan pada tabel berikut.

No.SkenarioPengaturanHasil yang DiharapkanHasil
1Koneksi dan pengiriman dataJalankan simulasi dengan token benarSerial Monitor menampilkan “Berhasil!” dan “Data berhasil dikirim!”; device berstatus ActiveSesuai
2Pengujian awal normal23,9°C, 49%Tidak ada alarmSesuai
3Pengujian awal melewati batas33,1°C, 53,5%Alarm Suhu dan Kelembapan munculSesuai
4Kondisi 114,7°C, 49,5%, tidak ada gerakanNormal, tidak ada alarmSesuai
5Kondisi 223,2°C, 37,5%, gerakan terdeteksiNormal, status ruangan “Gerakan Terdeteksi”, tidak ada alarmSesuai
6Kondisi 331,0°C, 37,5%, gerakan terdeteksiAlarm Suhu aktif, pop-up, dan email terkirimSesuai
7Kondisi 45,5°C, 53,5%, tidak ada gerakanAlarm Kelembapan aktif, pop-up, dan email terkirim; Alarm Suhu ClearedSesuai

Pada Kondisi 3, suhu 31,0°C memicu Alarm Suhu pukul 22.17.52, dan email diterima dengan waktu kejadian 22.17.53 WIB. Pada Kondisi 4, kelembapan 53,5% memicu Alarm Kelembapan pukul 22.19.30 (email 22.19.32 WIB), sementara Alarm Suhu sebelumnya berubah menjadi Cleared karena suhu turun ke 5,5°C. Hasil menunjukkan alarm hanya muncul ketika suhu atau kelembapan melewati ambang, sedangkan status gerakan tidak memicu alarm.

Secara keseluruhan sistem berhasil membaca suhu, kelembapan, dan gerakan, mengirimnya ke ThingsBoard melalui MQTT, menampilkannya pada dashboard, serta memicu alarm dan email sesuai ambang. Kendala dan keterbatasan yang ditemui adalah alarm yang berubah ke Cleared segera setelah nilai kembali normal sehingga harus diamati tepat waktu, website dashboard yang hanya berjalan di localhost, akun ThingsBoard Cloud berstatus Free dengan fitur terbatas, dan nilai sensor yang diatur manual lewat slider simulasi, bukan dari kondisi ruang kelas sebenarnya.

BAB IV
PENUTUP

4.1 Kesimpulan

Berdasarkan hasil implementasi dan pengujian SmartClass Virtual Monitoring, dapat disimpulkan bahwa sistem pemantauan suhu, kelembapan, dan gerakan ruangan dapat disimulasikan menggunakan ESP32, sensor DHT22, dan sensor PIR melalui platform Wokwi. Sensor DHT22 dihubungkan ke GPIO 15 untuk membaca suhu dan kelembapan, sedangkan sensor PIR dihubungkan ke GPIO 27 untuk mendeteksi gerakan.

Data hasil pembacaan sensor berhasil dikirim ke ThingsBoard Cloud menggunakan protokol MQTT dengan access token sebagai username. Data dikirim setiap lima detik dalam format JSON yang memuat key suhu, kelembapan, dan occupied. Pada ThingsBoard, device SmartClass-ESP32 berstatus Active dan nilai telemetry terakhirnya sesuai dengan keluaran Serial Monitor.

Data yang diterima ditampilkan pada dashboard ThingsBoard dan pada website monitoring di localhost:3000. Website menampilkan kartu suhu, kelembapan, dan status ruangan, grafik monitoring, serta riwayat alarm. Dengan tampilan tersebut, kondisi ruang kelas dapat dipantau tanpa membaca data mentah dari perangkat.

Alarm dikonfigurasi dengan dua aturan, yaitu High Temperature untuk suhu lebih dari 30°C dan High Humidity untuk kelembapan lebih dari 50%, keduanya bertingkat keparahan Major. Pengujian empat kondisi menunjukkan bahwa alarm hanya muncul ketika nilai melewati ambang, yaitu Alarm Suhu pada suhu 31,0°C dan Alarm Kelembapan pada kelembapan 53,5%. Pada kondisi normal (14,7°C/49,5% dan 23,2°C/37,5%) tidak ada alarm. Status gerakan dari sensor PIR hanya menjadi informasi tambahan dan tidak memicu alarm. Ketika alarm muncul, website menampilkan pop-up peringatan dan email notifikasi diterima beberapa detik kemudian. Alarm otomatis berstatus Cleared ketika nilai kembali normal.

Kendala dan keterbatasan yang ditemui adalah alarm yang cepat berubah ke Cleared ketika nilai kembali normal, website yang hanya berjalan di localhost, akun ThingsBoard Cloud berstatus Free dengan fitur terbatas, serta nilai sensor yang diatur manual melalui simulasi, bukan dari kondisi ruang kelas sebenarnya.

Dengan demikian, proyek ini menunjukkan penerapan konsep Internet of Things untuk pemantauan kondisi ruangan melalui simulasi dan layanan berbasis cloud. Namun, pengujian lebih lanjut masih diperlukan.

4.2 Saran

Pengembangan SmartClass Virtual Monitoring selanjutnya dapat dilakukan dengan menguji sistem menggunakan perangkat keras ESP32, sensor DHT22, dan sensor PIR secara langsung agar hasilnya dapat dibandingkan dengan simulasi Wokwi. Pengujian juga perlu dilakukan dalam jangka waktu yang lebih panjang untuk mengetahui kestabilan pembacaan sensor dan pengiriman data ke ThingsBoard Cloud.

Selain itu, website monitoring dapat dipublikasikan pada layanan hosting agar dapat diakses dari perangkat lain, dan pengiriman data dapat menggunakan MQTT over TLS (port 8883) agar lebih aman. Access token, kata sandi, dan kredensial email sebaiknya disimpan terpisah dari kode program dan tidak dibagikan pada dokumen publik. Konfigurasi alarm dan notifikasi juga perlu diperiksa secara berkala untuk memastikan setiap alarm muncul sesuai ambang yang ditetapkan dan email diterima oleh penerima. Pengembangan berikutnya dapat mencakup penambahan sensor, penyempurnaan tampilan dashboard, pemanfaatan status gerakan untuk fitur lain (misalnya penghematan listrik saat ruangan kosong), dan pengujian pada kondisi ruangan yang sebenarnya.

DAFTAR PUSTAKA

EspressifSystems.(n.d.).ESP32seriesdatasheet. https://www.espressif.com/en/support/documents/technical-documents

OASIS.(2014).MQTTversion3.1.1. https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html

ThingsBoard.(n.d.).Alarmsandnotifications. https://thingsboard.io/docs/concepts/alarms-and-notifications/

ThingsBoard.(n.d.).Telemetry—MQTTAPI. https://thingsboard.io/docs/reference/mqtt-api/telemetry/

Wokwi.(n.d.).ESP32 WiFi networking. https://docs.wokwi.com/guides/esp32-wifi

LAMPIRAN

Link video presentasi: https://drive.google.com/drive/folders/1J1QAZRnRgFWiTQZJXrWFaoY6KiOcyvcA

Lampiran 1. Rangkaian ESP32, DHT 22 dan PIR Motion Sensor
Lampiran 2. Tampilan Dashboard Utama Pemantauan Real-Time
Lampiran 3. Grafik Monitoring Fluktuasi Sensor
Lampiran 4. Log Riwayat Alarm Suhu dan Kelembapan pada Website Monitoring
Lampiran 5. Notifikasi Email

Tidak ada komentar:

Posting Komentar