Skip to content
Irvs EbajanIrvs
Back to ProjectsIoT + Mobile + Backend

EcoSprinkle

Water Smarter, Grow Better

Overview

Full-stack IoT smart irrigation platform. ESP32 reads soil moisture and DHT22 data, publishes via MQTT to a Node.js backend (with its own Aedes broker), stores readings in MongoDB, and serves a Flutter mobile app over REST + WebSocket. Includes a promotional landing page built with React/Vite/Tailwind.

Problem

  • 30–50% water waste from over-watering
  • Manual watering is time-consuming and inconsistent
  • High water bills and maintenance costs

Solution

  • Real-time soil moisture monitoring with automated pump control
  • Configurable watering schedules + auto mode
  • 24/7 remote monitoring via mobile app

System Architecture

┌─────────────┐   MQTT    ┌──────────────────┐   REST/WS   ┌──────────────────────┐
│  ESP32       │◄─────────►│  Node.js Backend  │◄───────────►│  Flutter Mobile App  │
│  (Sensors)   │  Telemetry│  (Aedes Broker)   │   HTTPS     │  (Cross-Platform)    │
└─────────────┘            └───────┬──────────┘             └──────────────────────┘
                                   │
                         ┌─────────▼─────────┐
                         │  MongoDB (Mongoose)│
                         └───────────────────┘

Key Features

  • Smart Irrigation — automated watering based on soil moisture thresholds
  • Scheduling & Automation — multiple schedules, auto mode
  • Mobile Control — real-time monitoring, push notifications
  • IoT Hardware — ESP32, DHT22, soil moisture sensor, relay module
  • Data Visualization — interactive charts for activity logs & water usage
  • WiFi Provisioning — QR code pairing, automatic reconnection
  • Smart Alerts — real-time plant health notifications

Technology Stack

Mobile

FlutterDartmqtt_clientsocket_io_clientfl_chartmobile_scanner

Backend

Node.jsExpressMongoDBMongooseAedes (MQTT)Socket.IOJWT

Hardware

ESP32Soil Moisture SensorDHT22Relay ModulePump

Website

React 18ViteTailwind CSSFramer Motion

Notable Design Decisions

  • Embedded MQTT broker (Aedes) inside the Node.js backend — no separate broker service
  • Dual communication: MQTT for device telemetry, REST + WebSocket for mobile app
  • QR code WiFi provisioning for zero-config device setup
  • JWT authentication with device-specific security keys
  • Flutter cross-platform from a single codebase (Android APK currently, iOS planned)