Water Quality Monitoring System
Intermediate20/6/2026- Author: IoTSpark Maker

Water Quality Monitoring System

Build a water quality monitoring system that measures temperature, TDS, pH, and turbidity, shows an alert status, and can be extended to send real-time data over MQTT. Suited for monitoring fish tank, hydroponic, or water tank quality, or as a reference monitoring model. Note: readings from consumer-grade sensors do not replace certified testing equipment or lab analysis.

ESP32IoTWater QualityMQTTArduino IDETDSpHDS18B20
7 steps9 components
← Back to project
Detailed guide

Part 7: Testing MQTT, Building a Dashboard, and Extension Ideas

Guides you through checking MQTT data with MQTT Explorer, designing a dashboard, and the project completion checklist.

Updated 31/08/2026

Part 7: Testing MQTT, Building a Dashboard, and Extension Ideas

This final part focuses on testing data after publishing over MQTT and pointing toward integrating a real-time dashboard.

7.1. Testing with MQTT Explorer

Open MQTT Explorer and connect to the broker:

Host: 192.168.1.50
Port: 1883
Username: if applicable
Password: if applicable

Then check the topic:

iotlabs/water/water-monitor-001/#

7.2. Testing with mosquitto_sub

mosquitto_sub -h 192.168.1.50 -t "iotlabs/water/water-monitor-001/#" -v

7.3. What Should a Dashboard Include?

ComponentContent
Current StatusNORMAL / WARNING / DANGER / SENSOR_ERROR
pH CardThe current pH value.
TDS CardThe TDS value in ppm.
Turbidity CardRelative turbidity.
Temperature CardWater temperature.
Realtime ChartA chart over time.
Alert HistoryAlert history.
Device HealthRSSI, uptime, free heap.

7.4. Suggested Node-RED Flow

[mqtt in][json parser][dashboard gauge/chart][function check alert][telegram/email]

7.5. Completion Checklist

  • The ESP32 can read all sensors.
  • The Serial Monitor shows the correct data.
  • The pH and turbidity sensors have basic calibration.
  • The ESP32 connects to WiFi and MQTT successfully.
  • MQTT Explorer receives telemetry, status, alert, and heartbeat messages.
  • The LED/buzzer respond correctly to water status.

7.6. Extension Ideas

  • Add an OLED for local display.
  • Store data in MySQL/PostgreSQL/InfluxDB.
  • Build a real-time dashboard with Node-RED, ThingsBoard, or a custom web app.
  • Add OTA for remote firmware updates.
  • Design a waterproof enclosure and offline logging for when the network drops.