Garden of Things

Every summer, I go away on holiday.  If it’s a damp, wet week, I’m sad, but I come home happy because I know my plants will have survived.  If its a glorious hot summer break, I’m happy, but I come home to devastation in the garden with all the pots and hanging baskets reduced to dry biomas

Not this year.

I have until the end of June to build an irrigation system that can keep my plants alive for one week, without me being anywhere near them.  The problem is that I’m not really down with the idea of irrigation as a whole.  If your plants won’t grow in your environment without piling on the water, then you are growing the wrong plants. As right-on and ethical my stance on irrigation is, I’m still going to come home to dead hanging baskets and that make me sad.

So the task is, how do I keep my plants alive for one week, assuming a best/worst case scenario of daily average temps of 28ºC while:

  • not being there to turn taps on myself
  • not being at *ANY* risk of flooding my house/garden/neighbours
  • using no more water than I absolutely have to.
  • using as many buzz words and new technologies as I can find
  • Not massively over-engineering the project to the extent that I simply can’t finish it in the time I have given myself

The answer I have give myself is the “Garden of Things” or er.. “The Internet of Gardens” or perhaps “The Garden of Internet of Things” or something like that.

The high level plan is.

Environmental Sensing -- Decision Making -- Actuation -- Irrigation

The four components work together to provide a single solution.

Environmental Sensing

The first element is the gathering of data about the environment.  The principle sensor here will be a soil moisture sensor that works to determine how dry the soil is.  On it’s own, this should be enough to allow the decision making component to keep the plants alive.  But it won’t be very efficient. Soil temperature can also play a big part in how quickly a plant will get stressed so that will be an important data set.  While these are local to the plants, we’ll also need to understand something about the larger environment, so a weather station of sorts would be really useful.  On top of all this we should also feed the decision making component with with some forward looking predictive data, which we’ll have to pull from public API’s.

Decision Making

The  Decision Making component takes in all these data sources, and scores them.  It will boil them all down into a single integer value which is the Water Need Score.  If this score exceeds a threshold that I will have to determine through trial and error, then it will irrigate, if not it stays dry.  The Decision Making component will also need some health check capability to raise alarms if the is a problem with the effectiveness of the solution, or it’s ability to actuate the water supply correctly. It will use the forward looking data to apply a negative score to the Water Need Score if it has high confidence that there is a rainfall event due in the next 12 or so hours.

Actuation and Supply

The Actuation and supply component basically just controls the flow of water to the irrigation system.  It will start simple (but like all the other components) will grow in complexity as my time allows. A water butt will collect rainfall run off from roofs and store it.  Once commanded to by the Actuation system, water will be pumped from the storage through the irrigation network. I’ll monitor the amount of stored water, and again, in conjunction with the forward looking data, allow the system to re-fill the reservoir from the mains water supply if needed.


This component defines that actual network of pipes, drippers, sprinklers and valves that actually deliver the water where it’s needed.