GardenBot - How To, soil moisture, water valve, light sensor
How To
This
section has various tutorials on the different components you might
need to build a garden monitoring system. The entire how-to
section is organized by modules -- each kind of sensor gets its own
module.
The
overall concept is that you will generally have a microcontroller (like
Arduino) hooked up to sensors (like soil moisture) and actuators (like
a water valve). If we think of the whole system as a robot, then our
microcontroller is our brain. Because of the long distances in volved
in automation of even a small garden, some of the modules (like the
soil moisture sensor) are bound to be
physically far away from the brain. Usually the least expensive option
is simply to run wires from the brain probably located in or near
your house out to the sensors located in your garden.
Throughout
these tutorials I use the term local circuit. This refers to the
circutry that is needed to create something like a good signal for the
microcontroller. There is not currently a GardenBot board, nor any
general circuit for the whole project. Simply experiement with each
module and wire things up, you will eventually have a system -- even if
it is a simple one.
The Modules
Running wires to remote modules
To
connect the various remote modules (like the control panel or the
garden station) to the brain, you will need to run wires -- some very
long wires.
Probably the cheapest option is to purchase a roll of 6-strand phone wire (see the
parts page).
A 100 ft roll should give you enough length to get from the brain
module inside your house to the garden station out in your garden, and
from the brain module out to the control panel. These wired connections
are reliable and cheap. And with a few junction boxes (see
parts page), it's easy to connect the remote modules with the brain's local circuit.
These
long-distance connections would be a perfect place for wireless
connections. GardenBot does not currently support that. Please read the
note on "
more advanced options" on the about page.
Expanding your GardenBot
GardenBot
is designed to be extensible. This means that if you want to expand
your system to include more sensors or additional water valves, you can
simply add on more modules (while making the appropriate changes to the
code).
Let's say you want to add another soil moisture sensor so
you can compare the two. Well, the simple version is that you simply
build another moisture sensor and also duplicate the local circuit in
the brain module.
But there are a few other steps to actually
implement it. The data that you see on the charts percolates up from
the Arduino board. And it is really just a comma separated list of the
different sensor readings. When you add your new sensor, you will also
need to add a new item to this data stream. And so, there are three
different places you will need to update how this gets handled.
First
there is the brain module (the Arduino board). This is where the data
originates. So here you will need to add the new sensor to the data set
so that the new sensor appears at the end of the comma separated list.
Next,
the data is handed off to the local-connection sub-module (computer
module). This sub-module reads in the data, and then sends it to the
visualization module as well as writing it out to a CSV file. So, you
will need to make sure that the script both looks for and outputs the
data for your new sensor. Note that this module also inserts a
time-stamp as the first data row and then puts the data it got from the
brain afterward.
Last, the data is delivered to the
visualization sub-module (computer module). Here the data is converted
and used to build the charts. This means that you will need to add your
new sensor to this script so that it shows up in the chart.
So when you add or remove sensors, remember to change the way the
data is handled in all three places so that the data stream is
consistent.