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
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
| Komponen | Qty | Estimasi (IDR) |
|---|---|---|
| ESP32 DevKit | 2–3 | ~90.000–135.000 |
| BME280 module I2C | 1 | ~35.000 |
| Soil moisture capacitive | 1–2 | ~25.000–50.000 |
| LDR + resistor 10kΩ | 1 | ~5.000 |
| Relay modul 2-ch | 1 | ~20.000 |
| Pompa DC mini + power supply | 1 | ~40.000–80.000 |
| Raspberry Pi / VPS broker | 1 | ~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/:
| Topic | Arah | Payload | Sumber 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 2 | Artikel | Peran 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
- Broker Mosquitto hidup —
systemctl status mosquitto mosquitto_sub -t "kodingindonesia/esp32/#" -vmenampilkan traffic- Gateway publish BME280 + tanah + cahaya setiap 15 detik
- Node aktuator merespons
mosquitto_pub -h 192.168.1.50 -u kindo_esp32 -P GANTI_PASSWORD_MQTT -t "kodingindonesia/esp32/pompa/kontrol" -m ON - Pompa fisik menyala — cek arus relay sebelum sambung ke pompa besar
- Grafana panel menampilkan data histori 1 jam terakhir
- Otomasi threshold: tanah < 30% → pompa ON tanpa intervensi manual
- (Opsional) SD Card mencatat saat WiFi dimatikan sementara
- (Opsional) Alert Grafana Telegram saat suhu > 35°C
Troubleshooting
- BME280 tidak terbaca: Cek alamat I2C
0x76vs0x77— ganti dibme.begin() - Soil selalu 0% atau 100%: Kalibrasi ulang
SOIL_DRY/SOIL_WETdi air vs tanah kering - Pompa tidak mati: Cek hysteresis — mungkin threshold terlalu dekat; tambah
for: 2 minutesdi HA - MQTT rc=-2: Broker tidak terjangkau — ping
192.168.1.50dari 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):
- Deep sleep ESP32 + DHT22 hemat baterai
- NVS + WiFiManager
- Broker Mosquitto pribadi + autentikasi
- I2C + sensor BME280
- OLED SSD1306
- OTA update firmware ESP32
- Home Assistant + ESP32 MQTT
- ESPHome flash ESP32 tanpa Arduino
- Node-RED dashboard IoT MQTT
- Sensor gerak PIR + lampu MQTT
- MQTT TLS + QoS + LWT
- NTP & timestamp ESP32
- Subscriber Python → MySQL
- InfluxDB + Grafana
- REST API vs MQTT
- ESP-NOW antar ESP32 tanpa router WiFi
- LoRa ESP32 + SX1278 jarak jauh
- ESP32-CAM MJPEG streaming
- Gateway LoRa → MQTT
- Migrasi ke PlatformIO di VS Code
- ESP32 + Firebase Realtime Database
- FreeRTOS multi-task Sensor + WiFi + MQTT
- Bluetooth BLE kirim data sensor ke smartphone
- Kontrol Servo & PWM gerakan presisi via MQTT
- ADC ESP32: Soil Moisture & LDR via MQTT
- ESP8266 / NodeMCU vs ESP32
- SD Card & SPI logging offline
- HTTPS & sertifikat ESP32 (WiFiClientSecure)
- 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).