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.
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.
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
| Gejala | Bukti yang diperiksa | Langkah berikut |
|---|---|---|
| Tidak ada Serial output | Power, kabel USB, baud, port | Selesaikan boot/power sebelum menyentuh MQTT |
| Sensor invalid | Raw data, wiring, pin, library | Uji sensor secara standalone |
| Wi-Fi tidak terhubung | SSID, RSSI, status WiFi | Jangan lanjut ke broker sebelum IP tersedia |
| Wi-Fi OK, MQTT gagal | Host, DNS/TCP, port, auth, mqtt.state() | Uji broker/client terpisah |
| MQTT OK, dashboard kosong | Topic, payload, device mapping | Bandingkan payload yang diterima broker |
| Data aneh | Raw sensor, unit, kalibrasi | Periksa 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 koreksiFormat 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
- Ubah satu variabel penting pada satu waktu.
- Simpan log sebelum dan sesudah perubahan.
- Jangan menghapus error message yang belum dipahami.
- Uji komponen secara standalone sebelum integrasi penuh.
- Gunakan payload minimal saat menguji koneksi.
- 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:
Sudah memahami alurnya?
Praktikkan konsep yang baru dipelajari melalui project, perangkat ESP32, telemetry, dashboard, atau Virtual Lab di Ruang IoT.