The problem
Home aquariums and small farm ponds lose fish to problems nobody sees in time: a heater stuck on pushes water past 30°C overnight, pH drifts after a water change, and a weekend trip means the fish are either overfed by a well-meaning neighbour or not fed at all. Cheap test strips and stick-on thermometers only work when someone is standing in front of the tank, looking, and remembering to check. This project replaces that guesswork with an ESP32 node that watches the water around the clock: a waterproof DS18B20 probe tracks temperature, an analog pH probe tracks acidity, and a TDS sensor tracks dissolved solids as a proxy for water-change timing. A float switch watches the water level, a small servo rotates a food drum on a daily schedule the owner can edit from the dashboard, and the moment any reading leaves its safe band the system fires a Telegram alert. Every reading is also published over MQTT to a web dashboard with live cards, 24-hour trend charts and a full alert log, so the owner can check the tank from anywhere.
Waterproof DS18B20 probe sampling water temperature on the 10 s cycle.
Follow the working sequence
How it works
- The ESP32 samples the DS18B20 temperature probe (one-wire, 12-bit resolution), the analog pH probe, the TDS probe and the float switch on a 10-second cycle, averaging 8 readings per channel to tame ADC noise.
- Each averaged reading is compared against owner-set safe bands (defaults: 24–28°C, pH 6.5–7.5, TDS below 1000 ppm, water level above 40%); a breach sustained over two consecutive cycles raises an alert condition.
- Alert conditions trigger an HTTPS call to the Telegram Bot API, delivering a message naming the parameter and its current value to the owner's chat.
- Every 60 seconds the averaged readings publish as JSON over MQTT to the cloud broker; the web dashboard subscribes and updates its live cards, charts and alert log in near real time.
- At each enabled schedule time (default 08:00, 14:00, 20:00 IST) the firmware drives the SG90 servo through a 180° rotation, dispensing one portion from the food drum, then logs the feeding to the dashboard history.
- The 0.96-inch OLED refreshes every 2 seconds with the latest readings and a NORMAL or ALERT flag, and the float switch reading is checked on every cycle for the top-up warning.
Tech stack:
- ESP32 (Arduino framework)
- DS18B20 waterproof temperature probe (one-wire)
- Analog pH sensor module + TDS meter module
- SG90 servo · food drum hopper · float switch · 0.96" OLED
- MQTT broker + web dashboard (HTML/JS)
- Telegram Bot API (alerts)
- C++ firmware · Python tooling
| Parameter | Value |
|---|---|
| Controller | ESP32 dev board, 240 MHz dual-core (datasheet) |
| Temperature sensor | DS18B20, -55 to +125°C, ±0.5°C accuracy from -10 to +85°C (datasheet) |
| Temperature resolution | 12-bit, 0.0625°C per step (datasheet) |
| pH measurement | 0–14 pH range; approximately ±0.1 pH after two-point buffer calibration (expected) |
| TDS measurement | 0–1000 ppm typical range; approximately ±10% of reading (expected, temperature-compensated in firmware) |
| Sampling | Every 10 s locally; publishes every 60 s over MQTT (design target) |
| Feeder servo | SG90, approximately 1.8 kg·cm stall torque at 4.8 V (datasheet) |
| Feed schedules | Up to 3 per day, owner-editable (design) |
| Display | 0.96-inch OLED, 128 × 64 px (datasheet) |
| Connectivity | 2.4 GHz Wi-Fi; internet required for dashboard and Telegram alerts |
| Alert latency | Typically under 30 s from sustained threshold breach to Telegram message (expected) |
| Power | 5 V / 2 A USB supply (design); approximately 1.2 W typical draw (expected) |
Project features
- [Continuous water-quality sensing] DS18B20 (±0.5°C datasheet accuracy) reads temperature every 10 seconds; analog pH and TDS probes are sampled and averaged to smooth the ESP32 ADC noise before anything is published.
- [Servo automatic feeder] An SG90 servo rotates a food drum at up to three scheduled times per day; each schedule can be toggled from the dashboard, and a "Feed now" button dispenses a portion on demand with a hopper-level estimate.
- [Telegram water-quality alerts] Temperature, pH, TDS, low water level and low food hopper each have configurable thresholds; breaching one sends an immediate Telegram message to the owner.
- [Live cloud dashboard] Readings publish over MQTT to a web console with live parameter cards, 24-hour trend charts, feeding schedule control, feeding history and a timestamped alert log.
- [Local OLED status display] A 0.96-inch OLED on the prototype shows the current temperature, pH and TDS plus a NORMAL/ALERT flag, so the tank state is visible without opening the dashboard.
- [Water-level top-up warning] A float switch flags when evaporation or leakage drops the level below the set point, catching the slow drain that kills filter pumps.
- [Manual feed countermeasure against overfeeding] Feeding is portioned per dispense and the schedule is capped, so a missed or double feeding cannot dump the whole hopper into the tank.
- [Calibratable pH path] The pH channel ships with a two-point buffer calibration procedure (pH 4.0 / 7.0 reference solutions) so the buyer can verify accuracy on their own build.
What is included
- Assembled and tested ESP32 prototype (sensors, feeder, OLED) on a labeled base
- Complete ESP32 firmware source with threshold configuration guide
- Companion web dashboard (MQTT subscriber, live cards, charts, feeder control, alert log)
- Telegram alert bot setup instructions
- pH two-point calibration procedure with buffer-solution notes
- Wiring diagram and sensor connection guide
- Project report PDF (background, sensor theory, methodology, results, limitations)
- PPT presentation for final review
- Viva Q&A preparation document
Limitations & prerequisites
- The pH probe needs two-point calibration against buffer solutions before first use and re-calibration approximately every 30 days; uncalibrated readings drift and are not trustworthy.
- The TDS value is an approximate proxy for water-change timing, not a lab measurement — it cannot identify which dissolved solids are present.
- The system needs continuous 2.4 GHz Wi-Fi and internet; without it the dashboard and Telegram alerts stop (local OLED and the feeder schedule keep working on the ESP32 alone).
- The SG90 feeder dispenses dry flake/pellet food only; frozen, gel or oversized foods will jam the drum.
- The DS18B20's ±0.5°C is a datasheet figure — the report documents the buyer's own calibration check, not a factory measurement.
- This is a monitoring and feeding aid, not veterinary equipment; it cannot diagnose disease or replace water testing for ammonia/nitrite.
Frequently Asked Questions
How accurate are the water readings?
The DS18B20 temperature probe is ±0.5°C per its datasheet. pH is approximately ±0.1 after you run the included two-point buffer calibration; TDS is approximately ±10% of reading. The report shows you how to verify each on your own build rather than taking our word for it.
What happens if the Wi-Fi goes down?
The feeder schedule and the local OLED keep running on the ESP32 — feeding never depends on the cloud. Only the dashboard updates and Telegram alerts pause until Wi-Fi returns; the firmware reconnects to MQTT automatically.
Can it feed the fish while I travel?
Yes — that is the main use case. Up to three daily feedings run from the onboard schedule, each dispensing one portion, and the dashboard history confirms every dispense. The hopper holds roughly 4–6 days of portions for a small tank (approximate, depends on portion size).
Which fish is it suitable for?
The default safe bands (24–28°C, pH 6.5–7.5) suit common tropical community fish such as guppies, tetras and bettas in home aquariums up to about 100 litres. Thresholds are configurable for other setups.
Does it do automatic water changes or dosing?
No. It monitors and alerts — water changes, chemical dosing and disease treatment stay with the owner. Automated dosing is listed as future scope in the report.
Is this project suitable for a final-year project?
Yes — for Electronics, Electrical and IoT programs. It combines embedded sensing, actuator control, wireless communication, cloud integration and a real deployed use case.
Components & software requirements
- ESP32 (Arduino framework)
- DS18B20 waterproof temperature probe (one-wire)
- Analog pH sensor module + TDS meter module
- SG90 servo · food drum hopper · float switch · 0.96" OLED
- MQTT broker + web dashboard (HTML/JS)
- Telegram Bot API (alerts)
- C++ firmware · Python tooling
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.