A Scalable Controller for my Aquaponic Greenhouse

Two years ago, I built a greenhouse and an aquaponic system in my back yard.  The plan then was to start with a working manual system and add automation to it in order to make day-to-day activities easier.  Being a software developer at heart, the draw is probably pretty easy to understand.

Fast-forward to today.  We have moved a couple of thousand miles and I have to start over with a new aquaponic greenhouse.  Over the past week or so, I have outlined my vision for the system and the greenhouse.  What I want to do differently this time is integrate the automation as I go.  As I develop it, I will provide the insights gained to all of you.  I would love to have some input from you, too, particularly if you see a manner in which I am getting off track or doing something wrong or overly complicated.

What I Know I Need

I need the system to sense and respond to those things that could be immediately life-threatening to the fish or plants.  After all, the plants and fish are the reasons for all the rest.


float switch

The most pressing threat to the entire operation is if a tank springs a leak.  We prevent siphoning by installing tee fittings at the tops of the solids-lifting overflows, but if a tank leaks (hopefully toward the top), something needs to be done right now to prevent killing fish.  So the controller needs to sense a leak (pretty easy with a float switch), respond (turn off the pump that is feeding the tank), and notify me.  Sending that immediate notification makes it possible for me to know I need to go take a look ASAP and do something about it.

flow sensorSecond would be if a pipe got clogged somewhere.  If that happens, water backs up and overflows somewhere, minimally making a mess.  More importantly, since this is not a soil-based system and the water is constantly recirculated, losing water to anything but evaporation is a bad, bad thing.  To prevent this problem, piezoelectric flow sensors can be used on all water outputs.  In most of my applications, the flow sensor should always sense water moving through the hose or pipe.  If the flow stops, the offending pump needs to be turned off to prevent overflowing “upstream” and I need to be notified.  If the water doesn’t flow, the plants don’t get the nutrition they need and the water in the fish tank doesn’t get cleaned.

Things I Want

Other things I want the system to do are to monitor various temperatures, water pH, electrical conductivity, and (if I can figure out a way inexpensively) nitrate/nitrite levels.  Having it automatically feed the fish a measured amount and notify me when the feed hopper is getting empty would be pretty cool, too.

I think I can build my controller in a modular fashion, where each sensor can be added and configured on the fly.  My first thoughts are to use a Raspberry Pi or Arduino to aggregate the incoming data and store it.  Mapping changes in monitored values may provide some additional opportunities for the system to help me manage my greenhouse more effectively.  EBay and Adafruit are great sources for electronic components I’ll need, and I’ll need to stand up some sort of database server.  More as we make progress!