Technical Archive // Vol. 04 // Software Stack
Software Architecture

Software Architecture:
Embedded to Cloud Integration

Analisis mendalam mengenai pemilihan teknologi perangkat lunak, mulai dari logika firmware tingkat rendah hingga antarmuka pengguna berbasis web modern.

Firmware
C++ / PlatformIO
Protocol
MQTT Pub/Sub
Full Stack
MERN + Next.js

1. Firmware Mikrokontroler (Edge Layer)

Logika kendali yang tertanam langsung pada perangkat keras.

environment.ini

[env:esp32dev]

platform = espressif32

framework = arduino

board = esp32dev

Menggunakan C++ dengan framework Arduino untuk abstraksi register hardware. PlatformIO digunakan sebagai manajemen build system yang lebih modern dibanding Arduino IDE standar, memungkinkan integrasi Continuous Integration (CI) dan library management yang lebih baik.

FLC / Fuzzy Logic Control

Implementasi logika Fuzzy Mamdani (Fuzzifikasi, Inferensi, Defuzzifikasi) secara efisien.

PubSubClient

Klien MQTT ringan untuk publish data sensor dan subscribe perintah kontrol.

Wire.h

Komunikasi I2C untuk sensor SHT40 dan RTC.

WiFi.h & HTTPClient

Koneksi jaringan dan fallback komunikasi HTTP jika MQTT gagal.

2. Protokol Komunikasi (Network Layer)

Mekanisme transmisi data antar perangkat.

Message Queuing Telemetry Transport (MQTT)

Dipilih karena kepantingan (latency rendah) dan ukuran payload yang kecil, sangat cocok untuk jaringan dengan bandwidth terbatas atau koneksi seluler (GPRS). Menggunakan pola Publish/Subscribe yang decouples producer (ESP32) dan consumer (Web Dashboard).

Topic: broiler/feeds/temperature
Topic: broiler/feeds/humidity
QoS: Level 1 (At least once delivery)

Alur Data (JSON Payload)

{ "device_id": "ESP32_001", "timestamp": 1678900000, "data": { "temp": 28.5, "hum": 65, "fuzzy_output": 45, "heater_status": "OFF", "fan_speed": 30 }, "age_days": 14 }

3 & 4. Backend & Frontend (Cloud & Client)

Infrastruktur server dan antarmuka pengguna.

Backend & Database

Node.js + MongoDB

Node.js (Runtime)

Berfungsi sebagai middleware atau broker gateway tambahan (jika diperlukan) dan API server. Menggunakan arsitektur Event-Driven, Non-Blocking I/O yang mampu menangani koneksi konkuren tinggi dari banyak perangkat IoT secara simultan.

MongoDB (NoSQL)

Database schema-less yang ideal untuk data time-series (log suhu/kelembapan per detik). Mendukung Aggregation Pipeline yang powerful untuk menghitung rata-rata harian, grafik tren, dan deteksi anomali secara cepat.

Frontend Dashboard

Next.js (React)

Framework React berbasis Server-Side Rendering (SSR) yang memberikan performa loading cepat dan SEO-friendly. Digunakan untuk membangun antarmuka admin yang responsif.

Fitur
Real-time Chart
Fitur
Historical Log
Fitur
Manual Override
Fitur
Phase Management
Authentication via NextAuth.js / JWT

Arsitektur Alur Data End-to-End

ESP32
Edge Compute
MQTT Broker
Pub/Sub Protocol
Backend
Node + MongoDB
Dashboard
Next.js UI