Charter 24 · sense · reserve project

Pond Watch

Pond-Level Change Monitor

Measure a changing shoreline without letting the electronics join the pond.

Difficulty
★★☆
Prefix
po
Zone
pond
Type
pond-node
Device
po-01
Build time
8 hours

Mission

Build this

Build a protected water-level witness with dry electronics, a calibrated percentage, and a status that separates normal operation from a sensor fault.

One kit, one team repository.

Borrowed parts are labelled below and have a fallback. The registered device ID is fixed; sensing and behaviour decisions remain yours.

Bill of materials

Parts

SourcePartFallback
○ fablabWater-level sensor or float mechanismUse a supervised dry-bench vessel and label the deployment limit
● kitOLED—
● kitSG90 servo—

Disconnect USB before rewiring. Motors, the relay, and the servo need appropriate power and a shared ground. Never drive an actuator from the ESP32 3V3 pin.

Backup assignment · your invitation

Watch a shoreline move while the electronics stay on land

A pond level rarely announces itself. Rain adds water, dry weather removes it, and a small change creeps along a bank. Your device will turn that slow movement into a careful, visible record.

The design challenge is not to lower a breadboard toward water. It is to create a protected witness: a float, tube, or approved sensor arrangement that lets the water move one safe part while every powered connection remains dry and recoverable.

The dry-side rule

Water may touch only the part designed to touch it. The ESP32, connectors, display, servo, and power system stay inside a dry enclosure above splash level.

Meet the idea

Level is a position; percentage is a story you teach the sensor

A sensor first gives you a raw position or voltage. It does not know what empty, ordinary, or dangerously high means in your vessel or mounting. Calibration supplies that meaning.

Mark a safe low reference and a safe high reference. Known level steps between them reveal whether the response is straight, curved, noisy, or sticky. Only then convert the raw value to a percentage.

The pond deployment may not share the geometry of your bench vessel. Treat the bench calibration as evidence about the mechanism, then state what must be checked again outdoors.

Range

The lowest and highest levels the mechanism can measure safely—not every level the pond might ever reach.

Resolution

The smallest level change that produces a reliably different reading.

Hysteresis

A difference between the reading on the way up and at the same level on the way down.

Signal chainHow the shoreline reaches the garden
  1. in the worldWater surface movesThe level changes relative to a fixed mounting point.
  2. the partProtected sensor or floatThe safe mechanism follows that movement.
  3. electricalPosition or voltageThe ESP32 receives a bounded dry-side signal.
  4. in the codeCalibrated percentageLow and high references give the raw value context.
  5. on the spinewater-level + statusThe garden receives a level or an honest fault state.

Every stage can add uncertainty. Your log should say which stage limited the final percentage.

The lovely trick

A believable number needs an escape hatch

A disconnected wire can resemble an extreme level. A stuck float can repeat yesterday’s number perfectly. If every raw value is forced into 0–100%, failure may look like valid weather.

Give the device a separate status path. Impossible voltage, no movement during a bench check, or a reading outside the calibrated range should produce a fault or warning rather than a confident percentage.

Decision flowLevel and trust travel together
  1. 01SampleRead several values while the mount remains fixed.
    then, settle and combine,
  2. 02Trust checkAsk whether the signal is connected, possible, and stable enough.
    then, reading is plausible,
  3. 03ConvertMap the trusted raw value through the measured calibration.
    then, level or fault,
  4. 04Publish or warnSend level when trusted; otherwise send a fault status.

Back to the start: After a fault, require fresh valid evidence before returning to normal.

A fault is information about the instrument, not a claim that the pond is empty or full.

Fixed means fixed.

If the sensor mount shifts by a centimetre, the apparent shoreline shifts too. Give the mounting a reference mark so a person can tell whether the water moved or the instrument did.

Wiring

Build the entire measurement on a dry bench first

Use a supervised vessel and measured level steps. Keep the sensor lead routed downward before it enters the enclosure so a drip cannot follow the cable inside. The pond is the final location, not the first test.

The power rule: Use only the approved sensor and its verified voltage. The reference analog module uses 3V3. The servo uses a separate 5 V supply. Keep every powered joint dry and join grounds inside the enclosure.

Bench referenceOpen the exact wiring map
WiringDry-side level input, local display, and pointer
ESP323V3Approved water-level sensorVCCGNDApproved water-level sensorGNDGPIO 34Approved water-level sensorS / AO3V3OLED (SSD1306)VCCGNDOLED (SSD1306)GNDGPIO 21OLED (SSD1306)SDAGPIO 22OLED (SSD1306)SCLGPIO 18SG90 servosignal (orange)external 5 VSG90 servopower (red)GNDSG90 servoground (brown)
ESP32 pinPartPart markingCarries
3V3Approved water-level sensorVCC3V3 power — reference dry-bench analog module; follow the supplied sensor’s verified sheet
GNDApproved water-level sensorGNDGround
GPIO 34Approved water-level sensorS / AOAnalog voltage — sensor voltage must remain between 0 and 3.3 V
3V3OLED (SSD1306)VCC3V3 power
GNDOLED (SSD1306)GNDGround
GPIO 21OLED (SSD1306)SDAI²C bus
GPIO 22OLED (SSD1306)SCLI²C bus
GPIO 18SG90 servosignal (orange)PWM to actuator — low-to-high pointer
external 5 VSG90 servopower (red)5V power — separate dry supply
GNDSG90 servoground (brown)Ground — join all grounds on the dry side

No breadboard, bare connector, USB supply, or mains-powered equipment may be placed at the water edge. Outdoor placement and the final sensor mechanism require staff approval.

  • 3V3 power
  • Ground
  • Analog voltage
  • I²C bus
  • PWM to actuator
  • 5V power

This reference map fits the supervised dry-bench analog fallback. A float or different approved sensor may need a different interface; document its verified wiring instead of guessing pin compatibility.

Give it character

What should a changing pond look like?

The pointer can show a continuous level, a few named bands, or the direction of recent change. It should also have an unmistakable pose for ‘I do not trust my sensor.’

Your team decides:

  • Which low and high marks define the useful range?
  • Does the display show an exact percentage, a trend, or both?
  • How many samples calm ripples without hiding meaningful change?
  • What raw evidence triggers warning, fault, and recovery?

Write these decisions in plain language before turning them into code. A clear rule is easier to test, explain, and change.

Your field adventure

Does the same water level tell the same story twice?

A useful monitor must survive both directions. Raise the level in measured steps, then lower it through the same marks. The disagreement is not a nuisance; it tells you about friction, wetting, geometry, and mounting.

  1. Mark the physical scale.

    Measure water depth from one fixed reference and choose a safe low and high point.

  2. Climb in equal steps.

    Add measured volumes or move to marked depths. Wait, then record raw value and actual depth.

  3. Descend through the same marks.

    Remove water in the same sequence without moving the sensor mount.

  4. Test trouble deliberately.

    Disconnect the sensor, hold the float, splash the housing exterior, and verify that uncertainty becomes visible without wetting electronics.

Actual depthRaw risingRaw fallingReported levelDifferenceStatus / observation
low mark: ___ mm_________ %______
middle: ___ mm_________ %______
high mark: ___ mm_________ %______

When it gets dramatic

The pond is not the only thing that can move

The reading changes when the cable moves

The connection or sensor body is flexing. Add strain relief, fix the mount, and repeat calibration after the mechanical design is final.

Rising and falling give different answers

You found hysteresis from friction, wetting, or geometry. Report its size and use a wider uncertainty band if necessary.

A disconnected sensor reports 0% or 100%

The conversion is treating a fault voltage as a valid endpoint. Check plausibility before mapping and publish a fault status.

Ripples make the pointer chatter

Combine several samples or use persistence. State the response delay created by the calmer rule.

Bench calibration fails outdoors

Mounting angle, water chemistry, temperature, fouling, or geometry changed. Recheck known physical marks and narrow the claim.

Choose your direction

What kind of water watcher will you become?

The calibration cartographers

Map the complete rise-and-fall curve and make hysteresis visible.

The fault designers

Invent safe, testable ways to distinguish low water from a broken witness.

The weather readers

Compare broad level direction with Rain Collector while carefully resisting quick causal stories.

Each direction is real engineering. Pick the question that keeps your team curious.

A calm way through the build

Collect four small wins

  1. po-01 says hello from a dry table.

    Keep the sensor and servo disconnected at first.

  2. Known level steps produce a repeatable raw pattern.

    Fix the mount and measure in both directions.

  3. A trusted percentage and a fault state reach the garden.

    Test disconnection before deployment.

  4. The dry enclosure and pointer survive a supervised splash check.

    Only then review a real pond mounting.

When a new step fails, return to the last small win. The fault is now somewhere in the few wires or lines you just added.

The garden handshake

Share what you found

These names are the rigid part of the project. They let another team find your work without knowing what you called the variables in your code.

Every 5 minutes

Calibrated pond level

garden/pond/pond-node/po-01/water-level

Unit: percent

When state changes

Instrument state

garden/pond/pond-node/po-01/status

Unit: enum

Listen beyond your own device.

garden/outdoor-1/rain-node/rc-01/water-level

Rain Collector offers a second water story. Compare direction and timing over broad windows, but do not claim that one rain event caused a pond change from a short record.

Finish line

Ready to introduce to the garden

  • po-01 stays online and publishes calibrated level plus an honest status.

  • The reject feed stays clear after the final code starts.

  • The device reads Rain Collector level without depending on it for local measurement.

  • The pointer distinguishes trusted level from sensor fault and moves without blocking messages.

  • The build log contains physical depths, rise-and-fall calibration, hysteresis, fault trials, housing observations, and transfer limits.

  • All powered parts remain dry, the mounting is approved and marked, and the device label can be scanned.

Pond Watch succeeds when the number moves because the shoreline moved—and when the device is brave enough to say when it cannot know.

Backbone now

Live status

Updates from the same public event stream

Checking po-01…