Tech Gyan Set
Published © MIT

ESP32 Smart Water Quality Checker

ESP32-based system for real-time water quality monitoring using pH, turbidity, and temperature sensors.

BeginnerFull instructions provided7 hours62
ESP32 Smart Water Quality Checker

Things used in this project

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Code

💧 ESP32 Smart Water Quality Checker – Complete Code

C/C++
// --------------------------------------------
// Smart Water Quality Checker
// ESP32 + pH Sensor + Turbidity Sensor + DS18B20
// --------------------------------------------

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin Configuration
#define PH_SENSOR_PIN 34
#define TURBIDITY_SENSOR_PIN 35
#define BUZZER_PIN 26
#define ONE_WIRE_BUS 4

// Setup temperature sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// Variables
float phValue;
int turbidityValue;
float temperature;

// Thresholds
float phLow = 6.5;
float phHigh = 8.5;
int turbidityThreshold = 2000;

void setup()
{
  Serial.begin(115200);

  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(BUZZER_PIN, LOW);

  sensors.begin();

  Serial.println("Smart Water Quality Checker Started");
}

void loop()
{

  // Read pH Sensor
  int phRaw = analogRead(PH_SENSOR_PIN);
  phValue = (phRaw / 4095.0) * 14.0;  

  // Read Turbidity Sensor
  turbidityValue = analogRead(TURBIDITY_SENSOR_PIN);

  // Read Temperature
  sensors.requestTemperatures();
  temperature = sensors.getTempCByIndex(0);

  Serial.println("-------- Water Quality Data --------");

  Serial.print("pH Level: ");
  Serial.println(phValue);

  Serial.print("Turbidity: ");
  Serial.println(turbidityValue);

  Serial.print("Temperature: ");
  Serial.println(temperature);

  // Check Water Quality
  if (phValue < phLow || phValue > phHigh)
  {
    Serial.println("⚠ Unsafe pH Level Detected");
    digitalWrite(BUZZER_PIN, HIGH);
  }
  else if (turbidityValue > turbidityThreshold)
  {
    Serial.println("⚠ Water Turbidity High");
    digitalWrite(BUZZER_PIN, HIGH);
  }
  else
  {
    Serial.println("Water Quality Normal");
    digitalWrite(BUZZER_PIN, LOW);
  }

  Serial.println("-----------------------------------");

  delay(3000);
}

Credits

Tech Gyan Set
31 projects • 12 followers
Tech Gyan Set | IoT & Embedded Systems Creator | Arduino, ESP32, GSM & NodeMCU Projects | Smart Home & Real-Life Automation Tutorials
Thanks to Tech Gyan Set .

Comments