Urban Gardener's Virtual Little Helper

Posted on November 17, 2010

This is a project idea I came up with for a system to watch over my plants and report back whenever necessary.
This came about after having attended the awesome Codebits conference/contest/mega-geek-fest and having been exposed to all of those neat Arduino thingies. It was supposed to inspire people. And it certainly did.

This idea may not be the coolest/sexiest one to emerge from a geek mind, but it addresses a real need I have, being a (rather amateurish) urban-gardener: knowing when the plants actually need to be watered and–most importantly by far–being reminded of it! Of course thinking about all of the data I would be able to collect from this system and all of the analysis I could do on it doesn’t hurt one bit either. :-)

So here is the first mind dump regarding the Urban Gardener’s Virtual Little Helper project.

The idea

Create a system that monitors things like amount of moisture in the earth and report back whenever it falls below a certain level.
Other interesting things to monitor would be amount of light received and temperature.
The system must be relatively weather-resistant and be able to send it’s data wirelessly.

That data would then be collected by a server at home and acted upon. This is the part of the system that is responsible for analysing the levels of moisture, temperature and so on and send the notifications.
I will not delve into this part right now, as it would be trivial to implement compared to the sensors bit.

Implementation ideas

This part deals mostly with the sensors and less with the data munging that would need to be done with the data those sensors would collect. I’ll get to that part once I have actual data to work with.

Using weather stations

At first I considered using an off-the-shelf weather station to do the sensing part.
Many weather stations already have WiFi connectivity embedded in them, so I wouldn’t need to worry about that part.
It would be able to measure temperature, light(?) and even wind speed (although this one is hardly relevant), but what about level of moisture in the earth? I don’t think this is something your typical weather station has sensors for and that is the crucial part of the system.

Also, they are really expensive (the wireless versions, at least) so for now this option is out.

Using Arduinos for the probes

Arduinos come to mind almost instantly whenever sensors and stuff are discussed and so this is looking like a rather attractive option right now.
The light and temperature sensors are easy enough to implement, but what about moisture/humidity sensors that must be buried a few centimetres bellow the surface of the earth? Is there a way to do it? Should I go for conductivity sensors instead and infer level of moisture from the current flowing between them? Is there a better way to do this?

As it turns out, after having had a few words with my nearest Arduino guru, some work has been done on these sensors (they went the conductivity way) and he feels like we could do better, so it looks like the project may have some feet to stand on.

What kind of wireless connectivity would work best? AFAIK there is no WiFi shield for the Arduino, but there are at least two options that I’m aware of: Bluetooth and ZigBee.
Given that I know next to zero about ZigBee and I need to have this system talking to both a Mac box–production–and a Linux box–development–, I’m not sure if this would be such a good idea. On the other hand the Bluetooth option might limit the distance from the sensor to the server.