IOT2024Software Engineer

IoT Water Quality Monitoring System

An IoT-based water quality monitoring system built using ESP32, a custom HTTP backend, Flutter, and MongoDB. The system collects water parameter data from multiple sensors, including temperature, pH, turbidity, and TDS. Sensor readings are sent from the ESP32 to the backend via HTTP, stored in MongoDB, and displayed in a Flutter mobile application for realtime monitoring and water quality evaluation.

ESP32 & MicrocontrollersNode.jsFlutterMongoDB
IoT Water Quality Monitoring System Cover
1 / 1
IoT Water Quality Monitoring System — Gallery Image (1 of 1)

1. Context & Problem Statement

Water quality parameters such as temperature, pH, turbidity, and Total Dissolved Solids (TDS) are typically measured using separate instruments, making continuous monitoring difficult and requiring manual data collection.

I-SANSUS was developed as an IoT-based water quality monitoring system that continuously collects multiple water parameters using sensors connected to an ESP32. The device sends monitoring data to a custom backend through HTTP, where the readings are processed and stored in MongoDB.

A Flutter mobile application provides users with a centralized dashboard to monitor current water conditions, view individual parameters, and understand the overall water quality status remotely.

2. System Architecture & Workflow

I-SANSUS IoT Monitoring Architecture

[Water Container / Water Source]
                │
                ▼
      [Sensor Layer]
   ├─ Temperature Sensor
   ├─ pH Sensor
   ├─ Turbidity Sensor
   └─ TDS Sensor
                │
                ▼
        [ESP32 Device]
   ├─ Sensor acquisition
   ├─ Value calibration
   ├─ Local data formatting
   └─ HTTP communication
                │
                │ POST /api/monitoring
                ▼
       [Backend Service]
   ├─ HTTP API Endpoint
   ├─ Authentication / Device Validation
   ├─ Monitoring Data Processing
   ├─ Threshold Rule Evaluation
   ├─ Water Condition Classification
   └─ Data Access Layer
                │
                ▼
           [MongoDB]
   ├─ monitoring_readings
   ├─ devices
   ├─ alerts / status
   └─ historical_logs
                │
                ▲
                │ GET /api/latest
                │ GET /api/history
                │ GET /api/status
                ▼
      [Flutter Mobile Application]
   ├─ Realtime Monitoring Dashboard
   ├─ Parameter Detail Screen
   ├─ Water Quality Status View
   └─ Historical Monitoring Visualization

3. Technical Highlights & Automation

  • Multi-Sensor IoT Monitoring: Integrated temperature, pH, turbidity, and TDS sensors into a single ESP32-based monitoring device.
  • ESP32 Edge Device: Handles sensor acquisition, data formatting, and Wi-Fi communication before transmitting readings to the backend.
  • Custom HTTP Communication: Designed a lightweight HTTP/JSON communication layer between the ESP32 and backend without relying on third-party IoT platforms.
  • Custom Backend API: Built dedicated REST API endpoints for receiving sensor readings, retrieving monitoring data, and serving the mobile application.
  • MongoDB Data Storage: Stores sensor readings, device information, and historical monitoring data in a flexible document-based database.
  • Flutter Mobile Application: Developed a cross-platform mobile dashboard for monitoring water parameters and overall water condition.
  • Water Quality Evaluation: Processes multiple sensor parameters to provide a simplified water condition status for the user.
  • Remote Monitoring: Allows users to monitor water conditions remotely without directly accessing the physical sensor device.

4. Measurable Results & Impact

  • Combined four water quality parameters into a single IoT monitoring system.
  • Eliminated the need to manually check each water parameter using separate monitoring devices.
  • Enabled remote access to water quality data through a Flutter mobile application.
  • Centralized current and historical sensor readings in MongoDB for easier monitoring and analysis.
  • Provided users with a simplified water quality status based on multiple sensor measurements.
  • Created an end-to-end IoT architecture covering sensor acquisition, ESP32 communication, backend processing, database storage, and mobile visualization.

Related Case Studies