If
the GardenBot project seems overwhelming, this "How To"
section should put your mind at ease. The entire project is broken out
into seperate parts, and each tutorial will walk you through a
particular part of building your own garden automation system. You
don't need to do the tutorials in order, but you will need to complete
most of them to get the system up and running correctly.

Building with modules

The
core of GardenBot is that it is assembled in modules. The entire how-to
section is organized by modules.

And a key concept is that most of the modules have what is called a local circuit. This means that for
any particular module, you will usually be building an object (like the
moisture sensor) and then running some wires back to the brain module
where you will also be assembling the local circuit for that module.

Some of the modules (like the soil moisture sensor) are bound to be
physically far away from the brain. This means that we will be running
a wire from the brain module inside your house to the garden station
outside. Please read the note on "running wires to remote modules"
below.

Also if you want to add additional modules, you should read the
section below on "expanding your GardenBot".

The Map

This is the map of the entire GardenBot system. You can click on
any module to read about how to build it.

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.