Water Me

An app for the Kookaberry

Developed by
Tony Strasser


This measures moisture in soil (or any other medium) using a resistive or capacitive soil moisture sensor.  When the moisture falls below an adjustable threshold level. a control signal is sent to a relay which connects power from a separate battery to a 3v mini-pump. When the moisture level rises to above the threshold level, the pump is switched off.



Step 1

Plug either a resistive or capacitive sensor into connector P4  and run the WaterMe app.


What is showing on the screen?

The screen is showing a histogram or “tank” icon which is used to show the strength of analogue signals – in this case the percentage of moisture in the soil.

Three zones are shown depending on the moisture measured – Dry/Moist/Wet. The algorithm turns the pump on when below the Moist threshold (ie, Dry); and Off when the Wet threshold is reached. Dry is set at below 25% moisture, and Wet at above 60%. Moist is in between…. The thresholds are indicated by horizontal lines on the tank.

The connectors for the sensor and pump are shown as P4 and P2 respectively

  • Button C (Enbl) makes the pump operational at the start of the simulation.
    • The indicator P (in the middle on the right) will show On if the sensor shows Dry (as it will at the start) and the pump will start running
    • It will show Dis when it reaches the Wet zone. This stops the pump until it is enabled again. This feature allows the sensor to be removed from the wet soil (or container of water) without the pump starting again because the sensor thinks it is Dry.
    • Press Button C again to start a new simulation.
  • Button D (Sens) toggles between two different types of sensors – Resistive or Capacitive. You will be using the Resistive sensor – which is the default.
  • Button B (Log) starts the data logging function which samples the measured data at an interval set in the Kappconfig file and then stores the data in the on-board USB memory. The sampling interval is shown at top right.
Step 2

Attach the relay to the connector board (this board avoids the requirement for bare wire connection). The wires go into the NO and Com terminals of the relay.

You will need a length of plastic pipe to attach to the pump; the pump; a USB/jst battery lead; and a battery.

Plug the pump into the USB connector on the connector board; the battery into the jst connector; and the relay to P2 on the Kookaberry.

The pump is Off (because you haven’t pressed Button C yet…..) and you are now ready for the action step


Step 3

This step demonstrates the process used when this app is used to monitor the moisture level in a plant pot or garden bed 

Get two glasses, and fill one with enough water to comfortably cover the pump. Put the pipe and the sensor into the empty one. The moisture level will be showing Dry.

Enable the pump by pressing Button B and the pump will begin filling the empty glass (simulating watering a garden bed or pot plant). It will stop when the water reaches the sensor and the screen will show Wet and P indicator will show Dis.

You can now return the water to the first glass and start another simulation by pressing Button B.

Step 4 (Optional Data logging)

To demonstrate the data logging capability of the Kookaberry, an accelerated model of what happens when it monitors and waters a real plant in a pot or the school garden beds, can be set up as follows. The trick is to adjust the rate of flow from the pump (it is quite powerful) to the rate at which the material being watered drains away.

Find a small plastic flower pot and a bit of foliage to represent the plant, and fill the pot with fine gravel and some sand. The type and ratio of the materials will be determined by trial and error. Obtain a small tap element from the standard range of irrigation accessories at a hardware store of find a way to restrict the flow of eater from the pump before it swamps the material in the plant pot.

The default sampling interval is 20 seconds, which might be a little long for this demonstration. Check out how to change it to, say, 2 seconds, in the Tutorial- Data logging. 

When you have it right, you should get a measurement -over-time graph that looks like this.









Peripherals used by this app

Learning plans that use this app


Last updated:1 week ago


Radio code:

App ID:...




Download on GitHub


Issues resolved in the support forum:

8 out of 11
View support forum

Leave a Reply