Know your water.
A monitoring kit for aquaponics: fourteen sensors, an automatic fish feeder and a live dashboard.
What the kit does
We are building a monitoring kit for aquaponics. An ESP32 reads fourteen sensors in the water and the air, a servo feeds the fish on a schedule, and a dashboard and Telegram bot tell you the moment a reading leaves its safe range. See what is in the kit.
The tank, on your phone.
The dashboard keeps every reading, shows each against its safe range and sounds an alarm when one leaves it. The Telegram bot gives the same status in a message.
Who it is for.
Know about low oxygen, a stopped pump or a pH drift before the fish do, and feed them on a schedule while you are away.
Alarms that sound, a stored history of every reading and an automatic feeder, across the whole tank.
Real aquaponics data from fourteen sensors, for teaching biology, water chemistry and IoT.
Fish feed the plants. The plants clean the water.
That loop is what the sensors watch: ammonia from the fish, nitrate from the bacteria, clean water back to the tank. If oxygen drops or the flow stops, you hear about it.
In development. Early access is open.
Get on the list for the first kits. We will message you when they are ready.
A monitoring kit for aquaponics.
Fourteen sensors, a fish feeder and a dashboard. In development.
What is in the kit.
The loop.
Fish make ammonia, which is toxic. Bacteria turn it into nitrate. Plants take up the nitrate and the water returns to the tank clean.
If oxygen drops, the flow stops or the pH drifts, the fish are first to suffer. The sensors exist to tell you before that happens.
Fourteen into one.
Every sensor wires into one ESP32. Pick a circle to see what each one measures.
Read, send, show.
The ESP32 reads all fourteen sensors, using only the ADC1 pins for the analog ones so WiFi cannot disturb them.
It publishes the readings over MQTT and turns the servo that feeds the fish.
A server stores them and pushes them to the dashboard and the Telegram bot.
All fourteen sensors
What is built, and what is next.
The kit is in development. Early access is open.
Built.
- Controller firmwareBuilt
The ESP32 sketch reads fourteen sensors and runs the fish feeder.
- Live dashboardBuilt
Readings on their safe ranges, alarms with sound, the feeder schedule and history. Tested on simulated water.
- Telegram botBuilt
Ask for the status, feed the fish, and get a message when a reading crosses its limit.
- WebsiteBuilt
What the kit is, how it works and where development stands.
In progress.
- Wiring on a real tankIn progress
An Arduino Uno stands in for now. The pH probe is wired and needs to sit in water. The temperature probe is next.
- Enclosure and mountsDesigned
Sensor holder, feeder drum and mount, electronics box and a bell siphon are drawn. Printing and fitting come next.
Next.
- AI analysisPlanned
Send the last 30 days of readings from the dashboard, as a report, to the AI of your choice to analyse trends and flag problems.
- Live on a real tankNext
Point the dashboard at the real tank and run all fourteen sensors on the ESP32.
- First early-access kitsNext
Kits for the people on the early-access list. Pricing and dates are not set yet.
- Raspberry Pi 4 versionOn hold
A Pi-based controller is paused while the ESP32 version is finished.
Last updated 21 October 2026.
The picture shows the dashboard with simulated readings. It is not a live tank.
What it shows.
Every reading on its range
Each sensor sits on a bar with its safe band shaded, so you see how near the limit it is, not just the number.
Alarms that sound
When a value leaves its range the dashboard says which one and repeats an alarm tone until it recovers.
The feeder schedule
Set feeding times, see what has been fed today and trigger a feed by hand.
History
Every reading is stored, so you can look back at last week. The Telegram bot gives the same status in a message.
The dashboard is tested on simulated water and is not yet running on a real tank.
Planned: AI analysis.
We are planning a dashboard feature that sends your last 30 days of readings, as a report, to the AI of your choice. It can look for trends, explain what changed and point out problems you might have missed.
How it is built.
The hardware, the software and a log of what has changed.
From the probe to the phone.
Hardware and pins.
An ESP32 Dev Module with 3.3 V logic and a 12-bit ADC. Analog sensors use only the ADC1 pins, because ADC2 conflicts with WiFi.
| Part | Measures or does | ESP32 pin | Interface |
|---|---|---|---|
| DHT11 | Air temperature, humidity | GPIO 4 | Digital |
| DS18B20 | Water temperature | GPIO 5 | 1-Wire, 4.7 kΩ pull-up |
| pH-4502C | Water pH | GPIO 35 | Analog, ADC1 |
| TDS probe | Dissolved solids, ppm | GPIO 32 | Analog, ADC1 |
| Turbidity sensor | Water clarity, NTU | GPIO 33 | Analog, ADC1, divider if 5 V |
| LDR | Light intensity | GPIO 34 | Analog, ADC1 |
| MQ-135 | Air quality, raw | GPIO 36 | Analog, ADC1 |
| JSN-SR04T | Water level, cm | GPIO 18 trigger, GPIO 19 echo | Digital, ultrasonic |
| Float switch | Low-water alert | GPIO 23 | Digital, internal pull-up |
| YF-S201 | Flow rate, L/min | GPIO 25 | Interrupt |
| DFRobot DO (SEN0237) | Dissolved oxygen, mg/L | GPIO 39 | Analog, ADC1 |
| ORP module | Redox potential, mV | GPIO 37 | Analog, ADC1 |
| MQ-137 | Ammonia, ppm | GPIO 38 | Analog, ADC1 |
| MH-Z19B | Carbon dioxide, ppm | GPIO 16 RX, GPIO 17 TX | UART, 9600 baud |
| SG90 servo | Fish feeder drum | GPIO 13 | PWM, external 5 V |
Wiring and calibration.
Power
The 3.3 V rail feeds the DHT11, DS18B20, TDS, LDR, dissolved oxygen, ORP and MQ-137. An external 5 V supply feeds the pH board, turbidity, MQ-135, JSN-SR04T, YF-S201, MH-Z19B and the servo.
Signal conditioning
The turbidity sensor goes through a 2 × 10 kΩ divider if it outputs 5 V. The DS18B20 needs a 4.7 kΩ pull-up and the DHT11 a 10 kΩ pull-up.
Calibration
Dissolved oxygen is calibrated in fully aerated water. ORP is offset against a reference meter. The ammonia sensor is calibrated in fresh air after a 24 hour pre-heat.
Feeder
An SG90 servo opens the drum for a set time, which sets the portion size. Feeding times are a schedule you set from the dashboard, with a daily counter that resets at midnight Malaysia time.
Messages between the parts.
The ESP32 and the server talk over MQTT using four topics per device.
| Topic | Direction | Content |
|---|---|---|
| iot/devices/aquaponics/telemetry | ESP32 to server | Every sensor reading as JSON, every 5 seconds |
| iot/devices/aquaponics/status | ESP32 to server | online or offline, retained |
| iot/devices/aquaponics/command | Server to ESP32 | Feed now, set the feeding schedule |
| iot/devices/aquaponics/response | ESP32 to server | Acknowledges each command |
Testing.
Simulated water
The dashboard and bot are tested against a simulator that publishes the same telemetry as the ESP32, with a healthy profile and a worst-case profile that trips every alarm.
Interim hardware
An Arduino Uno stands in for the ESP32 for now and reads two sensors. The pH probe is wired. The temperature probe is next.
Development log.
- Website reworked and AI analysis planned
The public site was rebuilt around the kit, with a roadmap, an About page and this page. A dashboard feature that sends 30 days of readings to an AI for analysis was added to the plan.
- New dashboard tested on simulated data
The dashboard now shows every limit against its safe range, with alarms that sound, a feeder schedule editor and a history table. The Arduino Uno stand-in was wired with the pH probe.
- Alarm sound and a worst-case simulator
The dashboard gained an alarm tone, a Raspberry Pi 4 sensor script with optional ADS1115 support was written, and the simulator gained its worst-case profile.
- Telegram bot
The bot was added: status on request, a command to feed the fish and automatic alerts when a reading crosses its limit.
- Version 2.1: fourteen sensors
Dissolved oxygen, ORP, carbon dioxide and ammonia were added to the original ten sensors, along with a daily feed counter that resets at midnight. The aquaponics dashboard and the first ESP32 sketch in their saved form date from this day.
- First dashboard
The first dashboard prototype: a web page that shows live readings from an ESP32 over MQTT, with the broker and server around it.
May entries are dated from file dates, so treat them as approximate. Version 2.2 is undated. The Raspberry Pi 4 version is on hold.
Aquaponics should not fail quietly.
We make monitoring kits that tell you what the water is doing.
Why I started this.
I am a high school student. This project began as an entry for a competition at my school. I planned it with my friends because I could see where it might lead.
We placed fifth. I was happy, but also devastated, because our prototype broke during the competition.
The judges told me there were two different businesses in what we had built: an aquaponics tank business, and an IoT system for people who run aquaponics. At that moment something clicked. I parted ways with my group and set out to develop the IoT system further, on my own.
I don't have much experience in either the aquaponics business or the IoT business. What I do have is a clear view of what this company could become, and I hope to see it get going.
Amsyar, aquaponics.my
What we believe.
Every value is shown against its safe range, and the dashboard says when a sensor has stopped reporting instead of showing an old number.
One controller, one dashboard and one Telegram bot. A grower should not need to be an engineer to know the state of the tank.
We say what is built and what is not. Nothing on this site is described as available before it is.
How we build.
The controller firmware, the dashboard and the Telegram bot are written and tested on simulated water. Next the sensors go into a real tank, then the first kits.
Where this goes.
Aquaponics is where we start, not where we stop. The same sensors, alarms and dashboard can watch over any farm that needs to know what is happening in its water, soil and air. Our plan is to grow from aquaponics into monitoring systems for farms.
Join the early-access list.
Tell us about your tank and we will message you when the first kits are ready.
Get in touch.
aquaponics.my makes monitoring kits for aquaponics, from Kuala Lumpur. Message us with your tank size and whether it is for a home, a farm or a school, and we will add you to the list.
Pricing and dates are not set yet. Joining the list does not commit you to anything.
Who it is for.
Home growers who want to know about a problem before the fish do. Small farms and growers who want alarms and a history of every reading. Schools and universities teaching aquaponics and IoT with real data.