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.
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?
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.
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.
2.2 Komponen
Berikut adalah rincian komponen perangkat keras (virtual) dan perangkat lunak yang digunakan dalam implementasi simulasi berbasis Wokwi ini:
| No | Komponen | Fungsi |
|---|---|---|
| 1 | ESP32 DevKit C V4 | Mikrokontroler utama yang membaca sensor, mengendalikan LED dan buzzer, serta mengirim data ke ThingsBoard. |
| 2 | Sensor PIR | Mendeteksi gerakan di dalam ruangan dan mengirim sinyal digital ke ESP32. |
| 3 | LED Merah | Indikator visual peringatan saat gerakan terdeteksi. |
| 4 | Resistor 220 Ω | Membatasi arus yang mengalir ke LED agar tidak rusak. |
| 5 | Buzzer | Alarm suara saat gerakan terdeteksi. |
| 6 | Wokwi Virtual WiFi (SSID “Wokwi-GUEST”) | Menyediakan akses internet bagi ESP32 dalam lingkungan simulasi. |
| 7 | Library PubSubClient | Menyediakan fungsi klien MQTT pada ESP32. |
| 8 | ThingsBoard Cloud | Broker MQTT sekaligus platform penerima dan penampil data telemetri. |
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 Things Board
Tahap pertama adalah membuat perangkat pada ThingsBoard Cloud melalui menu Entities > Devices. Perangkat diberi nama Device_Keamanan_Kelompok4 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:
| Komponen | Pin Komponen | Pin ESP32 |
|---|---|---|
| Sensor PIR | OUT | GPIO 13 |
| Sensor PIR | VCC | Pin 5 (sumber daya) |
| Sensor PIR | GND | GND |
| LED Merah | Anoda (A) | GPIO 12 |
| LED Merah | Katoda (C) | GND (melalui resistor 220 Ω) |
| Buzzer | Pin 1 | GPIO 14 |
| Buzzer | Pin 2 | GND |

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.

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 <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"; // Sesuaikan dengan ThingsBoard
const char* mqtt_user = "keamanan"; // Sesuaikan dengan ThingsBoard
const char* mqtt_pass = "aman12345"; // Sesuaikan dengan 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());
Serial.println(" try again in 5 seconds");
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) {
if (currentPirState == HIGH) {
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1000);
String payload = "{\"status_keamanan\": \"Bahaya\", \"gerakan_terdeteksi\": 1}";
client.publish(mqtt_topic, payload.c_str());
Serial.println("AWAS! Gerakan terdeteksi.");
} else {
digitalWrite(LED_PIN, LOW);
noTone(BUZZER_PIN);
String payload = "{\"status_keamanan\": \"Aman\", \"gerakan_terdeteksi\": 0}";
client.publish(mqtt_topic, payload.c_str());
Serial.println("Kondisi aman.");
}
lastPirState = currentPirState;
}
delay(100);
}
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, buzzer dibunyikan dengan nada 1000 Hz melalui fungsi tone(), dan payload JSON {"status_keamanan": "Bahaya", "gerakan_terdeteksi": 1} dikirim ke ThingsBoard. Serial Monitor menampilkan pesan “AWAS! Gerakan terdeteksi.”
5.Saat Kondisi Kembali Normal (LOW): LED dimatikan, buzzer dihentikan dengan noTone(), dan payload {"status_keamanan": "Aman", "gerakan_terdeteksi": 0} dikirim ke ThingsBoard. Serial Monitor menampilkan pesan “Kondisi aman.”
6.Pembaruan Kondisi dan Jeda: Di akhir blok perubahan, nilai lastPirState diperbarui dengan kondisi terbaru. Program lalu memberi jeda 100 milidetik (delay(100)) sebelum membaca sensor kembali, sehingga beban prosesor tetap ringan.
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).

2.Simulasi intrusi.
Sensor PIR diklik sehingga muncul panel PIR Motion Sensor, 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 dengan nada tetap 1000 Hz sebagai peringatan lokal.
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.4).

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.5). Saat gerakan terdeteksi, kedua kunci tersebut berubah menjadi “Bahaya” dan 1 sesuai payload yang dikirim program.

Dengan demikian, kondisi pada perangkat simulasi dan pada antarmuka pemantauan ThingsBoard terbukti sinkron dan berjalan secara real-time.
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan hasil perancangan simulasi yang telah dilakukan, alat monitoring suhu dan kelembaban berbasis IoT dengan memanfaatkan platform Wokwi berhasil berjalan sesuai dengan logika program. Sistem ini berhasil memanfaatkan ESP32 dan sensor virtual DHT22 untuk mengukur parameter udara, serta secara mulus mengirimkan hasil pengukuran tersebut ke luar platform simulator menuju ke cloud ThingsBoard. Tampilan pada ThingsBoard berhasil memvisualisasikan data sensor tersebut menggunakan dashboard interaktif secara real-time dan responsif.
4.2 Saran
Sistem ini masih memiliki potensi untuk dikembangkan lebih lanjut agar lebih optimal. Beberapa saran untuk pengembangan kedepannya adalah:
1.Notifikasi Alarm Proaktif: Menambahkan fitur Alarm dan Rule Chain di ThingsBoard agar pemilik menerima email atau notifikasi otomatis saat status berubah menjadi “Bahaya”.
2.Dashboard Monitoring: Membuat dashboard di ThingsBoard dengan widget indikator status dan riwayat kejadian agar pemantauan lebih informatif.
3.Penambahan Sensor dan Kontrol Jarak Jauh: Menambahkan sensor lain, seperti sensor pintu atau kamera, serta fitur untuk mematikan alarm dari jarak jauh melalui ThingsBoard.
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