Kembali ke Katalog Modul
MODUL 28 DEEP DIVE

Pembuatan Dashboard IoT Real-Time (Chart.js)

MODUL 28 (SPESIALIS IOT): DASHBOARD IOT REAL-TIME


📌 META MODUL & PRASYARAT

  • Bidang Spesialisasi: Frontend Data Visualization & Real-time Web Dashboard.
  • Target Pembaca: Pembelajar yang sudah menguasai MySQL Schema (Modul 27).
  • Learning Outcome:
  • Mampu membangun antarmuka Dashboard IoT modern menggunakan HTML5, CSS Grid/Flexbox, dan Vanilla JS.
  • Mampu membuat Grafik Tren Data Sensor Interaktif menggunakan Chart.js.
  • Mengintegrasikan komponen Radial Gauge, Status Indicators, dan Toggle Switches.
  • Menghubungkan Dashboard ke WebSockets / MQTT WebSocket Client untuk update animasi < 10ms.
  • Estimasi Waktu Belajar: 120 Menit.
  • Tingkat Kesulitan: 🟢 Pemula - Menengah (Level 28 / 40).
  • Prasyarat: Modul 27 (MySQL Database Schema Design untuk Telemetri Sensor & Logs).

⚡ CHEAT SHEET INTEGRASI CHART.JS TELEMETRI REAL-TIME

<!DOCTYPE html>
<html>
<head>
<title>Deeptech Real-Time Sensor Dashboard</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body style="background:#09090b; color:#fff; font-family:sans-serif; padding:20px;">
<h2>Monitoring Suhu ESP32 (Real-Time)</h2>
<div style="width: 600px; height: 300px; background:#18181b; padding:16px; border-radius:12px;">
<canvas id="tempChart"></canvas>
</div>

<script>
const ctx = document.getElementById('tempChart').getContext('2d');
const tempChart = new Chart(ctx, {
type: 'line',
data: {
labels: [], // Waktu (HH:mm:ss)
datasets: [{
label: 'Suhu (°C)',
data: [],
borderColor: '#38bdf8',
backgroundColor: 'rgba(56, 189, 248, 0.1)',
fill: true,
tension: 0.4
}]
},
options: { responsive: true, maintainAspectRatio: false }
});

// Fungsi memperbarui grafik saat data baru masuk dari WebSockets
function addDataPoint(timeStr, tempValue) {
tempChart.data.labels.push(timeStr);
tempChart.data.datasets[0].data.push(tempValue);

// Batasi maksimal 20 titik data di grafik
if (tempChart.data.labels.length > 20) {
tempChart.data.labels.shift();
tempChart.data.datasets[0].data.shift();
}
tempChart.update();
}
</script>
</body>
</html>



Latihan & Quiz Evaluasi Modul

Progres Quiz: 0 / 2 Soal
SOAL #1
Library JavaScript visualisasi data manakah yang paling populer dan ringan digunakan untuk membuat grafik garis (*line chart*) tren sensor real-time di web?
SOAL #2
Metode manakah pada instans Chart.js yang dipanggil untuk memperbarui tampilan grafik setelah kita menambahkan data titik sensor baru ke array data?

Kunci Jawaban & Pembahasan

Kunci Jawaban: 1. b. Chart.js, 2. b. tempChart.update().


Apakah Anda siap lanjut ke Modul 29: Pemrograman Node-RED Flow & Visual Builder?