LAPORAN PRAKTIKUM INTERNET OF THINGS
MENCOBA PLATFORM IoT CLOUD SIAP PAKAI DENGAN WOKWI
Studi
Kasus:
Sistem Monitoring Suhu dan
Kelembaban Ruang Server Berbasis IoT
Menggunakan Simulasi ESP32 dan
Sensor DHT22 pada ThingsBoard Cloud
Disusun
oleh:
Georvin Octianno 24051204121
Ali Syava Ramadhan 24051204121
Ubaidillah Maulidul Ula 24051204115
Adie Tirta Satria 24051204108
BAB I
PENDAHULUAN
1.1
Latar Belakang
Perkembangan Internet of Things
(IoT) telah mendorong munculnya berbagai platform cloud yang berperan sebagai
pusat pengumpulan, penyimpanan, dan pengolahan data dari perangkat di lapangan.
Akan tetapi, kenyataan yang dihadapi di dunia IoT saat ini adalah bahwa hampir
seluruh platform IoT cloud merupakan entitas komersial yang menarik bayaran
kepada pemakainya. Fasilitas free trial memang disediakan, namun pada umumnya
sangat dibatasi hanya pada fungsi-fungsi dasar, baik dari sisi jumlah
perangkat, kuota pesan per bulan, jumlah datastream, maupun lamanya penyimpanan
data historis.
Permasalahan kedua muncul dari sisi
perangkat keras. Pembelajaran IoT secara konvensional menuntut ketersediaan
mikrokontroler, sensor, kabel, dan perangkat pendukung lain yang tidak selalu
terjangkau oleh setiap mahasiswa. Kendala teknis seperti driver USB yang tidak
terdeteksi, sambungan kabel yang longgar, atau sensor yang rusak sering kali
menghabiskan waktu praktikum yang seharusnya digunakan untuk memahami
arsitektur sistem.
Praktikum ini menjawab kedua
permasalahan tersebut dengan memanfaatkan ThingsBoard Cloud sebagai platform
IoT dan Wokwi sebagai simulator perangkat keras berbasis web. ThingsBoard
dipilih karena menawarkan tangga paket yang lebih landai dibandingkan kompetitornya,
sekaligus menyediakan Community Edition yang sepenuhnya open source dan dapat
dipasang sendiri tanpa biaya apabila masa paket cloud berakhir. Wokwi dipilih
karena memungkinkan simulasi ESP32 beserta sensor DHT22 secara penuh di dalam
peramban, lengkap dengan koneksi WiFi virtual, sehingga seluruh rantai
komunikasi dapat diuji tanpa perangkat fisik.
Sebagai konteks penerapan, dipilih
studi kasus pemantauan suhu dan kelembaban ruang server. Ruang server dipilih
karena memiliki ambang batas operasional yang dapat dirujuk secara teknis dan
memiliki konsekuensi yang jelas apabila dilanggar, yaitu perangkat mengalami
panas berlebih, umur pakai memendek, hingga berhenti beroperasi. Studi kasus
ini juga memberikan alasan yang kuat atas keberadaan mekanisme alarm dan
notifikasi pada tahap lanjutan praktikum.
1.2
Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah
yang diangkat dalam praktikum ini adalah sebagai berikut:
- Bagaimana cara mendaftarkan dan
mengonfigurasi sebuah perangkat IoT pada platform ThingsBoard Cloud dengan
menggunakan kredensial MQTT Basic?
- Bagaimana cara memverifikasi bahwa jalur
komunikasi MQTT antara klien dan platform telah terbuka sebelum program
pada perangkat ditulis?
- Bagaimana memprogram ESP32 yang
disimulasikan di Wokwi agar dapat membaca sensor DHT22 dan mengirimkan
datanya secara berkala ke ThingsBoard Cloud?
- Bagaimana membuktikan bahwa perubahan nilai
pada sensor benar-benar tercermin pada data telemetry yang tersimpan di
cloud?
1.3
Tujuan Praktikum
Tujuan yang hendak dicapai melalui praktikum ini
adalah:
- Memahami karakteristik platform IoT cloud
komersial beserta keterbatasan paket gratisnya, dan mampu membandingkan
beberapa platform berdasarkan batasan tersebut.
- Mampu mendaftarkan perangkat pada
ThingsBoard Cloud serta membedakan dan memilih jenis kredensial yang
sesuai di antara Access Token, X.509, dan MQTT Basic.
- Memahami struktur protokol MQTT yang
meliputi broker, port, topik, dan payload berformat JSON.
- Mampu melakukan pengujian konektivitas
secara berlapis, yaitu menguji jalur komunikasi dari PC terlebih dahulu
sebelum menuliskan program pada perangkat.
- Mampu membangun program pada ESP32 untuk
tersambung ke jaringan WiFi dan broker MQTT, membaca sensor DHT22, serta
menyusun data menjadi payload JSON.
- Mampu memverifikasi bahwa data yang dikirim
perangkat benar-benar diterima dan tersimpan sebagai telemetry di platform
cloud.
1.4
Batasan Masalah
Agar pembahasan tetap terarah, praktikum ini dibatasi
pada hal-hal berikut:
- Perangkat keras disimulasikan sepenuhnya
menggunakan Wokwi. Tidak digunakan modul ESP32 maupun sensor DHT22 secara
fisik.
- Studi kasus ruang server digunakan sebagai
konteks penentuan ambang batas dan justifikasi kebutuhan sistem, bukan
sebagai implementasi pada ruang server yang sebenarnya.
- Laporan ini mencakup tahap pertama praktikum
yang mengacu pada halaman 1 sampai 9 modul, yaitu pembangunan jalur
komunikasi dari perangkat menuju cloud. Tahap visualisasi dashboard,
pemrosesan rule chain, pembentukan alarm, dan notifikasi email (halaman 10
sampai 13) merupakan lingkup tahap lanjutan.
- Platform yang digunakan adalah ThingsBoard
Cloud pada paket Free dengan batasan 5 perangkat, 5 aset, 5 pengguna, 5
dashboard, dan 2 customer.
1.5
Manfaat
Praktikum ini memberikan manfaat
berupa pemahaman utuh mengenai arsitektur sistem IoT, mulai dari pembacaan
besaran fisik oleh sensor hingga penyimpanan data di server. Pemahaman tersebut
diperoleh tanpa biaya perangkat keras sehingga dapat direplikasi oleh siapa pun
yang memiliki akses internet. Selain itu, praktikum ini melatih metode
pengujian berlapis yang merupakan praktik baku dalam pengembangan sistem
terdistribusi, yakni memastikan lapisan terbawah berfungsi sebelum beralih ke
lapisan berikutnya.
BAB II
LANDASAN TEORI
2.1
Internet of Things
Internet of Things merupakan konsep
yang menghubungkan objek-objek fisik ke jaringan internet sehingga objek
tersebut mampu mengumpulkan dan bertukar data. Sebuah sistem IoT pada umumnya
tersusun atas empat lapisan, yaitu lapisan perangkat yang berisi sensor dan
aktuator, lapisan konektivitas yang menangani protokol komunikasi, lapisan
platform yang menyimpan dan mengolah data, serta lapisan aplikasi yang
menyajikan informasi kepada pengguna. Praktikum ini membangun tiga lapisan
pertama secara utuh.
2.2
Platform IoT Cloud dan Permasalahannya
Kenyataan yang ada di dunia IoT
saat ini adalah bahwa semua platform IoT merupakan entitas komersial yang akan
menarik bayaran kepada pemakai. Fasilitas free trial tersedia, namun sangat
dibatasi pada fungsi-fungsi dasar. Terdapat tiga alternatif solusi yang dapat
ditempuh untuk mengatasi keterbatasan tersebut, yaitu:
- Menginstal platform IoT open source pada
premis atau server lokal berbasis PC, seperti OpenBalena, ThingsBoard,
Node-RED, dan OpenRemote.
- Menggabungkan beberapa layanan gratis dengan
kemampuan pemrograman yang memadai, misalnya memanfaatkan Google Colab
dengan bahasa Python.
- Melakukan pemrograman penuh pada PC dengan
berbagai bahasa pemrograman serta memanfaatkan gateway internet yang
relatif murah, misalnya broker MQTT HiveMQ.
2.3
Studi Kasus Vendor Lock-In pada Tuya
Tuya merupakan platform perangkat
keras IoT yang paling laris di pasaran. Pada awal kemunculannya, perangkat
smart home Tuya berbasis ESP8266 sehingga dapat diprogram ulang sendiri tanpa
perlu membayar layanan IoT milik Tuya. Berbagai produk komersial smart home
berbasis ESP8266 kemudian bermunculan dengan memanfaatkan platform tersebut,
namun Tuya menilai pola ini kurang menguntungkan bagi mereka.
Tuya selanjutnya membatasi proses
pemrograman sehingga hanya dapat dilakukan melalui platform IDE pengembang
milik mereka, dan hasilnya hanya bisa diunduhkan ke ESP8266 melalui perangkat
lunak IDE mereka juga. Saat ini Tuya telah menghentikan penggunaan ESP8266 dan
membuat IC mikrokontroler sendiri, sehingga produsen yang ingin membuat produk
seperti smart switch harus menggunakan IC yang mereka sediakan. Kasus ini
menjadi contoh nyata vendor lock-in, yaitu kondisi ketika pengguna terkunci
pada ekosistem satu vendor dan kehilangan kebebasan memilih.
2.4
Perbandingan Platform Blynk dan ThingsBoard
Blynk merupakan platform yang
muncul paling awal dan populer di kalangan penghobi, namun kini terasa berat
bagi pengguna paket gratis karena batasannya sempit dan lompatan menuju paket
berbayar cukup tinggi. ThingsBoard menawarkan berbagai pilihan paket cloud
dengan tangga harga yang lebih landai. Perbandingan paket keduanya sebagaimana
tercantum pada modul disajikan pada Tabel 2.1.
Tabel 2.1 Perbandingan paket Blynk dan ThingsBoard
Cloud
|
Aspek |
Blynk Free |
Blynk PRO |
ThingsBoard Maker |
ThingsBoard Prototype |
|
Biaya |
US$0 |
Mulai US$99 per bulan |
US$10 per bulan |
US$149 per bulan |
|
Perangkat |
10 perangkat, 1 pengguna |
50, 200, atau 500 perangkat/pengguna |
Hingga 30 perangkat |
Hingga 100 perangkat |
|
Aset |
- |
- |
Hingga 30 aset |
Hingga 100 aset |
|
Kuota data |
30.000 pesan per bulan |
Pesan tidak terbatas |
10 juta data point per bulan |
100 juta data point per bulan |
|
Template dan datastream |
10 template, 20 datastream per template |
50 template, 200 datastream per template |
- |
- |
|
Riwayat data |
1 minggu |
6 bulan |
- |
- |
|
Fitur lain |
Widget gratis |
Widget PRO, pengaturan izin, manajemen organisasi |
Dukungan komunitas |
Dukungan komunitas, white-labeling |
Keterangan: tanda - menunjukkan informasi tersebut tidak
dicantumkan pada sumber.
Rincian kuota langganan ThingsBoard
Cloud paket Maker yang ditampilkan pada modul disajikan pada Tabel 2.2. Kuota
email sebanyak 100 per bulan perlu diperhatikan karena akan digunakan pada
tahap notifikasi.
Tabel 2.2 Rincian kuota langganan ThingsBoard Cloud
paket Maker
|
Komponen |
Batas |
|
Aset |
30 |
|
Perangkat |
30 |
|
Pesan transport per bulan |
5 juta |
|
Data point transport per bulan |
10 juta |
|
Hari penyimpanan data point per bulan |
300 juta |
|
Eksekusi rule engine per bulan |
25 juta |
|
Eksekusi fungsi JavaScript per bulan |
1 juta |
|
Email per bulan |
100 |
|
SMS per bulan |
10 |
|
Alarm yang dibuat per bulan |
200 |
|
Laporan yang dihasilkan per bulan |
Tidak terbatas |
2.5
ThingsBoard Community Edition
ThingsBoard Community Edition
merupakan versi yang 100% open source dan gratis, dengan keunggulan berupa
jumlah perangkat dan aset yang tidak terbatas, pembaruan perangkat lunak tanpa
batas, kesempatan untuk ikut berkontribusi, serta dukungan komunitas. Pilihan
instalasinya meliputi Docker pada Linux atau macOS, Docker pada Windows, Ubuntu
Server 20.04, 22.04, atau 24.04 dengan PostgreSQL atau Cassandra, server
CentOS/RHEL (termasuk Alma, Rocky, dan Oracle Linux), Windows 10/11, serta
Raspberry Pi dengan RAM minimal 4 GB untuk PostgreSQL atau 8 GB untuk
Cassandra. Keberadaan versi ini memberikan jalan keluar apabila masa berlaku
paket cloud berakhir di tengah pengerjaan proyek, dengan konsekuensi alamat
broker berubah menjadi alamat server lokal.
2.6
Protokol MQTT
MQTT (Message Queuing Telemetry
Transport) adalah protokol komunikasi ringan yang bekerja dengan pola publish
dan subscribe. Terdapat tiga komponen utama dalam arsitekturnya, yaitu
publisher yang mengirimkan pesan, subscriber yang menerima pesan, dan broker
yang bertindak sebagai perantara. Pesan dikelompokkan berdasarkan topik,
sehingga publisher dan subscriber tidak perlu saling mengenal secara langsung.
Pada ThingsBoard, alamat broker
yang digunakan adalah mqtt.thingsboard.cloud
dengan port 1883 untuk koneksi
tanpa enkripsi. Topik baku untuk pengiriman data telemetry adalah v1/devices/me/telemetry.
Kata me pada topik tersebut bukan placeholder yang perlu diganti dengan nama
perangkat, melainkan menunjuk pada perangkat yang sedang terhubung saat itu.
Identitas perangkat ditentukan oleh kredensial yang digunakan ketika melakukan
koneksi, bukan oleh isi topik. Payload yang dikirimkan berformat JSON, misalnya
{"suhu":50, "kelembaban":80},
dengan setiap kunci JSON menjadi satu key telemetry di platform.
Broker MQTT hanya mengizinkan satu
koneksi aktif untuk setiap Client ID. Apabila klien kedua tersambung dengan
Client ID yang sama, broker akan memutus klien pertama. Sifat ini menjadi
penting ketika aplikasi pengujian di PC dan perangkat menggunakan kredensial
yang sama.
2.7
Jenis Kredensial Perangkat pada ThingsBoard
ThingsBoard menyediakan tiga jenis
kredensial yang bersifat saling menggantikan, bukan saling melengkapi. Satu
perangkat hanya memiliki satu jenis kredensial. Perbandingan ketiganya
disajikan pada Tabel 2.3, sedangkan tampilan ketiga pilihan tersebut pada
antarmuka ThingsBoard dapat dilihat pada Gambar 3.4, Gambar 3.5, dan Gambar
3.6.
Tabel 2.3 Perbandingan jenis kredensial perangkat pada
ThingsBoard
|
Jenis |
Mekanisme |
Karakteristik |
|
Access Token |
Satu string rahasia yang dibangkitkan otomatis oleh sistem |
Paling sederhana, cocok untuk HTTP atau koneksi MQTT cepat |
|
X.509 |
Menggunakan sertifikat digital berformat PEM |
Paling aman dan lazim dipakai di lingkungan produksi, namun memerlukan
pembuatan sertifikat dan penanganan TLS |
|
MQTT Basic |
Kombinasi Client ID, username, dan password |
Menyerupai mekanisme login biasa, didukung secara langsung oleh pustaka
PubSubClient pada ESP32 |
Praktikum ini menggunakan MQTT
Basic karena pustaka PubSubClient pada ESP32 mendukung autentikasi username dan
password secara langsung melalui pemanggilan client.connect(clientId,
user, pass). Sementara itu, X.509 memerlukan penanganan TLS dan
penyimpanan sertifikat pada flash yang jauh lebih berat untuk lingkungan
simulasi.
2.8
Mikrokontroler ESP32
ESP32 adalah mikrokontroler
produksi Espressif Systems yang dilengkapi modul WiFi dan Bluetooth
terintegrasi. Kemampuan WiFi bawaan inilah yang menjadikan ESP32 banyak dipakai
pada proyek IoT, karena perangkat dapat langsung terhubung ke jaringan tanpa modul
tambahan. Dalam praktikum ini digunakan varian ESP32 DevKit yang merupakan
papan pengembangan paling umum, dengan pustaka WiFi.h untuk koneksi jaringan
dan PubSubClient untuk komunikasi MQTT.
2.9
Sensor DHT22
DHT22 merupakan sensor digital yang
mampu mengukur suhu dan kelembaban relatif sekaligus. Di dalamnya terdapat dua
elemen pengukur. Elemen pertama berupa termistor, yaitu resistor yang nilai
hambatannya berubah mengikuti suhu. Elemen kedua berupa lapisan polimer di
antara dua pelat, yang kapasitansinya berubah seiring banyaknya uap air yang
terserap.
Kedua perubahan fisik tersebut
dibaca oleh chip pengendali di dalam sensor, dikonversi menjadi nilai digital,
lalu dikirimkan ke mikrokontroler sebagai deretan bit melalui satu jalur data
tunggal. Pustaka DHT.h bertugas menerjemahkan deretan bit tersebut menjadi
nilai suhu dalam derajat Celsius dan kelembaban dalam persen.
2.10
Wokwi sebagai Simulator Perangkat Keras
Wokwi adalah simulator rangkaian
elektronika berbasis web yang mendukung berbagai mikrokontroler, termasuk
ESP32. Wokwi menyediakan jaringan WiFi virtual dengan SSID Wokwi-GUEST tanpa
kata sandi, sehingga program yang membutuhkan koneksi internet tetap dapat
diuji. Nilai sensor dapat diatur secara manual melalui panel pengaturan yang
muncul ketika komponen diklik saat simulasi berjalan, atau melalui atribut pada
berkas diagram.json.
Hal penting yang perlu dipahami
adalah bahwa dari sudut pandang program, simulasi dan perangkat nyata bersifat
identik. Pemanggilan dht.readTemperature()
tidak mengetahui dan tidak mempermasalahkan apakah nilai yang diterimanya
berasal dari termistor sungguhan atau dari pengaturan di Wokwi. Inilah yang
memungkinkan seluruh rantai sistem diuji tanpa membeli perangkat apa pun, dan
apabila kelak dipasang pada perangkat keras nyata, baris program tidak perlu
diubah selain nama dan kata sandi jaringan WiFi.
2.11
MQTTX sebagai Klien Uji MQTT
MQTTX adalah aplikasi klien MQTT
lintas platform bersifat open source yang dikembangkan oleh EMQ. Aplikasi ini
menyediakan antarmuka grafis untuk membuat koneksi ke broker, mempublikasikan
pesan ke topik tertentu, dan berlangganan topik. Pada praktikum ini MQTTX
menggantikan MQTT.fx yang digunakan pada modul, karena versi terbaru MQTT.fx
telah berbayar, sedangkan fungsi yang dibutuhkan, yaitu mempublikasikan pesan
uji ke broker ThingsBoard, tersedia sepenuhnya pada MQTTX.
BAB III
IMPLEMENTASI DAN PEMBAHASAN
3.1
Alat dan Bahan
Perangkat lunak, layanan, dan
sumber daya yang digunakan dalam praktikum ini beserta perannya masing-masing
disajikan pada Tabel 3.1.
Tabel 3.1 Alat dan bahan yang digunakan beserta
perannya
|
Komponen |
Jenis |
Peran dalam sistem |
|
Wokwi |
Simulator berbasis web |
Menggantikan ESP32 dan DHT22 fisik; tempat program ditulis, rangkaian
disusun, dan simulasi dijalankan |
|
ThingsBoard Cloud |
Platform IoT cloud (paket Free) |
Menerima, menyimpan, dan menampilkan data; berperan sebagai sisi server |
|
MQTTX v1.13.1 |
Klien MQTT desktop (Windows x86-64) |
Alat uji untuk memverifikasi jalur komunikasi sebelum program ditulis |
|
ESP32 DevKit C v4 |
Mikrokontroler (simulasi) |
Membaca sensor dan mengirim data melalui MQTT |
|
DHT22 |
Sensor (simulasi) |
Sumber nilai suhu dan kelembaban |
|
Google Chrome |
Peramban web |
Antarmuka untuk mengakses Wokwi dan ThingsBoard |
|
Akun Google |
Akun pengguna |
Registrasi dan masuk ke ThingsBoard Cloud serta Wokwi |
|
Koneksi internet |
Jaringan |
Menghubungkan PC, simulator Wokwi, dan broker ThingsBoard |
Perlu dicatat bahwa MQTTX bukan
merupakan bagian dari sistem akhir. Perangkat lunak ini berperan sebagai alat
diagnostik yang hanya digunakan pada tahap pengujian jalur komunikasi. Setelah
ESP32 berjalan, MQTTX justru harus diputus agar tidak berebut Client ID dengan
perangkat.
3.2
Arsitektur Sistem
Arsitektur sistem yang dibangun
ditunjukkan pada Gambar 3.1. Sensor DHT22 membaca kondisi suhu dan kelembaban
lingkungan, lalu mengirimkan hasilnya ke ESP32 melalui satu jalur data digital
pada GPIO 15. ESP32 menyusun kedua nilai tersebut menjadi payload berformat
JSON, kemudian mempublikasikannya melalui jaringan WiFi ke broker MQTT pada
alamat mqtt.thingsboard.cloud
port 1883 dengan topik v1/devices/me/telemetry.
Broker meneruskan pesan tersebut ke ThingsBoard Cloud, yang mencocokkan
kredensial pengirim dengan perangkat terdaftar lalu menyimpan isinya sebagai
telemetry.

Gambar 3.1 Arsitektur sistem
monitoring suhu dan kelembaban ruang server
Jalur bergaris putus dari PC dengan
MQTTX menunjukkan jalur pengujian yang digunakan sebelum perangkat diprogram.
Jalur ini menggunakan broker, topik, dan kredensial yang sama dengan perangkat.
Pada tahap lanjutan, data yang tersimpan akan divisualisasikan melalui
dashboard dan diproses oleh rule chain untuk menghasilkan alarm serta
notifikasi email.
3.3
Rancangan Ambang Batas Studi Kasus
Mengacu pada studi kasus pemantauan
ruang server, ditetapkan empat tingkat kondisi berdasarkan nilai suhu
sebagaimana disajikan pada Tabel 3.2. Ambang batas ini akan diterapkan pada
rule chain di tahap lanjutan.
Tabel 3.2 Rancangan tingkat kondisi berdasarkan suhu
ruang server
|
Tingkat |
Rentang suhu |
Interpretasi |
|
Normal |
Kurang dari atau sama dengan 27 °C |
Kondisi operasional aman, tidak memerlukan tindakan |
|
Minor |
Di atas 27 °C hingga 30 °C |
Mulai menghangat, perlu diperhatikan |
|
Major |
Di atas 30 °C hingga 35 °C |
Pendinginan tidak memadai, perlu tindakan |
|
Critical |
Di atas 35 °C |
Berisiko merusak perangkat, perlu tindakan segera |
3.4
Perancangan Rangkaian
Sensor DHT22 memiliki empat kaki,
namun hanya tiga di antaranya yang digunakan. Pemetaan sambungan antara sensor
dan ESP32 disajikan pada Tabel 3.3.
Tabel 3.3 Pemetaan sambungan DHT22 ke ESP32 DevKit
|
Kaki DHT22 |
Pin ESP32 |
Keterangan |
|
VCC |
3V3 |
Sumber tegangan 3,3 volt (kabel merah) |
|
SDA |
15 (GPIO 15) |
Jalur data digital satu kabel (kabel hijau) |
|
NC |
Tidak disambung |
Not Connected, memang tidak digunakan |
|
GND |
GND |
Jalur ground bersama (kabel hitam) |
Nomor pin 15 yang dipilih harus
konsisten dengan deklarasi #define DHTPIN 15
di dalam program. Penggunaan pin lain mengharuskan penyesuaian pada baris
tersebut. Label D2 dan D3 pada papan ESP32 DevKit di Wokwi sengaja dihindari
karena keduanya merujuk ke jalur data flash internal.
3.5
Penyesuaian terhadap Modul
Pelaksanaan praktikum mengikuti
alur pada modul dengan beberapa penyesuaian. Seluruh penyesuaian beserta
alasannya dirangkum pada Tabel 3.4.
Tabel 3.4 Penyesuaian pelaksanaan praktikum terhadap
modul
|
Aspek |
Modul |
Praktikum ini |
Alasan |
|
Nama perangkat |
Modul5_Test1 |
Praktikum_Modul5 |
Identitas proyek sendiri |
|
Client ID |
workshop_IOT_informatika |
wokwi_praktikum_modul5 |
Kredensial MQTT Basic harus unik di seluruh server; nilai pada modul
dipakai bersama oleh satu kelas |
|
User Name |
informatika |
georvin |
Sama dengan alasan di atas |
|
Password |
1234567890 |
praktikum123 |
Sama dengan alasan di atas |
|
Klien MQTT di PC |
MQTT.fx |
MQTTX v1.13.1 |
Versi terbaru MQTT.fx berbayar; MQTTX gratis dengan fungsi setara |
|
Paket ThingsBoard |
Maker (masa uji coba) |
Free |
Paket yang diperoleh saat registrasi; tidak memiliki tanggal kedaluwarsa |
|
Keluaran Serial Monitor |
Temperature dan Humidity |
Payload JSON yang dikirim |
Memudahkan pencocokan antara data terkirim dan data tersimpan |
3.6
Langkah Kerja
Secara garis besar, langkah kerja
terbagi menjadi tiga kelompok, yaitu persiapan sisi server pada ThingsBoard
(3.6.1 dan 3.6.2), pengujian jalur komunikasi dari PC menggunakan MQTTX (3.6.3
sampai 3.6.5), serta pembangunan dan pengujian perangkat pada Wokwi (3.6.6
sampai 3.6.13).
3.6.1
Registrasi Akun ThingsBoard Cloud
- Akses dan login ke alamat https://thingsboard.cloud.
- Pastikan peran yang tertera di pojok kanan
atas halaman Home adalah Tenant administrator, yaitu peran pemilik
ruang kerja yang berhak membuat perangkat, dashboard, dan rule chain.
- Periksa informasi langganan di pojok kanan
atas. Pada akun yang digunakan tertera Current subscription: Free
dengan Status: Active, seperti terlihat pada Gambar 3.2.

Gambar 3.2 Halaman Home ThingsBoard
Cloud setelah berhasil masuk
4.
Periksa kuota akun pada panel Usage
di bagian bawah halaman. Paket Free memberikan batas 5 perangkat, 5 aset, 5
pengguna, 5 dashboard, dan 2 customer, dengan pemakaian awal 0 kecuali 1
pengguna, yaitu akun pemilik.
3.6.2
Membuat Perangkat dan Kredensial MQTT Basic
- Pada menu di sisi kiri, klik Entities,
lalu pilih Devices. Halaman daftar perangkat terbuka dan masih
kosong.
- Klik tombol + Add device di pojok
kanan atas. Sebagai alternatif, tombol Add device pada panel
Devices di halaman Home memiliki fungsi yang sama. Dialog Add new
device muncul pada langkah pertama, yaitu Device details.
- Isi formulir Device details sesuai Tabel
3.5. Tampilan formulir sebelum diisi ditunjukkan pada Gambar 3.3.

Gambar 3.3 Formulir Device details
pada dialog Add new device
Tabel 3.5 Isian formulir Device details
|
Kolom |
Isian |
Keterangan |
|
Name |
Praktikum_Modul5 |
Wajib diisi; nama perangkat yang mudah dikenali |
|
Label |
Dikosongkan |
Opsional |
|
Device profile |
default |
Nilai bawaan, tidak diubah |
|
Is gateway |
Nonaktif |
Perangkat ini bukan gateway |
|
Owner |
Terisi otomatis |
Email akun pemilik, tidak diubah |
|
Groups |
Dikosongkan |
Opsional |
|
Description |
Dikosongkan |
Opsional |
4.
Klik tombol Next: Credentials.
Jangan menekan tombol Add pada tahap ini.
5.
Halaman Credentials terbuka
dengan pilihan Credentials type. Secara bawaan, tab Access token
terpilih dan sistem membangkitkan sebuah token acak (Gambar 3.4).

Gambar 3.4 Tab Access token
terpilih secara bawaan beserta token acak
6.
Tab X.509 meminta sertifikat
dalam format PEM dan menampilkan pesan Certificate is required apabila
kolomnya kosong (Gambar 3.5). Jenis kredensial ini tidak digunakan.

Gambar 3.5 Tab X.509 yang meminta
sertifikat berformat PEM
7.
Klik tab MQTT Basic. Tiga
kolom isian muncul, yaitu Client ID, User Name, dan Password,
disertai pesan merah Client ID and/or User Name are necessary (Gambar
3.6).

Gambar 3.6 Tab MQTT Basic sebelum
diisi
8.
Isi ketiga kolom sesuai Tabel 3.6.
Ketik nilainya secara manual dan jangan menekan ikon panah melingkar di sisi
kanan kolom, karena ikon tersebut membangkitkan nilai acak yang panjang dan
sulit disalin ke dalam program.
Tabel 3.6 Isian kredensial MQTT Basic
|
Kolom |
Isian |
Keterangan |
|
Client ID |
wokwi_praktikum_modul5 |
Identitas klien MQTT |
|
User Name |
georvin |
Nama pengguna MQTT |
|
Password |
praktikum123 |
Kata sandi MQTT |
9.
Pastikan pesan merah telah hilang.
Klik ikon mata pada kolom Password untuk memeriksa kebenaran kata sandi yang
diketik (Gambar 3.7).

Gambar 3.7 Kredensial MQTT Basic
yang telah diisi
10.
Catat ketiga nilai kredensial pada
tempat yang aman. Nilai yang sama akan digunakan kembali pada konfigurasi MQTTX
dan pada program ESP32.
Keterangan: nilai kredensial sengaja dibuat berbeda dari contoh
pada modul. Kredensial MQTT Basic harus unik di seluruh server ThingsBoard
Cloud, sehingga apabila beberapa praktikan mendaftarkan nilai yang sama,
pendaftaran berikutnya dapat ditolak atau koneksi di broker akan saling
memutus.
11.
Klik tombol Add. Perangkat
dibuat dan dialog Device created. Let's check connectivity! muncul
(Gambar 3.8). Dialog ini menampilkan petunjuk pengujian koneksi melalui baris
perintah, yang terdiri atas:
a.
tab MQTT dengan pilihan
sistem operasi Windows, MacOS, Linux, dan Docker,
berisi langkah memasang mosquitto_pub
dan contoh perintah pengiriman telemetry ke mqtt.thingsboard.cloud
port 1883;
b.
tab CoAP yang berisi contoh
perintah curl untuk Linux
(Gambar 3.9);
c.
bagian State yang
menunjukkan status Inactive dan tabel Latest telemetry yang masih
kosong karena belum ada data yang dikirim.

Gambar 3.8 Dialog Device created.
Let's check connectivity! pada tab MQTT

Gambar 3.9 Tab CoAP pada dialog
pengecekan konektivitas
12.
Biarkan opsi Do not show again
dalam keadaan nonaktif, jangan menekan tombol Generate dashboard with AI,
lalu klik Close.
Keterangan: pengujian konektivitas pada praktikum ini dilakukan
menggunakan aplikasi MQTT berantarmuka grafis sesuai modul, bukan melalui baris
perintah. Fitur Generate dashboard with AI tidak digunakan karena perangkat
belum memiliki data telemetry dan pembuatan dashboard secara manual merupakan
materi tahap lanjutan.
13.
Perangkat Praktikum_Modul5
muncul pada daftar dengan Device profile default
dan State Inactive (Gambar 3.10). Status Inactive merupakan
kondisi wajar karena perangkat belum pernah mengirimkan data.

Gambar 3.10 Perangkat
Praktikum_Modul5 terdaftar dengan status Inactive
3.6.3
Mengunduh dan Memasang MQTTX
- Buka alamat https://mqttx.app/downloads pada
peramban.
- Pada bagian Desktop, klik x86-64 |
v1.13.1.win64.exe untuk mengunduh installer Windows 64-bit (Gambar
3.11).

Gambar 3.11 Halaman unduhan MQTTX
dengan pilihan versi Desktop dan CLI
Keterangan: versi Universal berukuran lebih besar karena memuat
beberapa arsitektur sekaligus, versi x86 (win32) diperuntukkan bagi Windows
32-bit, sedangkan bagian CLI merupakan versi baris perintah tanpa antarmuka
grafis.
3.
Jalankan berkas installer yang
telah diunduh dan ikuti petunjuk instalasi hingga selesai. Apabila Windows
SmartScreen menampilkan peringatan, pilih More info, kemudian Run
anyway.
4.
Buka aplikasi MQTTX. Tampilan awal
menunjukkan daftar Connections yang masih kosong (No Data) dan
tombol + New Connection di tengah layar (Gambar 3.12).

Gambar 3.12 Tampilan awal MQTTX
sebelum koneksi dibuat
3.6.4
Membuat Profil Koneksi MQTTX
- Klik tombol + New Connection.
Formulir pembuatan koneksi baru muncul.
- Isi bagian General sesuai Tabel 3.7.
Kolom lain dibiarkan pada nilai bawaan.
Tabel 3.7 Isian profil koneksi MQTTX
|
Kolom |
Isian |
Keterangan |
|
Name |
ThingsBoard Praktikum |
Label koneksi di dalam aplikasi (bebas) |
|
Client ID |
wokwi_praktikum_modul5 |
Hapus nilai acak bawaan, ganti dengan Client ID perangkat |
|
Host |
mqtt:// dan mqtt.thingsboard.cloud |
Protokol dipilih pada menu tarik-turun di kiri kolom; nama domain ditulis
tanpa http:// atau https:// |
|
Port |
1883 |
Port MQTT tanpa enkripsi |
|
Username |
georvin |
Sama dengan User Name perangkat |
|
Password |
praktikum123 |
Sama dengan Password perangkat |
|
SSL/TLS |
Nonaktif |
Nilai bawaan |
|
Clean Session |
Aktif |
Nilai bawaan |
|
Keep Alive |
60 |
Nilai bawaan dalam detik |
3.
Periksa kembali tiga hal yang
paling sering menyebabkan kegagalan koneksi, yaitu Host tidak diawali http://
atau https://, protokol yang dipilih adalah mqtt://
dan bukan ws://, serta Client
ID sudah diganti dari nilai acak bawaan.
4.
Klik tombol Connect di pojok
kanan atas formulir.
5.
Koneksi berhasil ditandai dengan
nama ThingsBoard Praktikum@mqtt... berwarna hijau pada daftar
Connections dan ikon daya berwarna merah di pojok kanan atas, yang berfungsi
sebagai tombol pemutus koneksi (Gambar 3.13). Area pesan masih kosong dan kotak
payload berisi contoh bawaan {"msg":
"hello"}.

Gambar 3.13 MQTTX berhasil
terhubung ke broker ThingsBoard
3.6.5
Mengirim Data Uji dan Memverifikasi Telemetry
- Pada bagian bawah panel pesan, pastikan
format payload adalah JSON dan tingkat QoS adalah 0.
- Klik kolom Topic, yaitu baris abu-abu
bertuliskan Topic yang terletak tepat di atas kotak payload, lalu ketik v1/devices/me/telemetry.
- Hapus isi bawaan kotak payload, lalu ketik {"suhu":50, "kelembaban":80}.
- Pastikan topik dan payload berada pada kolom
yang terpisah. Gambar 3.14 menunjukkan kesalahan penempatan, yaitu topik
ikut tertulis di dalam kotak payload sementara kolom Topic masih
menampilkan teks petunjuk berwarna abu-abu. Gambar 3.15 menunjukkan penempatan
yang benar.

Gambar 3.14 Penempatan yang salah:
topik tertulis di dalam kotak payload

Gambar 3.15 Penempatan yang benar:
topik pada kolom Topic dan payload pada kotak payload
Keterangan: kata me pada topik bukan pengganti nama perangkat.
ThingsBoard mengenali perangkat pengirim dari kredensial yang digunakan saat
koneksi, sehingga me berarti perangkat yang sedang terhubung.
5.
Klik ikon kirim berbentuk pesawat
kertas berwarna hijau di pojok kanan bawah. Pesan yang terkirim muncul sebagai
balon hijau bertuliskan Topic: v1/devices/me/telemetry QoS: 0 beserta
isi payload dan penanda waktu 2026-10-09 15:02:40:907
(Gambar 3.16).

Gambar 3.16 Pesan uji berhasil
dipublikasikan dari MQTTX
6.
Kembali ke tab ThingsBoard pada
halaman Devices. Kolom State mungkin masih menampilkan Inactive
karena daftar perangkat tidak memperbarui dirinya secara otomatis (Gambar
3.17).

Gambar 3.17 Daftar perangkat
sebelum diperbarui masih menunjukkan status Inactive
7.
Klik ikon refresh berbentuk
panah melingkar di sebelah kiri ikon kaca pembesar, atau tekan F5.
Status perangkat berubah menjadi Active (Gambar 3.18).

Gambar 3.18 Status perangkat
berubah menjadi Active setelah daftar diperbarui
8.
Klik baris Praktikum_Modul5
untuk membuka panel Device details, lalu pilih tab Latest telemetry.
9.
Amati isi tabel Telemetry.
Terdapat dua key, yaitu kelembaban
bernilai 80 dan suhu bernilai 50,
dengan waktu pembaruan 2026-10-09 15:02:41 yang
sesuai dengan waktu pengiriman dari MQTTX (Gambar 3.19). Hasil ini membuktikan
bahwa kredensial, alamat broker, topik, dan format payload sudah benar.

Gambar 3.19 Data uji dari MQTTX
tersimpan pada tab Latest telemetry
10.
Setelah pengujian selesai, putuskan
koneksi MQTTX dengan menekan ikon daya berwarna merah, atau tutup aplikasinya.
Keterangan: broker MQTT hanya mengizinkan satu koneksi aktif
untuk setiap Client ID. Apabila MQTTX masih terhubung ketika simulasi Wokwi
dijalankan, keduanya akan saling memutus koneksi secara bergantian. Kejadian
ini sempat dialami pada praktikum dan dibahas pada subbab 3.9.
3.6.6
Membuat Proyek Wokwi
- Buka alamat https://wokwi.com pada tab
baru.
- Klik ikon akun di pojok kanan atas, lalu
pilih masuk menggunakan akun Google.
Keterangan: masuk ke akun bersifat wajib karena proyek yang
dibuat tanpa akun tidak dapat disimpan dan akan hilang begitu tab ditutup.
3.
Setelah berhasil masuk, halaman Your
Projects pada alamat wokwi.com/dashboard/projects
terbuka dan masih kosong (Gambar 3.20).

Gambar 3.20 Halaman Your Projects
pada Wokwi setelah berhasil masuk
4.
Klik tombol + NEW PROJECT.
Halaman pemilihan papan pada alamat wokwi.com/projects/new
menampilkan daftar papan berbasis ESP32 (Gambar 3.21).

Gambar 3.21 Sebagian daftar papan
pada halaman pembuatan proyek baru
5.
Klik papan ESP32 pada posisi
kiri atas. Jangan memilih varian lain seperti ESP32-S2, ESP32-S3, ESP32-C3,
ESP32-C6, ESP32-H2, ESP32-P4, ESP32 S3 BOX 3, M5Stack Core S3, XIAO, atau Cheap
Yellow Display, karena varian tersebut memiliki chip dan susunan pin yang
berbeda.
6.
Halaman Start a new project
ESP32 muncul (Gambar 3.22). Pada bagian Beginner templates, klik ARDUINO.

Gambar 3.22 Pemilihan template
Arduino untuk papan ESP32
Keterangan: template MicroPython dan ESP-IDF tidak digunakan
karena program ditulis sebagai sketch Arduino yang memakai pustaka WiFi.h,
PubSubClient.h, dan DHT.h.
7.
Proyek baru terbuka pada alamat wokwi.com/projects/new/esp32.
Sisi kiri berisi editor dengan tab sketch.ino, diagram.json, dan Library
Manager, sedangkan sisi kanan berisi panel Simulation dengan papan
ESP32 (Gambar 3.23).

Gambar 3.23 Proyek ESP32 baru
dengan template Arduino
8.
Klik tombol SAVE di pojok
kiri atas, isi nama proyek Praktikum Modul 5 IoT
ThingsBoard, lalu simpan.
9.
Setelah tersimpan, alamat pada
address bar berubah menjadi wokwi.com/projects/477389906579101697
dan nama proyek tampil di sebelah tombol SHARE (lihat Gambar 3.24).
Catat alamat tersebut sebagai tautan permanen proyek.
3.6.7
Menyusun Rangkaian ESP32 dan DHT22
Rangkaian dapat disusun melalui dua
cara, yaitu secara grafis menggunakan tombol penambah komponen atau dengan
menuliskan konfigurasi pada berkas diagram.json. Kedua cara menghasilkan
rangkaian yang sama sesuai Tabel 3.3. Pada praktikum ini kedua cara digunakan,
dan rangkaian akhir disusun menggunakan cara kedua.
Cara 1: Melalui antarmuka grafis
- Pada panel Simulation, klik tombol +
berwarna biru di bagian atas.
- Ketik DHT22 pada
kotak pencarian komponen, lalu klik komponen DHT22. Sensor muncul
pada kanvas (Gambar 3.24).

Gambar 3.24 Sensor DHT22
ditambahkan ke kanvas simulasi
Keterangan: pilih DHT22, bukan DHT11. Kedua sensor memerlukan
konstanta tipe yang berbeda pada program, dan pemilihan yang tertukar
menyebabkan pembacaan gagal atau bernilai nan.
3.
Arahkan kursor ke kaki sensor dan
pin ESP32 untuk melihat labelnya. Kaki DHT22 berurutan dari kiri ke kanan
adalah VCC, SDA, NC, dan GND.
4.
Buat kabel dengan cara mengklik
satu kali pada kaki sensor, lalu mengklik satu kali pada pin tujuan di ESP32.
Buat tiga sambungan berikut:
a.
kaki VCC ke pin 3V3;
b.
kaki GND ke pin GND;
c.
kaki SDA ke pin 15.
5.
Biarkan kaki NC tidak
tersambung. Hasil penyambungan ditunjukkan pada Gambar 3.25.

Gambar 3.25 Rangkaian DHT22 dan
ESP32 yang disambungkan secara grafis
Keterangan: pada ESP32 DevKit, pin data diberi label angka 15,
bukan D15. Label D2 dan D3 pada papan merujuk ke jalur flash internal sehingga
tidak digunakan.
6.
Tekan Ctrl+S segera setelah
rangkaian selesai untuk menyimpan perubahan.
Keterangan: tanda titik di samping nama tab menandakan perubahan
yang belum disimpan. Perubahan yang belum disimpan akan hilang apabila halaman
dimuat ulang, sebagaimana dibahas pada subbab 3.9.
Cara 2: Melalui berkas diagram.json
- Klik tab diagram.json.
- Pilih seluruh isi berkas dengan Ctrl+A,
lalu hapus dengan tombol Delete.
- Ketik atau tempel konfigurasi pada Kode 3.1.
Kode 3.1 Isi berkas diagram.json
{
"version":
1,
"author":
"Georvin",
"editor":
"wokwi",
"parts":
[
{
"type": "board-esp32-devkit-c-v4", "id":
"esp",
"top":
0, "left": 0, "attrs": {} },
{
"type": "wokwi-dht22", "id": "dht1",
"top":
-100, "left": 150, "attrs": {} }
],
"connections":
[
[
"dht1:VCC", "esp:3V3", "red", [
"v0" ] ],
[
"dht1:GND", "esp:GND.1", "black", [
"v0" ] ],
[
"dht1:SDA", "esp:15", "green", [
"v0" ] ],
[
"esp:TX", "$serialMonitor:RX", "", [] ],
[
"esp:RX", "$serialMonitor:TX", "", [] ]
],
"dependencies":
{}
}
4.
Tekan Ctrl+S. Rangkaian
terbentuk otomatis pada panel Simulation dengan kabel merah ke 3V3, kabel hitam
ke GND, dan kabel hijau ke pin 15 (Gambar 3.26).

Gambar 3.26 Rangkaian yang
terbentuk dari konfigurasi diagram.json
Keterangan: bagian parts mendefinisikan komponen beserta
posisinya pada kanvas, sedangkan bagian connections mendefinisikan kabel dalam
format pin asal, pin tujuan, warna, dan jalur kabel. Dua sambungan terakhir
menghubungkan TX dan RX ESP32 ke Serial Monitor. ESP32 DevKit memiliki beberapa
pin GND (GND.1, GND.2, dan seterusnya) yang secara kelistrikan terhubung pada
jalur ground yang sama, sehingga pemilihan GND.1 hanya berpengaruh pada
kerapian gambar kabel.
3.6.8
Mendaftarkan Pustaka Program
Program membutuhkan tiga pustaka
eksternal, yaitu DHT sensor library dari Adafruit untuk membaca sensor,
Adafruit Unified Sensor sebagai dependensinya, dan PubSubClient dari Nick
O'Leary untuk komunikasi MQTT. Pustaka WiFi.h tidak perlu ditambahkan karena
sudah tersedia secara bawaan pada platform ESP32.
- Klik tab Library Manager, lalu klik
tombol + berwarna biru. Kotak pencarian pustaka muncul beserta opsi
UPLOAD A LIBRARY (Gambar 3.27).

Gambar 3.27 Kotak pencarian pada
Library Manager
2.
Ketik nama pustaka pada kotak
pencarian, lalu klik hasil yang sesuai. Ulangi untuk ketiga pustaka. Opsi
UPLOAD A LIBRARY tidak digunakan karena fungsinya untuk mengunggah berkas
pustaka dari komputer.
3.
Pada praktikum ini, pencarian gagal
dengan pesan Error loading library index :( karena gangguan pada server
indeks pustaka Wokwi (Gambar 3.28). Oleh karena itu, pustaka didaftarkan
melalui berkas teks dengan langkah berikut.

Gambar 3.28 Pesan galat ketika
Library Manager gagal memuat indeks pustaka
4.
Klik tanda panah ke bawah (▼) di
sebelah kanan tab Library Manager, pilih opsi untuk membuat berkas baru, lalu
beri nama libraries.txt.
5.
Isi berkas tersebut dengan tiga
baris pada Kode 3.2.
Kode 3.2 Isi berkas libraries.txt
DHT
sensor library
Adafruit
Unified Sensor
PubSubClient
6.
Tekan Ctrl+S. Tab libraries.txt
muncul di antara tab diagram.json dan Library Manager (Gambar 3.29). Wokwi akan
mengunduh pustaka yang tercantum secara otomatis pada saat simulasi pertama
kali dijalankan.

Gambar 3.29 Berkas libraries.txt
berisi daftar pustaka yang dibutuhkan
3.6.9
Menulis Program pada sketch.ino
- Klik tab sketch.ino.
- Pilih seluruh isi template bawaan dengan Ctrl+A,
lalu hapus dengan tombol Delete.
- Ketik atau tempel kode program pada Kode
3.3.
Kode 3.3 Kode program sketch.ino
1
#include <WiFi.h>
2
#include <PubSubClient.h>
3
#include "DHT.h"
4
5
#define DHTPIN 15
6
#define DHTTYPE DHT22
7
8
const char* ssid =
"Wokwi-GUEST";
9
const char* password = "";
10
11
const char* mqtt_server =
"mqtt.thingsboard.cloud";
12
const char* mqtt_clid =
"wokwi_praktikum_modul5";
13
const char* mqtt_user = "georvin";
14
const char* mqtt_pass =
"praktikum123";
15
const char* mqtt_topic =
"v1/devices/me/telemetry";
16
17
WiFiClient espClient;
18
PubSubClient client(espClient);
19
DHT dht(DHTPIN, DHTTYPE);
20
unsigned long lastMsg = 0;
21
22
void setup_wifi() {
23
delay(10);
24
Serial.println();
25
Serial.print("Connecting to ");
26
Serial.println(ssid);
27
28
WiFi.mode(WIFI_STA);
29
WiFi.begin(ssid, password, 6);
30
31
while (WiFi.status() != WL_CONNECTED) {
32
delay(500);
33
Serial.print(".");
34
}
35
36
Serial.println("");
37
Serial.println("WiFi
connected");
38
Serial.print("IP address: ");
39
Serial.println(WiFi.localIP());
40
}
41
42
void reconnect() {
43
while (!client.connected()) {
44
Serial.print("Attempting
MQTT connection...");
45
if (client.connect(mqtt_clid,
mqtt_user, mqtt_pass)) {
46
Serial.println("Thingsboard
is Connected !!");
47
} else {
48
Serial.print("failed,
rc=");
49
Serial.print(client.state());
50
Serial.println("
try again in 5 seconds");
51
delay(5000);
52
}
53
}
54
}
55
56
void setup() {
57
Serial.begin(115200);
58
dht.begin();
59
setup_wifi();
60
client.setServer(mqtt_server, 1883);
61
}
62
63
void loop() {
64
if (!client.connected()) {
65
reconnect();
66
}
67
client.loop();
68
69
unsigned long now = millis();
70
if (now - lastMsg > 5000) {
71
lastMsg = now;
72
73
float suhu =
dht.readTemperature();
74
float kelembaban =
dht.readHumidity();
75
76
if (isnan(suhu) ||
isnan(kelembaban)) {
77
Serial.println("Gagal
membaca sensor DHT!");
78
return;
79
}
80
81
char payload[64];
82
snprintf(payload,
sizeof(payload),
83
"{\"suhu\":%.1f,\"kelembaban\":%.1f}",
suhu, kelembaban);
84
85
Serial.print("Kirim:
");
86
Serial.println(payload);
87
client.publish(mqtt_topic,
payload);
88
}
89
}
4.
Sesuaikan baris 12 sampai 14 dengan
kredensial MQTT Basic yang didaftarkan pada perangkat (Tabel 3.6). Ketiga nilai
harus sama persis, termasuk huruf besar dan kecilnya.
5.
Gulir editor hingga baris paling
bawah dan pastikan program utuh, yaitu baris 89 berupa kurung kurawal penutup }
(Gambar 3.30).

Gambar 3.30 Bagian akhir program
pada editor sketch.ino
Keterangan: penyalinan yang tidak utuh menyebabkan kurung kurawal
penutup hilang dan kompilasi gagal. Kejadian ini sempat dialami dan dibahas
pada subbab 3.9.
6.
Tekan Ctrl+S. Tanda titik
pada tab sketch.ino hilang, menandakan program telah tersimpan.
Fungsi setiap bagian program
dijelaskan pada Tabel 3.8.
Tabel 3.8 Penjelasan bagian-bagian program sketch.ino
|
Baris |
Bagian |
Fungsi |
|
1–3 |
Pustaka |
Memuat pustaka WiFi untuk koneksi jaringan, PubSubClient untuk komunikasi
MQTT, dan DHT untuk membaca sensor |
|
5–6 |
Konstanta sensor |
Menetapkan pin data sensor pada GPIO 15 dan tipe sensor DHT22 |
|
8–9 |
Konfigurasi WiFi |
SSID jaringan virtual Wokwi-GUEST dengan kata sandi kosong |
|
11–15 |
Konfigurasi MQTT |
Alamat broker, Client ID, username, password, dan topik telemetry |
|
17–20 |
Objek global |
Klien TCP, klien MQTT, objek sensor, dan variabel penanda waktu
pengiriman terakhir |
|
22–40 |
setup_wifi() |
Mengaktifkan mode station, menyambung ke Wokwi-GUEST pada kanal 6,
menunggu hingga terhubung, lalu mencetak alamat IP |
|
42–54 |
reconnect() |
Mencoba koneksi ke broker dengan kredensial MQTT Basic; apabila gagal,
mencetak kode status (rc) dan mencoba lagi setiap 5 detik |
|
56–61 |
setup() |
Memulai komunikasi serial 115200 baud, menginisialisasi sensor,
menyambung WiFi, dan menetapkan alamat broker port 1883 |
|
63–67 |
loop(): koneksi |
Menyambung ulang apabila koneksi MQTT terputus dan menjalankan client.loop() untuk menjaga sesi tetap hidup |
|
69–71 |
loop(): pewaktu |
Menjalankan pengiriman setiap 5000 milidetik menggunakan millis() tanpa menghentikan program |
|
73–79 |
loop(): pembacaan |
Membaca suhu dan kelembaban; apabila hasilnya bukan angka (nan),
pengiriman pada putaran tersebut dilewati |
|
81–83 |
loop(): payload |
Menyusun payload JSON dengan key suhu dan kelembaban, masing-masing satu
angka di belakang koma |
|
85–87 |
loop(): pengiriman |
Mencetak payload ke Serial Monitor dan mempublikasikannya ke topik
telemetry |
Keterangan: parameter ketiga pada WiFi.begin() yang bernilai 6 merupakan nomor kanal jaringan
Wokwi-GUEST. Penetapan kanal mempercepat proses koneksi karena ESP32 tidak
perlu memindai seluruh kanal.
3.6.10
Menjalankan Simulasi
- Pastikan koneksi MQTTX telah diputus atau
aplikasinya telah ditutup (langkah terakhir pada 3.6.5).
- Klik tombol play berwarna hijau di
bagian atas panel Simulation.
- Tunggu proses persiapan. Pada saat pertama
kali dijalankan, Wokwi mengunduh pustaka yang tercantum pada libraries.txt
lalu mengompilasi program. Proses ini membutuhkan waktu sekitar 10 hingga
30 detik.
- Setelah kompilasi berhasil, simulasi
berjalan. Tombol play berubah menjadi tombol restart, stop,
dan pause, sedangkan pewaktu simulasi muncul di pojok kanan atas
panel.
- Amati Serial Monitor yang muncul di
bagian bawah panel Simulation. Keluaran yang diperoleh pada simulasi
pertama ditunjukkan pada Kode 3.4.
Kode 3.4 Keluaran Serial Monitor pada simulasi pertama
ets
Jul 29 2019 12:21:46
rst:0x1
(POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip:
0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO,
clock div:2
load:0x3fff0030,len:1156
load:0x40078000,len:11456
ho
0 tail 12 room 4
load:0x40080400,len:2972
entry
0x400805dc
Connecting
to Wokwi-GUEST
....
WiFi
connected
IP
address: 10.10.0.2
Attempting
MQTT connection...Thingsboard is Connected !!
Kirim:
{"suhu":24.0,"kelembaban":40.0}
Attempting
MQTT connection...Thingsboard is Connected !!
6.
Cocokkan keluaran dengan arti
setiap baris pada Tabel 3.9. Tampilan simulasi yang sedang berjalan ditunjukkan
pada Gambar 3.31.
Tabel 3.9 Arti baris keluaran Serial Monitor
|
Keluaran |
Arti |
|
ets Jul 29 2019 hingga entry 0x400805dc |
Pesan boot bawaan ROM ESP32 saat dinyalakan (POWERON_RESET) |
|
Connecting to Wokwi-GUEST |
Fungsi setup_wifi() mulai menyambung ke jaringan virtual |
|
.... |
Setiap titik menandakan 500 milidetik menunggu koneksi WiFi |
|
WiFi connected dan IP address: 10.10.0.2 |
ESP32 berhasil terhubung ke WiFi dan memperoleh alamat IP |
|
Attempting MQTT connection...Thingsboard is Connected !! |
Autentikasi MQTT Basic ke broker ThingsBoard berhasil |
|
Kirim: {"suhu":24.0,"kelembaban":40.0} |
Payload JSON dipublikasikan ke topik telemetry, berulang setiap 5 detik |

Gambar 3.31 Simulasi berjalan
dengan Serial Monitor menampilkan pengiriman data
Keterangan:
baris Attempting MQTT connection yang muncul kembali di antara baris Kirim
disebabkan oleh perebutan Client ID dengan MQTTX yang masih terhubung. Setelah
MQTTX diputus, baris tersebut hanya muncul satu kali di awal (subbab 3.9).
Keterangan:
apabila koneksi MQTT gagal, Serial Monitor menampilkan failed,
rc= diikuti kode status dari
PubSubClient. Nilai -2 menandakan kegagalan menjangkau server (masalah
jaringan), nilai 4 menandakan username atau password salah, dan nilai 5
menandakan klien tidak diizinkan.
3.6.11
Memverifikasi Data Simulasi di ThingsBoard
- Biarkan simulasi Wokwi tetap berjalan.
- Pindah ke tab ThingsBoard, buka Entities,
pilih Devices, lalu klik baris Praktikum_Modul5.
- Pilih tab Latest telemetry pada panel
Device details.
- Amati bahwa nilai kelembaban berubah dari 80 menjadi 40.0 dan nilai suhu berubah dari 50 menjadi 24.0, dengan waktu
pembaruan 2026-10-09 15:29:24 (Gambar
3.32). Nilai 24.0 dan 40.0 merupakan nilai bawaan sensor DHT22 pada Wokwi,
sehingga perubahan ini membuktikan bahwa data berasal dari simulasi, bukan
dari pengiriman manual sebelumnya.

Gambar 3.32 Telemetry berubah
menjadi nilai yang dikirim dari simulasi Wokwi
5.
Perhatikan bahwa format angka
berubah dari bilangan bulat (50 dan 80) menjadi bilangan desimal (24.0 dan
40.0) karena program menyusun payload dengan format satu angka di belakang koma
(%.1f).
3.6.12
Menguji Perubahan Nilai Sensor
- Pastikan simulasi sedang berjalan, ditandai
dengan pewaktu simulasi yang terus bertambah.
- Klik badan sensor DHT22 pada kanvas, yaitu
bagian putih yang berkisi-kisi. Jangan mengklik label maupun kaki sensor.
- Panel Editing DHT22 muncul di bagian
atas kanvas dengan dua penggeser, yaitu Temperature bernilai 24.0°C
dan Humidity bernilai 40.0% (Gambar 3.33).

Gambar 3.33 Panel pengaturan DHT22
dengan nilai bawaan
4.
Geser penggeser Temperature
ke kanan hingga menunjukkan 36.8°C (Gambar 3.34).

Gambar 3.34 Nilai suhu diubah
menjadi 36,8 °C dan terkirim melalui Serial Monitor
5.
Tunggu paling lama 5 detik. Baris
terakhir Serial Monitor menampilkan Kirim:
{"suhu":36.8,"kelembaban":40.0}.
6.
Buka tab ThingsBoard dan periksa Latest
telemetry. Nilai suhu berubah
menjadi 36.8 dengan waktu pembaruan 2026-10-09
16:01:40 (Gambar 3.35).

Gambar 3.35 Nilai suhu 36,8 °C
tercermin pada telemetry ThingsBoard
7.
Tutup panel Editing DHT22 dengan
menekan ikon X di pojok kanan panel.
Keterangan: dalam konteks studi kasus ruang server, nilai 36,8 °C
berada di atas ambang 35 °C sehingga tergolong kondisi critical sesuai Tabel
3.2. Penggeser ini juga akan digunakan untuk memicu setiap tingkat kondisi
ketika menguji alarm pada tahap lanjutan. Selain melalui penggeser, nilai awal
sensor dapat ditetapkan melalui atribut pada diagram.json, misalnya "attrs":
{ "temperature": "36", "humidity": "75"
}, sehingga simulasi langsung
dimulai dengan nilai tersebut.
3.6.13
Menyimpan dan Menutup Pekerjaan
- Pada Wokwi, tekan Ctrl+S dan pastikan
tidak ada tanda titik pada tab mana pun.
- Klik tombol stop untuk menghentikan
simulasi. Menghentikan simulasi hanya menghentikan pengiriman data baru;
kode, rangkaian, dan daftar pustaka tetap tersimpan di akun Wokwi.
- Tutup tab ThingsBoard. Perangkat,
kredensial, dan seluruh data telemetry tersimpan secara otomatis di
server.
- Tutup aplikasi MQTTX. Profil koneksi
tersimpan di dalam aplikasi pada komputer yang digunakan.
- Simpan informasi penting proyek sebagaimana
tercantum pada Lampiran 1.
Keterangan: untuk melanjutkan pekerjaan, proyek cukup dibuka
kembali melalui tautan proyek Wokwi dalam keadaan masuk menggunakan akun yang
sama, lalu simulasi dijalankan ulang.
3.7
Hasil Pengujian
Ringkasan hasil pengujian setiap
bagian sistem disajikan pada Tabel 3.10. Seluruh pengujian memberikan hasil
sesuai harapan.
Tabel 3.10 Ringkasan hasil pengujian
|
No |
Pengujian |
Hasil yang diharapkan |
Hasil yang diperoleh |
Status |
|
1 |
Autentikasi MQTT Basic dari MQTTX |
Koneksi diterima broker |
Terhubung, ikon daya merah (Gambar 3.13) |
Berhasil |
|
2 |
Publish data uji dari MQTTX |
Telemetry suhu 50 dan kelembaban 80 tersimpan |
Tersimpan pada 15:02:41 (Gambar 3.19) |
Berhasil |
|
3 |
Perubahan status perangkat |
Inactive menjadi Active |
Active setelah daftar diperbarui (Gambar 3.18) |
Berhasil |
|
4 |
Koneksi WiFi ESP32 |
Terhubung dan memperoleh alamat IP |
WiFi connected, IP 10.10.0.2 (Kode 3.4) |
Berhasil |
|
5 |
Koneksi MQTT ESP32 |
Pesan Thingsboard is Connected muncul |
Pesan muncul pada Serial Monitor (Kode 3.4) |
Berhasil |
|
6 |
Pengiriman data berkala |
Telemetry diperbarui setiap 5 detik |
Telemetry 24.0 dan 40.0 pada 15:29:24 (Gambar 3.32) |
Berhasil |
|
7 |
Respons perubahan nilai sensor |
Telemetry mengikuti nilai baru dalam 5 detik |
Suhu 36.8 pada 16:01:40 (Gambar 3.35) |
Berhasil |
3.8
Pembahasan
Hasil pengujian menunjukkan bahwa
seluruh rantai komunikasi dari sensor hingga cloud telah berfungsi. Terdapat
beberapa hal yang layak dibahas lebih lanjut dari implementasi ini.
Pertama, metode pengujian berlapis
terbukti bermanfaat. Ketika simulasi Wokwi sempat gagal terhubung akibat
gangguan jaringan, penyebabnya dapat segera dipastikan bukan berasal dari
kredensial maupun sisi server, karena keduanya sudah terbukti bekerja pada
tahap pengujian MQTTX. Tanpa langkah tersebut, proses penelusuran kesalahan
harus dilakukan terhadap empat kemungkinan sekaligus, yaitu kredensial, broker,
program, dan jaringan.
Kedua, pemilihan key JSON harus
konsisten di seluruh sistem. Payload yang dikirim menggunakan key suhu dan
kelembaban, sehingga rule chain pada tahap lanjutan juga harus merujuk pada msg.suhu
dan bukan msg.temperature.
Ketidakkonsistenan penamaan merupakan salah satu kesalahan yang paling sering
terjadi dan tidak menghasilkan pesan galat yang jelas.
Ketiga, penempatan logika
pengambilan keputusan pada sisi server merupakan keputusan arsitektur yang
penting. ESP32 dirancang hanya mengirimkan angka mentah tanpa mengetahui ambang
batas apa pun. Dengan demikian, apabila ambang batas perlu diubah, perubahan
cukup dilakukan pada rule chain tanpa perlu memprogram ulang perangkat yang
sudah terpasang di lapangan.
Keempat, aturan satu koneksi untuk
setiap Client ID pada broker MQTT terlihat nyata selama praktikum. Aturan ini
sebenarnya merupakan mekanisme pengaman, karena mencegah dua perangkat berbeda
mengaku sebagai perangkat yang sama. Konsekuensinya, alat uji dan perangkat
yang memakai kredensial identik tidak boleh dijalankan bersamaan.
3.9
Kendala dan Penyelesaian
Selama pengerjaan ditemui beberapa
kendala teknis. Seluruh kendala beserta penyebab dan penyelesaiannya dirangkum
pada Tabel 3.11, lalu dibahas satu per satu setelahnya.
Tabel 3.11 Kendala yang ditemui selama praktikum dan
penyelesaiannya
|
Kendala |
Penyebab |
Penyelesaian |
|
Rangkaian DHT22 hilang dari kanvas |
Halaman dimuat ulang sebelum perubahan disimpan |
Menyusun ulang rangkaian melalui diagram.json dan membiasakan menekan
Ctrl+S setiap selesai satu perubahan |
|
Error loading library index pada Library Manager |
Gangguan pada server indeks pustaka Wokwi |
Mendaftarkan pustaka melalui berkas libraries.txt |
|
Build failed dengan pesan expected '}' at end of input |
Kode tersalin tidak utuh dan berhenti di baris 81 |
Menyalin ulang seluruh kode dan memastikan baris terakhir berupa kurung
penutup |
|
MQTTX menampilkan Client not connected dan simulasi tertahan pada deretan
titik |
Koneksi WiFi komputer sempat terputus |
Menyambung ulang MQTTX, menghentikan simulasi, memuat ulang halaman, lalu
menjalankan kembali |
|
Session taken over (Code: 142) dan koneksi MQTT tersambung ulang
berkali-kali |
Client ID yang sama digunakan MQTTX dan Wokwi secara bersamaan |
Memutus MQTTX sehingga hanya Wokwi yang menggunakan Client ID tersebut |
a. Rangkaian hilang karena belum
disimpan
Setelah DHT22 ditambahkan dan
disambungkan secara grafis, halaman sempat dimuat ulang sebelum proyek
disimpan. Akibatnya, kanvas kembali hanya berisi ESP32 (Gambar 3.36). Kejadian
ini terjadi bersamaan dengan kegagalan Library Manager memuat indeks pustaka.
Rangkaian kemudian disusun ulang melalui diagram.json (Cara 2 pada 3.6.7) yang
lebih cepat dan tidak rawan kesalahan penempatan pin.

Gambar 3.36 Kanvas hanya berisi
ESP32 setelah halaman dimuat ulang sebelum disimpan
b. Library Manager gagal memuat
indeks pustaka
Pencarian pustaka sempat berjalan,
lalu berhenti dengan pesan Error loading library index :( sebagaimana
ditunjukkan pada Gambar 3.28. Gangguan ini berasal dari sisi server Wokwi dan
tidak dapat diatasi dari sisi pengguna. Penyelesaiannya adalah mendaftarkan
pustaka melalui berkas libraries.txt, yang menggunakan jalur pengunduhan
berbeda dari indeks pencarian.
c. Kompilasi gagal karena kode
tidak utuh
Pada percobaan pertama, kode yang
tertempel pada editor hanya sampai baris 81 sehingga kurung kurawal penutup
fungsi loop()
hilang. Kompilator menampilkan pesan expected '}' at end of input yang merujuk
pada pembukaan blok di baris 63 dan 70 (Gambar 3.37). Setelah kode disalin
ulang secara utuh, program berakhir di baris 89 dan kompilasi berhasil.

Gambar 3.37 Pesan Build failed
akibat kode yang tersalin tidak lengkap
d. Koneksi WiFi komputer terputus
Ketika koneksi WiFi komputer sempat
terputus, MQTTX kehilangan koneksi ke broker sehingga setiap upaya pengiriman
menghasilkan pesan Client not connected (Gambar 3.38). Pada saat yang sama,
simulasi Wokwi yang sedang berjalan tertahan pada deretan titik di Serial
Monitor karena sesi simulasi kehilangan hubungan dengan server Wokwi (Gambar
3.39).

Gambar 3.38 MQTTX menampilkan
Client not connected setelah koneksi WiFi terputus

Gambar 3.39 Simulasi tertahan pada
deretan titik saat menunggu koneksi WiFi
Kode program dan proyek tidak
mengalami perubahan apa pun. Penyelesaiannya adalah memastikan WiFi komputer
tersambung kembali, menyambung ulang MQTTX melalui tombol connect, lalu pada
Wokwi menghentikan simulasi, memuat ulang halaman, dan menjalankan simulasi
kembali hingga Serial Monitor menampilkan WiFi connected seperti pada Gambar
3.31.
e. Perebutan Client ID antara MQTTX
dan Wokwi
Setelah MQTTX dan Wokwi sama-sama
tersambung kembali, MQTTX menampilkan pesan The Broker has actively
disconnected, Reason: Session taken over (Code: 142) secara berulang tanpa ada
tombol yang ditekan (Gambar 3.40). Pesan ini menunjukkan bahwa broker memutus
MQTTX karena ada klien lain, yaitu Wokwi, yang tersambung dengan Client ID yang
sama. Sebaliknya, ketika MQTTX menyambung ulang secara otomatis, giliran Wokwi
yang terputus, sehingga Serial Monitor menampilkan baris Attempting MQTT
connection sebelum hampir setiap baris Kirim.

Gambar 3.40 Pesan Session taken
over pada MQTTX akibat Client ID digunakan oleh dua klien
Penyelesaiannya adalah memutus
koneksi MQTTX. Pada Gambar 3.41, ikon di pojok kanan atas MQTTX telah berubah
menjadi ikon play yang menandakan koneksi terputus. Riwayat pesan pada gambar
tersebut juga memperlihatkan pengiriman uji kedua dengan kelembaban 70 pada
pukul 15.46 yang dilakukan sebelum koneksi diputus. Setelah MQTTX tidak lagi
terhubung, Serial Monitor hanya menampilkan baris Kirim secara berurutan tanpa
disela upaya koneksi ulang (Gambar 3.42).

Gambar 3.41 MQTTX dalam keadaan
terputus beserta riwayat dua pesan uji

Gambar 3.42 Serial Monitor
menampilkan pengiriman data yang stabil setelah MQTTX diputus
BAB IV
PENUTUP
4.1
Kesimpulan
Berdasarkan implementasi dan pengujian yang telah
dilakukan, dapat ditarik kesimpulan sebagai berikut:
- Perangkat berhasil didaftarkan pada
ThingsBoard Cloud dengan kredensial MQTT Basic. Jenis kredensial ini
dipilih karena didukung secara langsung oleh pustaka PubSubClient pada
ESP32, sementara X.509 memerlukan penanganan TLS yang jauh lebih berat
untuk lingkungan simulasi.
- Jalur komunikasi MQTT berhasil diverifikasi
melalui pengiriman data manual dari MQTTX ke topik
v1/devices/me/telemetry. Data uji berupa suhu 50 dan kelembaban 80
tersimpan pada tab Latest telemetry, yang membuktikan bahwa kredensial,
alamat broker, topik, dan format payload telah benar sebelum program
perangkat ditulis.
- Program pada ESP32 yang disimulasikan di
Wokwi berhasil membaca sensor DHT22 dan mengirimkan data secara otomatis
setiap lima detik ke ThingsBoard Cloud. Keberhasilan ini ditandai dengan
pesan Thingsboard is Connected pada Serial Monitor dan perubahan nilai
telemetry menjadi 24.0 dan 40.0.
- Responsivitas sistem terbukti melalui
pengujian sebab-akibat. Perubahan nilai suhu dari 24,0 °C menjadi 36,8 °C
pada sensor tercermin pada telemetry ThingsBoard dalam waktu kurang dari
lima detik, sehingga rantai data dari ujung ke ujung dinyatakan berfungsi.
- Metode pengujian berlapis terbukti efektif
dalam mempersempit ruang penelusuran kesalahan. Dengan memastikan sisi
server berfungsi terlebih dahulu, kegagalan yang terjadi pada tahap
berikutnya dapat segera dipastikan bersumber dari program atau koneksi jaringan.
- Broker MQTT hanya mengizinkan satu koneksi
aktif untuk setiap Client ID, sehingga alat uji dan perangkat yang
menggunakan kredensial yang sama tidak dapat dijalankan secara bersamaan.
- Penempatan logika pengambilan keputusan pada
sisi server memungkinkan perubahan ambang batas dilakukan tanpa memprogram
ulang perangkat, sehingga sistem menjadi lebih mudah dirawat.
4.2
Saran
Beberapa saran yang dapat diberikan untuk pengembangan
dan pelaksanaan praktikum berikutnya adalah:
- Pastikan kredensial yang digunakan bersifat
unik dan berbeda dari contoh pada modul, karena kredensial MQTT Basic
berlaku di seluruh server ThingsBoard Cloud dan dapat menimbulkan konflik
antarpengguna.
- Jalankan hanya satu klien MQTT dalam satu
waktu untuk setiap Client ID. Putuskan MQTTX sebelum menjalankan simulasi
Wokwi.
- Biasakan menyimpan proyek Wokwi setiap
selesai melakukan satu perubahan, karena perubahan yang belum disimpan
akan hilang apabila halaman dimuat ulang.
- Siapkan dokumentasi berupa tangkapan layar
untuk setiap tahap sebagai cadangan apabila demonstrasi langsung
terkendala jaringan pada saat presentasi.
- Untuk pengembangan lebih lanjut, sistem
dapat dilengkapi dengan dashboard visualisasi, rule chain untuk
klasifikasi kondisi, pembentukan alarm bertingkat, serta notifikasi
melalui surat elektronik sesuai lingkup tahap lanjutan.
- Sistem ini dapat dikembangkan menjadi
implementasi nyata dengan mengganti nama dan kata sandi jaringan WiFi
serta menggunakan perangkat ESP32 dan sensor DHT22 fisik, tanpa perlu
mengubah struktur program yang telah dibangun.
DAFTAR PUSTAKA
Adafruit Industries. DHT Sensor Library. Tersedia di
https://github.com/adafruit/DHT-sensor-library. Diakses pada 9 Oktober 2026.
EMQ Technologies. MQTTX: Your All-in-one MQTT Client
Toolbox. Tersedia di https://mqttx.app/. Diakses pada 9 Oktober 2026.
Modul 5 Praktikum Internet of Things. Mencoba Platform
IoT Cloud Siap Pakai dengan Wokwi. Program Studi Informatika.
MQTT.org. MQTT: The Standard for IoT Messaging.
Tersedia di https://mqtt.org/. Diakses pada 9 Oktober 2026.
O'Leary, N. PubSubClient: Arduino Client for MQTT.
Tersedia di https://github.com/knolleary/pubsubclient. Diakses pada 9 Oktober
2026.
ThingsBoard. ThingsBoard Documentation. Tersedia di
https://thingsboard.io/docs/. Diakses pada 9 Oktober 2026.
Wokwi. Wokwi Documentation. Tersedia di
https://docs.wokwi.com/. Diakses pada 9 Oktober 2026.
LAMPIRAN
Lampiran
1 Informasi Proyek
|
Keterangan |
Nilai |
|
Tautan proyek Wokwi |
https://wokwi.com/projects/477389906579101697 |
|
Nama proyek Wokwi |
Praktikum Modul 5 IoT ThingsBoard |
|
Alamat ThingsBoard |
https://thingsboard.cloud |
|
Nama perangkat |
Praktikum_Modul5 |
|
Jenis kredensial |
MQTT Basic |
|
Client ID |
wokwi_praktikum_modul5 |
|
User Name |
georvin |
|
Alamat broker MQTT |
mqtt.thingsboard.cloud |
|
Port |
1883 |
|
Topik telemetry |
v1/devices/me/telemetry |
|
Key telemetry |
suhu, kelembaban |
|
Interval pengiriman |
5 detik |
|
Paket langganan |
ThingsBoard Cloud Free |
Tidak ada komentar:
Posting Komentar