Minggu, 18 Oktober 2026

LAPORAN PRAKTIKUM SIMULASI SISTEM KEAMANAN ANTI-MALING MENGGUNAKAN ESP32, SENSOR PIR, DAN PROTOKOL MQTT DI PLATFORM WOKWI YANG TERINTEGRASI DENGAN THINGSBOARD

LAPORAN PRAKTIKUM SIMULASI SISTEM KEAMANAN ANTI-MALING MENGGUNAKAN ESP32, SENSOR PIR, DAN PROTOKOL MQTT DI PLATFORM WOKWI YANG TERINTEGRASI DENGAN THINGSBOARD

Disusun Oleh:

Muhamad Fauzan(24051204013)
Julian Esa Mahendra Putra(24051204018)
Rahman Abror Zati(24051204019)
Firmas Ferdiansya(24051204025)

BAB I
PENDAHULUAN

1.1 Latar Belakang

Keamanan ruangan merupakan kebutuhan penting di berbagai lingkungan, seperti rumah tinggal, perkantoran, toko, hingga ruang penyimpanan data. Pengamanan yang hanya mengandalkan penjagaan manual memiliki keterbatasan, sebab pengawasan tidak dapat dilakukan setiap waktu dan pemilik ruangan tidak selalu berada di lokasi. Karena itu, dibutuhkan sistem yang mampu mendeteksi gerakan mencurigakan secara otomatis dan memberi peringatan dengan cepat. Perkembangan teknologi Internet of Things (IoT) memungkinkan hal tersebut dilakukan melalui mikrokontroler yang terhubung ke internet. Dengan sensor gerak, sistem dapat mendeteksi keberadaan seseorang di dalam ruangan, menyalakan peringatan lokal berupa lampu dan alarm, serta mengirimkan status keamanan ke cloud sehingga dapat dipantau dari jarak jauh. Pengembangan sistem seperti ini juga semakin mudah berkat simulator berbasis web seperti Wokwi, yang memungkinkan perancangan dan pengujian rangkaian tanpa komponen fisik. Sementara itu, platform ThingsBoard menyediakan sarana untuk menerima, menyimpan, dan menampilkan data telemetri dari perangkat IoT secara real-time. Berdasarkan latar belakang tersebut, kelompok kami merancang simulasi sistem keamanan anti-maling menggunakan mikrokontroler ESP32, sensor gerak PIR, lampu LED, dan buzzer pada platform Wokwi. Status keamanan dari simulasi tersebut dikirimkan melalui protokol MQTT ke ThingsBoard untuk dipantau.

Selain pengiriman data, sistem keamanan yang baik perlu menyajikan informasi secara mudah dibaca dan memberi tahu pemilik secara aktif ketika terjadi kejadian mencurigakan. Karena itu, pada tahap lanjutan kelompok kami menambahkan fitur dashboard untuk visualisasi data, rule chain untuk mengolah telemetri menjadi alarm secara otomatis, serta notifikasi email agar pemilik segera mengetahui adanya gerakan mencurigakan walaupun tidak sedang membuka ThingsBoard.

1.2 Rumusan Masalah

1.Bagaimana merancang simulasi rangkaian sistem keamanan anti-maling menggunakan ESP32, sensor PIR, LED, dan buzzer di platform Wokwi?

2.Bagaimana memprogram ESP32 agar dapat menyalakan lampu dan alarm secara lokal ketika sensor mendeteksi gerakan?

3.Bagaimana mengonfigurasi koneksi ESP32 ke ThingsBoard melalui protokol MQTT agar status keamanan dapat dikirim dan dipantau secara real-time?

4.Bagaimana memvisualisasikan status keamanan melalui dashboard dan widget pada ThingsBoard?

5.Bagaimana membuat rule chain yang dapat membuat dan menghapus alarm secara otomatis berdasarkan data telemetri?

6.Bagaimana mengirimkan notifikasi alarm ke email pengguna ketika gerakan terdeteksi?

1.3 Tujuan Laporan

1.Merancang simulasi sistem keamanan anti-maling berbasis ESP32 dan sensor gerak PIR di platform Wokwi.

2.Memahami cara kerja pengiriman data dari perangkat IoT ke cloud menggunakan protokol MQTT.

3.Menerapkan konfigurasi perangkat pada ThingsBoard untuk menerima dan menampilkan data status keamanan.

4.Membuat dashboard dengan kartu status keamanan (value card) pada ThingsBoard.

5.Merancang rule chain untuk membuat dan menghapus alarm secara otomatis berdasarkan nilai telemetri.

6.Mengonfigurasi pengiriman notifikasi email otomatis saat alarm baru dibuat.

1.4 Manfaat Penulisan

Penyusunan laporan praktikum ini diharapkan dapat memberikan manfaat yang komprehensif, baik secara teoritis maupun praktis, di antaranya adalah:

•Bagi mahasiswa, laporan ini menjadi sarana untuk memperdalam pemahaman tentang konsep IoT, pemrograman mikrokontroler, pembacaan sensor, dan integrasi data ke cloud.

•Bagi dunia pendidikan, laporan ini dapat menjadi referensi praktikum IoT berbasis simulasi yang tidak terkendala biaya pengadaan komponen fisik.

•Bagi masyarakat umum, konsep dalam laporan ini dapat dikembangkan menjadi sistem keamanan rumah pintar (smart home) yang praktis dan terjangkau.

BAB II
TINJAUAN PUSTAKA

2.1 Dasar Teori

Internet of Things (IoT)

Internet of Things (IoT) merupakan konsep yang menghubungkan berbagai perangkat fisik dengan jaringan internet sehingga perangkat tersebut dapat saling bertukar data dan dipantau secara jarak jauh.

Platform Simulasi Wokwi

Wokwi adalah simulator perangkat keras dan sirkuit elektronik daring yang digunakan untuk mensimulasikan sistem IoT. Wokwi mendukung berbagai mikrokontroler seperti Arduino dan ESP32, memungkinkan pengguna untuk menulis kode dan melihat hasilnya secara langsung di peramban web tanpa hardware fisik.

Mikrokontroler ESP32

ESP32 adalah mikrokontroler berbiaya rendah dan hemat daya yang sudah terintegrasi dengan fitur komunikasi nirkabel Wi-Fi dan Bluetooth. Dalam simulasi ini, ESP32 berfungsi sebagai klien yang memproses data sensor dan mengirimkannya ke internet.

Sensor Gerak PIR (Passive Infrared)

Sensor PIR mendeteksi perubahan radiasi inframerah yang dipancarkan tubuh manusia atau benda hangat yang bergerak di dalam jangkauannya. Ketika gerakan terdeteksi, sensor mengeluarkan sinyal digital HIGH pada pin keluarannya, dan kembali LOW saat tidak ada gerakan.

LED dan Buzzer

LED berfungsi sebagai indikator peringatan visual, sedangkan buzzer berfungsi sebagai alarm suara. Keduanya dikendalikan oleh ESP32 melalui pin keluaran digital.

Protokol MQTT

MQTT (Message Queuing Telemetry Transport) adalah protokol komunikasi ringan berbasis model publish/subscribe yang banyak digunakan pada IoT. Perangkat mengirim (publish) pesan ke sebuah topik pada broker, kemudian broker meneruskannya ke pihak yang berlangganan. Pada simulasi ini, library PubSubClient digunakan sebagai klien MQTT di ESP32.

ThingsBoard

ThingsBoard adalah platform IoT open-source untuk pengumpulan data, pemrosesan, visualisasi, dan manajemen perangkat. Pada simulasi ini, ThingsBoard Cloud berfungsi sebagai MQTT broker sekaligus tempat data telemetri ditampilkan.

Dashboard dan Widget

Dashboard adalah halaman antarmuka pada ThingsBoard yang menampilkan data perangkat secara visual. Isi dashboard disusun dari widget, yaitu komponen tampilan seperti kartu nilai, grafik time series, dan tabel alarm. Setiap widget mengambil data dari perangkat melalui data key, yaitu nama kunci telemetri yang dikirim perangkat.

Entity Alias

Entity alias adalah penghubung antara dashboard dan perangkat tertentu. Dengan alias, widget pada dashboard mengetahui perangkat mana yang menjadi sumber datanya.

Rule Chain

Rule chain adalah alur pemrosesan pesan pada ThingsBoard yang tersusun dari beberapa node. Setiap pesan telemetri yang masuk melewati node-node tersebut untuk disaring, diubah, disimpan, atau diteruskan. Hubungan antar node ditentukan oleh relasi yang dihasilkan tiap node, misalnya “critical”, “normal”, dan “Success”.

Alarm

Alarm adalah penanda kejadian penting yang dibuat ThingsBoard berdasarkan kondisi tertentu. Alarm memiliki tipe, tingkat keparahan (severity), dan status, misalnya Active saat kondisi berbahaya sedang berlangsung dan Cleared setelah kondisi kembali normal.

Notifikasi Email

Notifikasi email adalah pengiriman pesan otomatis ke alamat email pengguna. Pada ThingsBoard, hal ini dilakukan melalui node to email untuk menyusun isi pesan dan node send email untuk mengirimkannya.

2.2 Komponen

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

NoKomponenFungsi
1ESP32 DevKit C V4Mikrokontroler utama yang membaca sensor, mengendalikan LED dan buzzer, serta mengirim data ke ThingsBoard.
2Sensor PIRMendeteksi gerakan di dalam ruangan dan mengirim sinyal digital ke ESP32.
3LED MerahIndikator visual peringatan saat gerakan terdeteksi.
4Resistor 220 ΩMembatasi arus yang mengalir ke LED agar tidak rusak.
5BuzzerAlarm suara saat gerakan terdeteksi.
6Wokwi Virtual WiFi (SSID “Wokwi-GUEST”)Menyediakan akses internet bagi ESP32 dalam lingkungan simulasi.
7Library PubSubClientMenyediakan fungsi klien MQTT pada ESP32.
8ThingsBoard CloudBroker MQTT sekaligus platform penerima dan penampil data telemetri.
9Dashboard ThingsBoardMenampilkan status keamanan (“Aman” atau “Bahaya”) secara real-time melalui widget Value card.
10Rule Chain Keamanan_AlarmMemeriksa setiap telemetri, lalu membuat alarm saat gerakan terdeteksi dan menghapusnya saat kondisi kembali aman.
11Layanan email (SMTP bawaan ThingsBoard Cloud)Mengirim notifikasi email otomatis saat gerakan terdeteksi.

BAB III
PEMBAHASAN

3.1 Penjelasan Simulasi

Sistem yang dibuat adalah simulasi keamanan anti-maling yang menggunakan ESP32 sebagai pengendali utama, sensor PIR sebagai pendeteksi gerakan, serta LED dan buzzer sebagai peringatan lokal. Sistem terhubung ke ThingsBoard melalui WiFi dan protokol MQTT sehingga status keamanan dapat dipantau dari mana saja selama terhubung ke internet.

a.Konfigurasi ThingsBoard
Tahap pertama adalah membuat perangkat pada ThingsBoard Cloud melalui menu Devices & assets > Devices dengan tombol Add device > Add new device. Perangkat diberi nama Sensor Maling dengan device profile default. Pada bagian credentials, tipe autentikasi diubah dari Access token menjadi MQTT Basic dengan Client ID keamanan_iot_01, User Name keamanan, dan Password aman12345. Kredensial ini kemudian digunakan pada program di Wokwi.

b.Rangkaian di Wokwi
Rangkaian dibuat pada proyek ESP32 di Wokwi dan dikonfigurasi melalui berkas diagram.json agar penyambungan kabel tidak keliru. Rincian koneksi pin adalah sebagai berikut:

KomponenPin KomponenPin ESP32
Sensor PIROUTGPIO 13
Sensor PIRVCCPin 5 (sumber daya)
Sensor PIRGNDGND
LED MerahAnoda (A)GPIO 12
LED MerahKatoda (C)GND (melalui resistor 220 Ω)
BuzzerPin 1GPIO 14
BuzzerPin 2GND
Gambar 3.1. Skema rangkaian ESP32, sensor PIR, LED, dan buzzer pada Wokwi.

c.Instalasi Library

Sebelum program ditulis, library yang dibutuhkan dipasang melalui tab Library Manager pada Wokwi. Library yang digunakan adalah PubSubClient, yaitu klien MQTT untuk Arduino dan ESP32 yang memungkinkan perangkat mengirim (publish) pesan ke broker. Pada proyek ini, library tersebut menjadi satu-satunya library tambahan yang terpasang (Gambar 3.2). Library WiFi tidak perlu dipasang terpisah karena sudah tersedia bawaan pada platform ESP32. Setelah library terpasang, Wokwi mencatatnya secara otomatis pada berkas libraries.txt sehingga proyek dapat dijalankan ulang tanpa konfigurasi tambahan.

Gambar 3.2. Tampilan Library Manager pada Wokwi yang menunjukkan library PubSubClient telah terpasang.

d.Cara Kerja Sistem
Saat dinyalakan, ESP32 menginisialisasi komunikasi serial dengan baud rate 115200, mengatur pin PIR sebagai masukan, serta pin LED dan buzzer sebagai keluaran. ESP32 kemudian terhubung ke jaringan WiFi Wokwi-GUEST dan mengatur alamat server MQTT mqtt.thingsboard.cloud pada port 1883.

Setelah itu, ESP32 melakukan koneksi ke broker ThingsBoard menggunakan client ID, username, dan password yang telah dibuat. Jika koneksi berhasil, Serial Monitor menampilkan pesan “Thingsboard is Connected !!”. Jika gagal, fungsi reconnect() menampilkan kode kesalahan (return code) dan mencoba kembali setiap 5 detik tanpa perlu restart manual.

Pada fungsi loop(), ESP32 terus membaca keluaran sensor PIR dan membandingkannya dengan kondisi sebelumnya. Data hanya dikirim ketika terjadi perubahan kondisi, bukan terus-menerus. Ketika sensor mendeteksi gerakan, ESP32 menyalakan LED dan buzzer serta mengirim payload JSON berisi status_keamanan bernilai “Bahaya” dan gerakan_terdeteksi bernilai 1 ke topik v1/devices/me/telemetry. Ketika gerakan berhenti, LED dan buzzer dimatikan, lalu ESP32 mengirim payload dengan status_keamanan bernilai “Aman” dan gerakan_terdeteksi bernilai 0.

Alur kerja pemrosesan data secara keseluruhan adalah:

•PIR → ESP32 → LED dan Buzzer (peringatan lokal).

•PIR → ESP32 → WiFi → MQTT Broker (ThingsBoard Cloud) → Latest telemetry ThingsBoard (pemantauan jarak jauh).

3.2 Kode Program

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

#define PIR_PIN 13
#define LED_PIN 12
#define BUZZER_PIN 14

const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "mqtt.thingsboard.cloud";
const char* mqtt_clid = "keamanan_iot_01"; // Sesuai ThingsBoard
const char* mqtt_user = "keamanan"; // Sesuai ThingsBoard
const char* mqtt_pass = "aman12345"; // Sesuai ThingsBoard
const char* mqtt_topic = "v1/devices/me/telemetry";

WiFiClient espClient;
PubSubClient client(espClient);
int lastPirState = LOW;

void setup_wifi() {
delay(10);
Serial.print("\nConnecting to "); Serial.println(ssid);
WiFi.mode(WIFI_STA);
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(mqtt_clid, mqtt_user, mqtt_pass)) {
Serial.println("Thingsboard is Connected !!");
} else {
Serial.print("failed, rc="); Serial.print(client.state());
delay(5000);
}
}
}

void setup() {
Serial.begin(115200);
pinMode(PIR_PIN, INPUT); pinMode(LED_PIN, OUTPUT); pinMode(BUZZER_PIN, OUTPUT);
setup_wifi();
client.setServer(mqtt_server, 1883);
}

void loop() {
if (!client.connected()) reconnect();
client.loop();
int currentPirState = digitalRead(PIR_PIN);
if (currentPirState != lastPirState) {
lastPirState = currentPirState;
if (currentPirState == HIGH) { // gerakan terdeteksi
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER_PIN, HIGH);
client.publish(mqtt_topic, "{\"status_keamanan\":\"Bahaya\",\"gerakan_terdeteksi\":1}");
Serial.println("AWAS! Gerakan terdeteksi.");
} else { // kondisi kembali aman
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
client.publish(mqtt_topic, "{\"status_keamanan\":\"Aman\",\"gerakan_terdeteksi\":0}");
Serial.println("Kondisi aman.");
}
}
}

3.3 Penjelasan Alur Kerja Program

Sistem dikendalikan oleh ESP32 dengan program yang disusun menggunakan kerangka Arduino pada simulator Wokwi. Berikut alur kerjanya:

1.Inisialisasi Perangkat dan Jaringan: Pada setup(), komunikasi serial dimulai dengan baud rate 115200. Pin PIR diatur sebagai masukan, sedangkan pin LED dan buzzer diatur sebagai keluaran. ESP32 kemudian menjalankan setup_wifi() untuk terhubung ke WiFi Wokwi-GUEST, lalu menetapkan alamat broker mqtt.thingsboard.cloud pada port 1883.

2.Koneksi Cloud MQTT: Pada awal loop(), ESP32 memeriksa apakah koneksi ke ThingsBoard masih aktif. Jika belum atau terputus, fungsi reconnect() mencoba melakukan autentikasi dengan Client ID, User Name, dan Password MQTT Basic. Jika gagal, sistem menampilkan kode kesalahan (return code) dan mengulang percobaan setiap 5 detik. Fungsi client.loop() dipanggil terus-menerus agar koneksi MQTT tetap terjaga.

3.Pembacaan Sensor: ESP32 membaca keluaran sensor PIR menggunakan digitalRead() dan membandingkannya dengan nilai pada lastPirState. Tindakan hanya dijalankan ketika kondisi berubah, sehingga data tidak dikirim berulang-ulang saat kondisi tetap.

4.Saat Gerakan Terdeteksi (HIGH): LED dinyalakan dan buzzer diaktifkan dengan digitalWrite(BUZZER_PIN, HIGH) sehingga berbunyi secara konstan. Payload JSON {"status_keamanan":"Bahaya","gerakan_terdeteksi":1} dikirim ke ThingsBoard, dan Serial Monitor menampilkan pesan “AWAS! Gerakan terdeteksi.”

5.Saat Kondisi Kembali Normal (LOW): LED dan buzzer dimatikan dengan digitalWrite(..., LOW). Payload {"status_keamanan":"Aman","gerakan_terdeteksi":0} dikirim ke ThingsBoard, dan Serial Monitor menampilkan pesan “Kondisi aman.”

6.Pembaruan Kondisi: Pada awal blok perubahan, nilai lastPirState langsung diperbarui dengan kondisi terbaru sehingga data hanya dikirim satu kali setiap terjadi perubahan kondisi sensor, bukan terus-menerus.

3.4 Hasil Pengujian dan Validasi

Pengujian dilakukan dengan menjalankan simulasi melalui tombol Play pada Wokwi. Hasil pengujian dijabarkan sebagai berikut:

1.Verifikasi koneksi jaringan dan broker.
Setelah simulasi dijalankan, Serial Monitor menampilkan teks “Connecting to Wokwi-GUEST” yang diikuti tanda titik selama proses penyambungan. Setelah itu muncul teks “WiFi connected”, dilanjutkan “Attempting MQTT connection...Thingsboard is Connected !!”. Hal ini menunjukkan ESP32 berhasil terhubung ke jaringan WiFi virtual dan ke broker MQTT ThingsBoard (Gambar 3.3).

Gambar 3.3. Tampilan simulasi Wokwi dan Serial Monitor yang menunjukkan koneksi WiFi dan ThingsBoard berhasil.

2.Simulasi intrusi.
Sensor PIR diklik sehingga muncul panel PIR Motion Sensor (Gambar 3.4), lalu tombol Simulate motion ditekan untuk meniru adanya gerakan di dalam ruangan. Sistem merespons dengan menampilkan pesan “AWAS! Gerakan terdeteksi.” pada Serial Monitor, disertai menyalanya LED merah dan berbunyinya buzzer secara konstan sebagai peringatan lokal.

Gambar 3.4. Panel PIR Motion Sensor dengan tombol Simulate motion pada Wokwi.

3.Pemulihan kondisi.
Setelah simulasi gerakan dimatikan, Serial Monitor menampilkan pesan “Kondisi aman.” dan sistem kembali ke keadaan normal, dengan LED dan buzzer padam (Gambar 3.5).

Gambar 3.5. Serial Monitor menampilkan pesan “AWAS! Gerakan terdeteksi.” dan “Kondisi aman.” saat pengujian sensor PIR.

4.Validasi data di cloud.
Pada halaman detail perangkat Sensor Maling di ThingsBoard, tab Latest telemetry menampilkan dua kunci data, yaitu status_keamanan dan gerakan_terdeteksi. Pada saat pengambilan tangkapan layar, kunci status_keamanan bernilai “Aman” dan gerakan_terdeteksi bernilai 0, yang menunjukkan bahwa sistem telah mengirim ulang status normal setelah gerakan berhenti. Kedua data tercatat pada waktu yang sama, yaitu 2026-10-10 18:22:48 (Gambar 3.6). Saat gerakan terdeteksi, kedua kunci tersebut berubah menjadi “Bahaya” dan 1 sesuai payload yang dikirim program.

Gambar 3.6. Tab Latest telemetry pada perangkat Sensor Maling di ThingsBoard yang menampilkan kunci status_keamanan dan gerakan_terdeteksi.

Dengan demikian, kondisi pada perangkat simulasi dan pada antarmuka pemantauan ThingsBoard terbukti sinkron dan berjalan secara real-time.

3.5 Dashboard dan Widget

Dashboard digunakan untuk memvisualisasikan data telemetri dari ESP32 secara real-time. Dashboard dibuat melalui menu Monitor > Dashboards dengan tombol + Add dashboard > Create new dashboard, lalu diberi nama Dashboard_Keamanan_Kelompok4 (Gambar 3.7).

Gambar 3.7. Dialog Add dashboard dengan judul Dashboard_Keamanan_Kelompok4.

a.Entity Alias

Agar dashboard dapat membaca data perangkat, dibuat sebuah entity alias bernama Device_Keamanan dengan tipe filter Single entity (tipe Device) yang menunjuk ke perangkat Sensor Maling. Widget kemudian memakai alias ini sebagai sumber data.

b.Widget Status Keamanan

Dashboard memuat satu widget, yaitu Value card dari kategori Cards (mode Basic). Data diambil dari entity alias Device_Keamanan dengan data key status_keamanan, sehingga kartu menampilkan nilai terkini “Aman” atau “Bahaya” setiap kali status sensor PIR berubah. Alarm yang dibuat oleh rule chain dilihat melalui menu Monitor > Alarms (Subbab 3.6).

Agar data key dapat dipilih pada widget, simulasi Wokwi dijalankan dan gerakan dipicu minimal satu kali sehingga kunci status_keamanan dan gerakan_terdeteksi sudah terdaftar di ThingsBoard.

Pada kondisi aman, kartu status menampilkan “Aman” (Gambar 3.8). Saat gerakan terdeteksi, kartu status berubah menjadi “Bahaya” (Gambar 3.9).

Gambar 3.8. Dashboard keamanan pada kondisi aman.
Gambar 3.9. Dashboard keamanan pada kondisi bahaya (gerakan terdeteksi).

3.6 Rule Chain dan Alarm

Rule chain bernama Keamanan_Alarm dibuat melalui menu Data processing > Rule chains untuk memeriksa setiap telemetri yang masuk. Jika gerakan_terdeteksi bernilai 1, rule chain membuat alarm berstatus Critical. Jika bernilai 0, alarm yang aktif dihapus (clear). Rancangan alurnya ditunjukkan pada Gambar 3.10.

Gambar 3.10. Rancangan rule chain Keamanan_Alarm untuk membuat dan menghapus alarm (node email ditambahkan pada Subbab 3.7).

a.Node Switch (setAlarm)

Node ini berfungsi sebagai pemilah kondisi. Node switch diambil dari kategori Filter dan diprogram dengan TBEL. Skrip yang digunakan mengembalikan relasi “critical” jika msg.gerakan_terdeteksi bernilai 1, dan relasi “normal” jika bernilai selain itu (Gambar 3.11):

if (msg.gerakan_terdeteksi == 1) {
return ['critical'];
} else {
return ['normal'];
}
Gambar 3.11. Skrip TBEL pada node switch setAlarm.

Skrip diuji dengan fitur Test pada editor (Gambar 3.12). Pesan {"gerakan_terdeteksi": 1} menghasilkan keluaran ["critical"], sedangkan nilai 0 menghasilkan ["normal"]. Nama relasi harus ditulis persis sama dengan yang dikembalikan skrip, yaitu huruf kecil.

Gambar 3.12. Pengujian skrip dengan pesan {"gerakan_terdeteksi": 0} yang menghasilkan keluaran ["normal"].

b.Node Create Alarm (critical)

Node ini membuat alarm baru dengan Alarm type General Alarm (nilai bawaan) dan severity Critical. Node ini dihubungkan dari setAlarm melalui relasi “critical”.

c.Node Clear Alarm (clear)

Node ini menghapus alarm yang sedang aktif. Alarm type-nya harus sama persis dengan pada node create alarm, yaitu General Alarm, agar alarm yang dibuat dapat dihapus. Node ini dihubungkan dari setAlarm melalui relasi “normal”.

d.Penyambungan ke Root Rule Chain

Rule chain baru tidak otomatis menerima data dari perangkat. Karena itu, Keamanan_Alarm disambungkan dari Root Rule Chain menggunakan node rule chain pada kategori Flow. Node Message Type Switch dihubungkan ke node tersebut dengan relasi Post telemetry. Garis Post telemetry yang sudah menuju Save Timeseries tidak dihapus sehingga data tetap tersimpan dan sekaligus diproses untuk alarm (Gambar 3.13).

Gambar 3.13. Root Rule Chain yang telah tersambung ke Keamanan_Alarm.

e.Pengujian Alarm

Saat Simulate motion ditekan di Wokwi, halaman Monitor > Alarms menampilkan baris baru dengan originator Sensor Maling, tipe “General Alarm”, severity “Critical”, dan status Active Unacknowledged (Gambar 3.14). Setelah simulasi gerakan dimatikan, dalam beberapa detik alarm berubah menjadi Cleared, yang tercatat pada panel Notification (Gambar 3.15).

Gambar 3.14. Halaman Monitor > Alarms saat gerakan terdeteksi (status Active Unacknowledged).
Gambar 3.15. Panel Notification yang menampilkan alarm “General Alarm” baru (Critical) dan alarm yang telah cleared.

3.7 Notifikasi Email

Notifikasi email ditambahkan pada rule chain Keamanan_Alarm agar pemilik mendapat pemberitahuan langsung saat terjadi gerakan mencurigakan. Email dihubungkan dari relasi critical pada node setAlarm. Karena telemetri hanya dikirim ketika status PIR berubah, email hanya terkirim satu kali untuk setiap kejadian gerakan dan tidak berulang selama gerakan masih terdeteksi.

a.Node To Email (critical)

Node ini menyusun isi email dengan konfigurasi berikut (Gambar 3.16 dan Gambar 3.17):

PengaturanIsi
Fromnoreply@thingsboard.cloud (alamat pengirim bawaan ThingsBoard Cloud)
ToAlamat email penerima (email kelompok)
SubjectPERHATIAN ! ${deviceName} terdeteksi gerakan mencurigakan
Mail body typePlain text
BodyHarap diperhatikan ! Device: ${deviceName} mendeteksi gerakan. Status saat ini: $[status_keamanan]

Sintaks ${...} mengambil nilai dari metadata pesan, misalnya nama perangkat, sedangkan $[...] mengambil nilai dari isi pesan, misalnya $[status_keamanan]. Karena email dihubungkan langsung dari node setAlarm, isi pesan masih berupa data telemetri dari ESP32 sehingga kunci status_keamanan dapat dipakai pada isi email.

Gambar 3.16. Konfigurasi node to email: pengirim dan penerima (alamat penerima disamarkan).
Gambar 3.17. Konfigurasi node to email: subject dan isi pesan.

b.Node Send Email (critical)
Node ini mengirim email yang sudah disusun dan dihubungkan dari node to email dengan relasi Success. Pengaturan server surat dibiarkan bawaan (Use system SMTP settings) sehingga tidak perlu konfigurasi SMTP tambahan.

c.Alur Akhir Rule Chain
Alur akhirnya adalah: Input → setAlarm → (critical) create alarm; setAlarm → (critical) to email → (Success) send email; dan setAlarm → (normal) clear alarm (Gambar 3.18).

Gambar 3.18. Rancangan akhir rule chain Keamanan_Alarm dengan node to email dan send email.

d.Batasan Paket Gratis
Pada paket uji coba ThingsBoard Cloud, kuota email sekitar 100 per bulan dan alarm yang dibuat sekitar 200 per bulan. Karena itu, pemicuan gerakan sebaiknya tidak dilakukan berulang tanpa perlu agar kuota tidak cepat habis.

Hasil pengiriman ditunjukkan pada Gambar 3.19.

Gambar 3.19. Email notifikasi “PERHATIAN ! Sensor Maling terdeteksi gerakan mencurigakan” pada kotak masuk.

3.8 Pengujian Akhir Menyeluruh

Pengujian akhir dilakukan dengan menjalankan simulasi Wokwi sampai Serial Monitor menampilkan “Thingsboard is Connected !!”, lalu membuka dashboard pada tab browser terpisah. Tombol Simulate motion ditekan, kemudian hasilnya diperiksa pada tiga sisi: perangkat, dashboard, dan email. Setelah itu simulasi gerakan dimatikan untuk memeriksa bahwa seluruh indikator kembali ke kondisi aman. Hasil pengujian ditunjukkan pada tabel berikut:

SisiSaat Gerakan TerdeteksiSaat Gerakan Berhenti
Perangkat (Wokwi)LED merah menyala, buzzer berbunyi, Serial Monitor menampilkan “AWAS! Gerakan terdeteksi.”LED dan buzzer padam, Serial Monitor menampilkan “Kondisi aman.”
DashboardKartu status “Bahaya”, alarm Critical (General Alarm) berstatus Active muncul di Monitor > AlarmsKartu status “Aman”, alarm berubah menjadi Cleared
EmailEmail “PERHATIAN ! Sensor Maling terdeteksi gerakan mencurigakan” diterimaTidak ada email baru

Hasil pengujian menunjukkan bahwa ketiga sisi menampilkan status yang sinkron. Pada pengujian ini ditemukan bahwa email hanya terkirim satu kali per kejadian karena telemetri hanya dikirim ketika status PIR berubah, sehingga pengguna tidak menerima email berulang selama gerakan masih berlangsung.

BAB IV
PENUTUP

4.1 Kesimpulan

Berdasarkan hasil perancangan dan pengujian, simulasi sistem keamanan anti-maling berbasis IoT pada platform Wokwi berhasil berjalan sesuai dengan logika program. ESP32 dan sensor PIR mampu mendeteksi gerakan, kemudian menyalakan LED dan buzzer sebagai peringatan lokal. Status keamanan berhasil dikirim melalui protokol MQTT ke ThingsBoard, dengan nilai “Bahaya” saat gerakan terdeteksi dan “Aman” saat kondisi kembali normal.

Pada sisi cloud, dashboard berhasil menampilkan status keamanan secara real-time melalui value card. Rule chain Keamanan_Alarm berhasil membuat alarm berstatus Critical saat gerakan terdeteksi dan menghapusnya saat kondisi kembali aman. Notifikasi email juga berhasil dikirim satu kali setiap terjadi gerakan. Dengan demikian, perangkat, dashboard, dan email dapat bekerja secara sinkron sebagai satu kesatuan sistem keamanan.

4.2 Saran

Sistem ini masih memiliki potensi untuk dikembangkan lebih lanjut agar lebih optimal. Beberapa saran untuk pengembangan kedepannya adalah:

1.Notifikasi Tambahan: Menambahkan jalur notifikasi lain selain email, seperti pesan Telegram atau SMS, agar pemilik lebih cepat menerima peringatan.

2.Kontrol Jarak Jauh: Menambahkan fitur untuk mematikan alarm dan buzzer dari jarak jauh melalui dashboard ThingsBoard.

3.Penambahan Sensor: Menambahkan sensor lain, seperti sensor pintu atau kamera, agar deteksi lebih akurat dan mengurangi alarm palsu.

4.Pemantauan Kuota: Memperhatikan batas kuota email dan alarm pada paket gratis ThingsBoard Cloud, atau menggunakan paket berbayar bila sistem dipakai terus-menerus.

5.Perbaikan Jalur Daya pada Implementasi Fisik: Pada simulasi, pin VCC sensor PIR dihubungkan ke GPIO 5 dan sistem tetap berfungsi. Pada perangkat nyata, VCC sebaiknya dihubungkan ke pin 5V atau 3V3 ESP32 agar sensor mendapat catu daya yang stabil.

6.Pengamanan Kredensial: Kredensial MQTT pada program ditulis langsung di dalam kode. Untuk penerapan nyata, kredensial sebaiknya disimpan terpisah dan tidak dibagikan secara publik.

7.Penerapan pada Perangkat Nyata: Mengimplementasikan rancangan yang telah teruji di Wokwi pada modul ESP32 dan sensor PIR fisik.

DAFTAR PUSTAKA

Espressif Systems. (2026). ESP32 Series Datasheet dan Hardware Design Guidelines. https://www.espressif.com/en/support/documents/technical-documents

Knolleary, N. (n.d.). PubSubClient: Arduino Client for MQTT. https://pubsubclient.knolleary.net/

ThingsBoard. (2026). ThingsBoard Documentation: MQTT Device API Reference dan Telemetry Upload API. https://thingsboard.io/docs/

Wokwi Docs. (2026). Wokwi Simulator Documentation: ESP32, WiFi, dan PIR Motion Sensor. https://docs.wokwi.com/

LAMPIRAN

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

Tidak ada komentar:

Posting Komentar