IoT coursework

Project Aqua

An ESP32 prototype that reads three water sensor signals and shares them through Arduino IoT Cloud and ESP-NOW.

Built for
University IoT coursework · May 2025
My role
Coursework team member
When
May 2025 · IoT coursework

The situation

A water-monitoring exercise needs more than three isolated sensor readings: the values must be sampled, interpreted, and sent somewhere a separate device or dashboard can use them. Project Aqua was our coursework prototype for that connected path.

What we built

We wired analog turbidity, TDS, and pH inputs to an ESP32 and wrote Arduino firmware to read and process them. Every five seconds it updates three Arduino IoT Cloud properties and sends a matching three-float packet to an ESP-NOW peer. Serial output helps inspect raw readings and send status. The source leaves sensor calibration to the actual hardware and reference solutions.

A team project completed for IoT coursework in May 2025. The repository preserves the firmware and setup notes; it does not include validated field results.

What it lets people do

  1. 01Sample turbidity on GPIO 34, TDS on GPIO 35, and pH on GPIO 32
  2. 02Average ten turbidity samples before mapping them to a 1–5 index
  3. 03Publish the values to Arduino IoT Cloud and send them to an ESP-NOW receiver
  4. 04Inspect readings and transmission status through the serial monitor

From water to wireless

Follow a reading

Select a sensor to trace what the prototype does with its signal. This diagram explains the firmware; it is not connected to a live device.

01 / Edge processing

ESP32

Ten analog samples are averaged, then mapped to a 1–5 clarity index. The cloud property is called ntu, but this index is not a calibrated NTU reading.

Readings shared every 5 seconds

Arduino IoT Cloud

Updates the ntu, tds, and ph properties.

ESP-NOW peer

Sends the same three values in a wireless packet.

Selected signal

Clarity signal

Calibration note. The ADC direction and range need to be measured with clear and murky water.

These prototype outputs are useful for testing the system flow. They do not establish whether water is safe to drink.

Under the hood

The tools this is built with. You do not need to know any of them to use it — open one if you are curious what it does.

If you're considering working together

How a project actually goes

No jargon, no long contract to decode, and no stage where you are asked to approve something you cannot picture.

  1. 01

    We talk about the problem

    Not the software — the problem. What is slow, what gets forgotten, what people keep having to redo by hand. Usually one call is enough to see the shape of it.

  2. 02

    I write down what I heard

    In plain language, before any building starts, so you can correct me while it is still cheap to correct. You approve it or you don't.

  3. 03

    You see it early and often

    Working pieces, not screenshots or promises. If something is wrong, you say so while there is still time to change it.

  4. 04

    It goes live and stays supported

    Hosting, domain and setup handled. The Valley O'Ville site has been running since 2023 — I don't disappear after launch.

Have something in mind?

Tell me what is not working. If I'm not the right person for it, I'll say so and point you somewhere better.