Perfect Shiv 👑🔥
Here is your ready-to-upload lesson content for:
📘 Lesson 8.5 – Water Quality Monitoring Code
(Serial WiFi Terminal – Hotspot Mode – TDS Sensor)
💧 Water Quality Monitoring System
(ESP32 + TDS Sensor + WiFi Hotspot Mode)
In this lesson, ESP32 works as a WiFi Hotspot (Access Point Mode).
Your mobile connects directly to ESP32 without any router.
This version allows:
-
📊 Real-time TDS monitoring
-
💧 Water quality classification
-
📱 Wireless data viewing
-
🌐 No router required
-
📡 No internet required
Router ❌
Internet ❌
ESP32 Hotspot ✔
📦 Components Used
-
ESP32
-
Analog TDS Sensor Module
-
TDS Probe
-
Android Phone
-
TCP Terminal App
Recommended Apps:
-
TCP Telnet Terminal
-
Serial WiFi Terminal
🔌 Pin Configuration
| TDS Module Pin | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| AO | GPIO 34 |
GPIO 34 = Analog Input
💻 COMPLETE CODE
(WiFi Hotspot Mode + TCP Server + TDS Monitoring)
Copy & paste into Arduino IDE:
#include <WiFi.h>
#define TDS_PIN 34
const char* ssid = "Water_Quality_AP";
const char* password = "12345678";
WiFiServer server(23);
float voltage = 0;
float tdsValue = 0;
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
Serial.println("Hotspot Started");
Serial.print("AP IP Address: ");
Serial.println(WiFi.softAPIP());
server.begin();
Serial.println("TCP Server Started on Port 23");
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("Client Connected");
client.println("=== Water Quality Monitoring ===");
while (client.connected()) {
int adcValue = analogRead(TDS_PIN);
voltage = adcValue * (3.3 / 4095.0);
tdsValue = (133.42 * voltage * voltage * voltage
- 255.86 * voltage * voltage
+ 857.39 * voltage) * 0.5;
client.print("TDS Value: ");
client.print(tdsValue);
client.print(" ppm");
if (tdsValue < 50) {
client.println(" | Very Pure Water");
}
else if (tdsValue < 150) {
client.println(" | Excellent Water");
}
else if (tdsValue < 300) {
client.println(" | Good Water");
}
else if (tdsValue < 500) {
client.println(" | Fair Water");
}
else {
client.println(" | Poor / Unsafe Water");
}
delay(2000);
}
client.stop();
Serial.println("Client Disconnected");
}
}
🧠 Code Explanation
1️⃣ Enable Hotspot Mode
ESP32 creates its own WiFi network:
Network Name:
Password:
Default IP:
2️⃣ Create TCP Server
Creates Telnet server on Port 23.
Mobile connects using:
-
Host: 192.168.4.1
-
Port: 23
3️⃣ Read Analog Value
Reads sensor voltage.
4️⃣ Convert Voltage to TDS
Converts voltage to PPM.
5️⃣ Water Quality Classification
Based on TDS value:
| TDS (ppm) | Water Quality |
|---|---|
| < 50 | Very Pure |
| 50–150 | Excellent |
| 150–300 | Good |
| 300–500 | Fair |
| > 500 | Poor |
📱 How To Use
Step 1
Upload code
Step 2
Open Serial Monitor
Note IP address (usually 192.168.4.1)
Step 3
Connect mobile WiFi to:
Step 4
Open TCP Terminal App
Enter:
-
Host: 192.168.4.1
-
Port: 23
Step 5
View live TDS value
📟 Example Output
TDS Value: 275 ppm | Good Water
TDS Value: 520 ppm | Poor / Unsafe Water
🎯 What Students Learn
-
ESP32 Access Point Mode
-
TCP server communication
-
Analog sensor reading
-
Wireless data transmission
-
Environmental IoT system
📌 Lesson Summary
In this lesson, students built a:
💧 WiFi Hotspot-Based Water Quality Monitoring System
The system:
✔ Measures TDS
✔ Classifies water quality
✔ Sends data wirelessly
✔ Works without router