Laporan Proyek IoT Vermikompos

Implementasi Sistem Monitoring Berbasis MQTT & Docker

Ringkasan Proyek

Proyek ini adalah sistem IoT (Internet of Things) lengkap yang dirancang untuk memantau lingkungan vermikompos (budidaya cacing tanah) secara real-time. Sistem ini menggunakan mikrokontroler ESP32 untuk mengumpulkan data dari berbagai sensor. Data tersebut kemudian dikirim melalui protokol MQTT ke sebuah broker, diolah oleh layanan backend, disimpan dalam database, dan ditampilkan pada dashboard web interaktif.

Arsitektur Sistem

Arsitektur proyek ini terdiri dari empat lapisan utama yang bekerja secara sinergis untuk menyediakan fungsionalitas penuh dari pengumpulan data hingga visualisasi.

1. Lapisan Fisik (ESP32)

Merupakan ujung tombak sistem. Perangkat ESP32 membaca data dari sensor suhu, kelembaban, dan lainnya, lalu mempublikasikannya ke MQTT broker.

2. Lapisan Komunikasi (MQTT)

Menggunakan broker Mosquitto sebagai pusat pertukaran pesan yang menjamin komunikasi cepat dan efisien antara perangkat dan backend.

3. Lapisan Backend (Node.js & MySQL)

Layanan "MQTT Bridge" berfungsi sebagai otak sistem, memproses pesan, menyimpannya ke database, dan menyediakan API serta koneksi WebSocket.

4. Lapisan Presentasi (Web Dashboard)

Antarmuka pengguna yang menampilkan data real-time dalam bentuk grafik dan tabel, serta menyediakan kontrol untuk mengirim perintah.

Dokumentasi & Panduan Lengkap

Untuk pemahaman yang lebih mendalam, pemeliharaan, dan pengembangan lebih lanjut, silakan merujuk ke panduan-panduan detail berikut:

Contoh Kode & Topologi Sistem

Topologi Sistem

ESP32 & Sensor
MQTT Broker (Mosquitto)
Node.js MQTT Bridge
← ↓ →
MySQL DB
Web Dashboard

Kode Firmware ESP32 (C++)

Fungsi ini mempersiapkan data sensor dalam format JSON dan mempublikasikannya ke topik MQTT.

bool sendDataViaMQTT(const SensorData& data) {
    if (!mqttManager.isConnected()) { return false; }
    DynamicJsonDocument doc(512);
    doc["temperature"] = data.temperature;
    doc["humidity"] = data.humidity;
    doc["data_valid"] = data.isValid;
    return mqttManager.publishSensorData(doc);
}

Hasil Uji Coba & Data Dummy

Berikut adalah contoh data yang dikumpulkan selama periode uji coba 1 jam, menunjukkan respons sistem terhadap perubahan lingkungan.

Log Data & Aksi Sistem

Waktu Suhu Udara (°C) Kelembaban (%) Kelembaban Tanah (%) Status & Aksi
10:00:05 28.5 75.2 68.5 Normal
10:20:15 30.2 69.5 61.8 Suhu Tinggi
Aktivasi Pompa (Mode Pendinginan) Aksi Sistem
10:50:35 28.8 75.0 59.5 Tanah Kering
Aktivasi Pompa (Mode Penyiraman) Aksi Sistem
11:00:45 28.6 76.2 72.5 Normal

File-file Kunci

Berikut adalah beberapa file paling penting dalam struktur proyek ini.

docker-compose.yml
docs/MQTT_TOPICS_GUIDE.md
esp32/src/main_mqtt_example.cpp
api/mqtt-bridge.js
dashboard/public/dashboard.js
database/mqtt_schema.sql