Welcome to Kerala Project Center.

IoT Water Quality Monitor

IoT Water Quality Monitor

Students testing river water quality with a sampling kit

Image: BLM California and Union Mine High School Create a Formula for Science Success (38255865345).jpg by blmcalifornia via Wikimedia Commons, Public domain

Water quality can shift without any visible sign, and by the time contamination is obvious, exposure may have already happened — continuous monitoring catches problems earlier than periodic manual testing.

This project uses a pH sensor and a turbidity sensor to continuously measure key water quality parameters, transmitting readings over Wi-Fi to a cloud platform and triggering an alert automatically when a reading crosses a safe threshold, rather than relying on scheduled manual checks.

How It Works

  • A pH sensor probe reports acidity/alkalinity as an analog voltage, calibrated against known buffer solutions.
  • A turbidity sensor measures water clarity by detecting how much light scatters through the sample.
  • An ESP8266/ESP32 reads both sensors and uploads readings to a cloud IoT platform at a set interval.
  • When pH or turbidity crosses a preset safe-range threshold, the system triggers an alert — local buzzer and/or a cloud-platform notification — flagging the reading for follow-up.

Components



ESP8266 or ESP32
pH sensor probe + interface module
Turbidity sensor
IoT platform (ThingSpeak/Blynk)
Waterproof enclosure for sensor probes


Applications

  • Drinking water source monitoring
  • Aquaculture and fish-farming water quality checks
  • Industrial wastewater/effluent monitoring

Advantages

  • Continuous monitoring catches quality drift earlier than periodic manual testing
  • Cloud alerts flag unsafe readings automatically, without someone checking a log
  • Extendable to more parameters (TDS, dissolved oxygen) using the same architecture

Sample Code — pH and Turbidity Threshold Alerting



// Simplified water quality monitoring - ESP8266
int phSensorPin = A0;
int turbiditySensorPin = A1;
float safePhLow = 6.5, safePhHigh = 8.5;
int turbidityThreshold = 400;

void setup() {
  Serial.begin(9600);
}

void loop() {
  float ph = readPH(phSensorPin);         // calibrated conversion
  int turbidity = analogRead(turbiditySensorPin);

  if (ph < safePhLow || ph > safePhHigh) {
    Serial.println("ALERT: pH out of safe range");
  }
  if (turbidity > turbidityThreshold) {
    Serial.println("ALERT: high turbidity detected");
  }
  // uploadToCloud(ph, turbidity); // ThingSpeak/Blynk call
  delay(30000);
}


Related Research


Hours

Monday - Saturday: 9:00 AM - 5:00 PM
Sunday: Not Working

Location

2nd Floor, Comptron Arcade, Kallattumukku,
Thiruvananthapuram, Kerala 695012

Book Now

+91 9633118080