Pendahuluan — Penutup Seri 2 ESP32/IoT Lanjutan

Selamat! Kamu sudah menempuh 28 artikel Seri 2 — dari deep sleep (#11) hingga HTTPS (#38). Artikel ini adalah capstone penutup yang menggabungkan sensor, aktuator, broker MQTT, dan dashboard ke dalam satu proyek nyata: smart greenhouse (rumah kaca pintar).

Di capstone Seri 1 (#10), kamu membangun dashboard hybrid Web + MQTT untuk satu sensor DHT22. Di capstone Seri 2, skala naik: multi-sensor (udara + tanah + cahaya), multi-aktuator (pompa air + ventilasi), multi-node (gateway utama + node kebun hemat baterai), dan dashboard histori di Grafana (#19).

Prasyarat wajib: Sudah paham BME280 I2C (#13), broker Mosquitto (#16), soil moisture ADC (#35), dan idealnya sudah baca PIR (#24) serta deep sleep (#11).

Apa yang Akan Kamu Bangun?

Sistem greenhouse skala rumahan / UMKM kecil dengan komponen berikut:

  • Gateway utama — ESP32 di dalam rumah kaca: BME280 (suhu, kelembaban udara, tekanan) + soil moisture capacitive + LDR cahaya
  • Node aktuator — ESP32 + relay modul: kontrol pompa irigasi dan lampu grow (opsional)
  • Node kebun (opsional) — ESP32 deep sleep di ujung lahan: kirim data tanah periodik
  • Sensor gerak (opsional) — PIR di pintu greenhouse untuk lampu koridor
  • Broker MQTT — Mosquitto pribadi di Raspberry Pi / VPS (#16)
  • Dashboard — Grafana panel suhu, kelembaban tanah, status pompa; alert Telegram opsional
  • Backup offline — log CSV ke SD Card (#37) saat WiFi putus

Arsitektur Sistem Greenhouse

Broker Mosquitto 192.168.1.50:1883 · auth kindo_esp32 Topic: kodingindonesia/esp32/... Pusat MQTT — semua publish & subscribe lewat sini Gateway utama BME280 + soil moisture + LDR GPIO 21/22 · 34 · 35 Node aktuator Relay pompa + lampu grow GPIO 26 · 27 · topic pompa/kontrol Node deep sleep opsional · probe tanah jauh (#11) Servo flap ventilasi opsional · topic servo/sudut (#33) Dashboard & Otomasi InfluxDB + Grafana (#19) · Home Assistant (#21) · Node-RED (#23) Subscriber Python (#18) · alert Telegram · threshold pompa SD #37 backup saat offline publish sensor ↑ perintah kontrol ↓ subscribe data ↓ publish otomasi ↑
Diagram alur smart greenhouse — sensor publish ↑ ke broker; dashboard subscribe ↓ histori & publish ↑ otomasi; aktuator terima perintah ↓ dari broker.

Alur data: sensor publish JSON ke MQTT → subscriber Python/InfluxDB menyimpan histori → Grafana menampilkan grafik → otomasi (Node-RED / HA / firmware) mengontrol pompa berdasarkan threshold kelembaban tanah.

Estimasi Biaya Hardware

KomponenQtyEstimasi (IDR)
ESP32 DevKit2–3~90.000–135.000
BME280 module I2C1~35.000
Soil moisture capacitive1–2~25.000–50.000
LDR + resistor 10kΩ1~5.000
Relay modul 2-ch1~20.000
Pompa DC mini + power supply1~40.000–80.000
Raspberry Pi / VPS broker1~500.000+ (atau pakai PC lama)
Total minimal~215.000 (tanpa broker baru)

Software stack (Mosquitto, InfluxDB, Grafana, ESP32 firmware) gratis open source. Biaya listrik broker 24/7 diperhitungkan terpisah.

Hierarki Topic MQTT Greenhouse

Konvensi Seri 2 — semua node memakai prefix kodingindonesia/esp32/:

TopicArahPayloadSumber artikel
.../bme280/data publish {"suhu":28.1,"kelembaban":72.0,"tekanan":1008.5,"unix":1782977400} #13
.../tanah/data publish {"kelembaban_tanah":42,"unix":1782977400} #35
.../cahaya/data publish {"cahaya_percent":78,"unix":1782977400} #35
.../pompa/kontrol subscribe ON / OFF / AUTO capstone
.../pir/gerak publish {"gerak":true,"lampu":"ON"} #24
.../servo/sudut subscribe 120 (derajat flap) #33

Timestamp unix: 1782977400 = 2026-07-02T14:30:00 UTC — konsisten dengan NTP (#34) di seluruh Seri 2.

Catatan topic pompa: di #35, relay pompa masih memakai kodingindonesia/esp32/lampu/kontrol. Di capstone ini kita pakai .../pompa/kontrol agar irigasi terpisah dari lampu koridor PIR (.../lampu/kontrol) — pola relay tetap sama seperti #8.

Perbandingan Jalur yang Digabung

Jalur Seri 2ArtikelPeran di Greenhouse
A — Hardware #11, #13, #24, #35 Sensor + deep sleep + PIR
B — Infrastruktur #16, #17, #18, #19 Broker, TLS, histori, Grafana
C — Smart home #21, #23 HA entity + Node-RED otomasi
D — Jarak jauh #26, #28 LoRa node kebun luas (opsional)
E — Tooling #29, #31 PlatformIO monorepo + FreeRTOS
Tier 2 #33, #37, #38 Servo flap, SD backup, HTTPS alert

Checklist Uji Coba End-to-End

  1. Broker Mosquitto hidup — systemctl status mosquitto
  2. mosquitto_sub -t "kodingindonesia/esp32/#" -v menampilkan traffic
  3. Gateway publish BME280 + tanah + cahaya setiap 15 detik
  4. Node aktuator merespons mosquitto_pub -h 192.168.1.50 -u kindo_esp32 -P GANTI_PASSWORD_MQTT -t "kodingindonesia/esp32/pompa/kontrol" -m ON
  5. Pompa fisik menyala — cek arus relay sebelum sambung ke pompa besar
  6. Grafana panel menampilkan data histori 1 jam terakhir
  7. Otomasi threshold: tanah < 30% → pompa ON tanpa intervensi manual
  8. (Opsional) SD Card mencatat saat WiFi dimatikan sementara
  9. (Opsional) Alert Grafana Telegram saat suhu > 35°C

Troubleshooting

  • BME280 tidak terbaca: Cek alamat I2C 0x76 vs 0x77 — ganti di bme.begin()
  • Soil selalu 0% atau 100%: Kalibrasi ulang SOIL_DRY / SOIL_WET di air vs tanah kering
  • Pompa tidak mati: Cek hysteresis — mungkin threshold terlalu dekat; tambah for: 2 minutes di HA
  • MQTT rc=-2: Broker tidak terjangkau — ping 192.168.1.50 dari ESP32 serial monitor
  • Grafana kosong: Pastikan subscriber Python jalan dan bucket InfluxDB menerima measurement tanah
  • Relay terbalik: Banyak modul active LOW — LOW = ON, HIGH = OFF

Indeks Lengkap Seri 2 ESP32/IoT Lanjutan (29 Artikel)

Ini adalah indeks resmi Seri 2 — diselaraskan dengan capstone Seri 1 (#10):

  1. Deep sleep ESP32 + DHT22 hemat baterai
  2. NVS + WiFiManager
  3. Broker Mosquitto pribadi + autentikasi
  4. I2C + sensor BME280
  5. OLED SSD1306
  6. OTA update firmware ESP32
  7. Home Assistant + ESP32 MQTT
  8. ESPHome flash ESP32 tanpa Arduino
  9. Node-RED dashboard IoT MQTT
  10. Sensor gerak PIR + lampu MQTT
  11. MQTT TLS + QoS + LWT
  12. NTP & timestamp ESP32
  13. Subscriber Python → MySQL
  14. InfluxDB + Grafana
  15. REST API vs MQTT
  16. ESP-NOW antar ESP32 tanpa router WiFi
  17. LoRa ESP32 + SX1278 jarak jauh
  18. ESP32-CAM MJPEG streaming
  19. Gateway LoRa → MQTT
  20. Migrasi ke PlatformIO di VS Code
  21. ESP32 + Firebase Realtime Database
  22. FreeRTOS multi-task Sensor + WiFi + MQTT
  23. Bluetooth BLE kirim data sensor ke smartphone
  24. Kontrol Servo & PWM gerakan presisi via MQTT
  25. ADC ESP32: Soil Moisture & LDR via MQTT
  26. ESP8266 / NodeMCU vs ESP32
  27. SD Card & SPI logging offline
  28. HTTPS & sertifikat ESP32 (WiFiClientSecure)
  29. Smart Greenhouse capstone — artikel ini (penutup Seri 2)

FAQ — Pertanyaan Umum Greenhouse IoT

Apakah bisa pakai satu ESP32 untuk semua sensor dan relay?

Ya untuk prototipe skala kecil — gateway utama di artikel ini sudah menggabungkan BME280 + soil + LDR. Untuk produksi, pisahkan node aktuator agar reset sensor tidak mematikan pompa secara tidak sengaja.

Broker test.mosquitto.org cukup untuk greenhouse?

Tidak untuk data produksi — pakai broker sendiri (#16). Broker publik cocok hanya untuk uji coba 15 menit pertama.

Soil moisture resistif vs capacitive?

Capacitive lebih awet di tanah basah — sudah dibahas di #35. Probe resistif murah tapi korosi dalam berminggu-minggu.

Berapa lama baterai node deep sleep?

Dengan 18650 3000 mAh dan wake tiap 15 menit, estimasi 2–4 minggu — tergantung durasi WiFi connect. Optimasi: kurangi payload JSON, matikan LED board.

Apakah Seri 2 berakhir setelah artikel ini?

Ya — 29/29 artikel inti selesai. Topik Fase 3 (MicroPython, GPRS, Zigbee) akan ditulis jika ada permintaan komunitas.

Penutup — Terima Kasih Mengikuti Seri 2!

Kamu sekarang punya fondasi lengkap IoT embedded: dari sensor digital & analog, protokol MQTT & HTTPS, broker & dashboard, hingga smart home & cloud. Proyek greenhouse ini bisa dikembangkan ke skala komersial — tambah kamera (#27), gateway LoRa (#28), atau Firebase (#30) untuk monitoring mobile.

Seri 2 selesai — 29/29 artikel. Share proyek greenhouse kamu ke komunitas, dan pantau artikel baru di Koding Indonesia untuk topik Fase 3 (MicroPython, GPRS, Zigbee, dan lainnya).