Ruang IoT · IoT

Praktikum Debugging IoT: Diagnosis ESP32 dari Sensor, Wi-Fi, MQTT hingga Dashboard

Panduan praktikum troubleshooting IoT secara berlapis dengan startup self-check, matriks diagnosis, error injection, dan diagnostic learning log.

Penulis
Ruang IoT Admin
Dipublikasikan
13 Agustus 2026
Waktu baca
3 menit

Artikel ini disusun sebagai panduan teknis Ruang IoT. Gunakan daftar isi untuk berpindah antarbagian dan ikuti langkah secara berurutan ketika artikel memuat praktik atau konfigurasi.

Mulai membaca
Ilustrasi tutorial: Praktikum Debugging IoT: Diagnosis ESP32 dari Sensor, Wi-Fi, MQTT hingga Dashboard
Ilustrasi praktikum Ruang IoT.

Debugging sistem IoT sering gagal karena semua masalah dianggap sebagai “MQTT error” atau “sensor rusak”. Praktikum ini mengajarkan diagnosis berlapis: power → boot → sensor → Wi-Fi → DNS/TCP → MQTT → payload → dashboard. Setiap lapisan harus mempunyai bukti sebelum beralih ke lapisan berikutnya.

Tujuan praktikum

  • Membuat log startup yang dapat dibaca manusia.
  • Mengisolasi sumber masalah berdasarkan layer.
  • Membedakan error sensor, jaringan, broker, dan aplikasi.
  • Membuat checklist reproduksi sebelum melakukan perubahan source.

Bangun startup self-check

void printBootInfo() {
  Serial.println("=== DEVICE BOOT ===");
  Serial.printf("Chip model : %s\n", ESP.getChipModel());
  Serial.printf("Free heap  : %u\n", ESP.getFreeHeap());
  Serial.printf("Reset      : %d\n", esp_reset_reason());
}

bool checkSensor() {
  int raw = analogRead(34);
  bool ok = raw >= 0 && raw <= 4095;
  Serial.printf("[SENSOR] raw=%d status=%s\n", raw, ok ? "OK" : "FAIL");
  return ok;
}

void checkWiFi() {
  Serial.printf("[WIFI] status=%d rssi=%d ip=%s\n",
    WiFi.status(), WiFi.RSSI(), WiFi.localIP().toString().c_str());
}

void checkMqtt() {
  Serial.printf("[MQTT] connected=%s state=%d\n",
    mqtt.connected() ? "YES" : "NO", mqtt.state());
}

Gunakan matriks diagnosis

GejalaBukti yang diperiksaLangkah berikut
Tidak ada Serial outputPower, kabel USB, baud, portSelesaikan boot/power sebelum menyentuh MQTT
Sensor invalidRaw data, wiring, pin, libraryUji sensor secara standalone
Wi-Fi tidak terhubungSSID, RSSI, status WiFiJangan lanjut ke broker sebelum IP tersedia
Wi-Fi OK, MQTT gagalHost, DNS/TCP, port, auth, mqtt.state()Uji broker/client terpisah
MQTT OK, dashboard kosongTopic, payload, device mappingBandingkan payload yang diterima broker
Data anehRaw sensor, unit, kalibrasiPeriksa transformasi sebelum visualisasi

Skenario praktikum error injection

Guru atau penguji dapat sengaja membuat satu kesalahan setiap ronde. Contoh: salah GPIO sensor, password Wi-Fi salah, hostname broker salah, topic salah, atau key JSON berubah. Peserta tidak boleh memperbaiki secara acak; mereka harus menuliskan hipotesis, bukti log, tindakan, dan hasil.

Format diagnostic learning log

Waktu      : 10:21:33
Tahap      : MQTT connect
Gejala     : Wi-Fi connected, MQTT state=-2
Hipotesis  : host/port tidak dapat dijangkau
Bukti      : IP lokal tersedia, sensor normal
Tindakan   : periksa hostname dan port broker
Hasil      : typo hostname ditemukan; koneksi berhasil setelah koreksi

Format tersebut membuat proses troubleshooting dapat ditinjau ulang. Nilai pendidikan bukan hanya “akhirnya berhasil”, tetapi bagaimana peserta menemukan, memahami, dan memperbaiki kesalahan.

Aturan debugging yang disarankan

  1. Ubah satu variabel penting pada satu waktu.
  2. Simpan log sebelum dan sesudah perubahan.
  3. Jangan menghapus error message yang belum dipahami.
  4. Uji komponen secara standalone sebelum integrasi penuh.
  5. Gunakan payload minimal saat menguji koneksi.
  6. Setelah sistem pulih, kembalikan pengujian normal dan verifikasi regresi.

Kriteria keberhasilan

Peserta mampu menemukan minimal empat jenis error yang diinjeksi tanpa trial-and-error acak, menyertakan bukti untuk setiap diagnosis, dan menghasilkan sistem yang kembali bekerja setelah koreksi. Praktikum ini sangat cocok sebelum mahasiswa/siswa mengerjakan proyek IoT yang lebih besar.

Prinsip Ruang IoT: log proses debugging bernilai sebagai jejak belajar. Catatan jenis error, perubahan source, tindakan perbaikan, dan hasil verifikasi dapat menjadi dasar evaluasi proses, bukan hanya hasil akhir.

Referensi resmi dan bacaan lanjut

Gunakan dokumentasi resmi berikut untuk memeriksa API, kompatibilitas board, dan perubahan versi library:

TUTORIAL SELESAI

Sudah memahami alurnya?

Praktikkan konsep yang baru dipelajari melalui project, perangkat ESP32, telemetry, dashboard, atau Virtual Lab di Ruang IoT.

Buka Ruang IoT