New DS18B20 Breakout Board

The DS18B20 waterproof temperature sensor now comes with a breakout board, making connections to your Arduino aquaponics controller much easier.

The breakout board features two mounting holes, a 5.0 mm pitch 3-pin screw terminal and on-board power LED.  The Arduino tutorial has also been updated with the new wiring diagram.

First Look: New Arduino pH Circuits

Fresh out of the box, here's a quick look at the new pH circuits.  These are going straight into assembly and re-flow and then we'll update the pH tutorial to use these new breakout boards.

Arduino pH circuit

Here's a pic snapped while in testing.

In testing

Arduino Aquaponics: Pump Control

Nearly every aquaponics system utilizes a pump at some point in cycle.  Some systems employ siphons in the grow beds, letting the pump run continuously, while others use a timer to toggle the pump on and off.  Do you need a "pump controller" for continuous pumps?  Absolutely!  We've seen it too many times when siphons fail due to grow media or plant roots interfering, which leads to grow beds overflowing, tanks draining, fish loss and huge property damage.  It might sound odd, but the true benefit of pump control is not so much to turn the pump on, but to shut it off.
This project kicks off a series on pump controls by starting with basics: time and relay control.  Future projects include using simple moisture contact sensor (overflow sensor) to prevent overflows, advanced overflow sensors using XBees, depth sensing to prevent tank drains, using flow-rate meters to detect clogged pumps, and switching to backups.
Pump control, like any control systems, utilizes relays that connect to mains-level power and the usual warnings apply.  Do not work on projects when the relays are under power (plugged into the wall).  Use an enclosure for your relays to prevent accidental discharge and prevent water from hitting the electronics.

Arduino Aquaponics: Lux

Light is arguably the most important environmental parameter for plant growth and thus, aquaponics.  This project creates an inexpensive lux meter using a TSL2561 ambient light sensor.  Fun fact, the TSL2561 was actually designed for use in cell phones for features like auto-brightness and turning the screen off when you are talking on the phone.  So what is a lux?  One lux is equivalent to one lumen (luminous flux unit) per square meter - the total "amount" of visible light emitted by a source.  In other words, lux is a measure of how brilliant something appears to the human eye (the human eye's sensitivity to the light source).
The project here does not create a true lux meter, rather, the manufacturer of the sensor has compared the sensor output against professional lux meters to come up with equations which approximate lux (and to a good degree).  These equations are written into the Arduino library used to interface with the TSL2561 and thus the output will be in lux.  Therefore, I will refer to the TSL2561 breakout board as a "lux sensor".


Arduino Aquaponics: External EEPROM

This tutorial focuses on storing data in external EEPROM.  Typically, we use EEPROM to store information obtained through an interface, like buttons, or when we want to save states.  For instance, the aquaponics Pump Controller project uses a relay which turns a pump on for a time and off for a time.  Lets imagine that during setup, the pump is turn on and the next toggle time is set five minutes into the future (the pump runs for five minutes and shuts off).  Two and a half minutes through the run time, power to the Arduino goes out and then returns.  As the Arduino reboots, it sets the start time and the next toggle time all over again and by the time the new run routine is done, the pump has run two and half minutes longer than it was supposed to, potentially causing a flood in your aquaponics system (unless, of course, you used the overflow sensor).
The easy solution for this is to store the the current state (on or off) and the next toggle time into permanent memory that isn't altered when the Arduino loses power.  Enter EEPROM - programmable memory that is easy to integrate into the Arduino.  The EEPROM used in this tutorial is Microchip 24LC256 and uses the I2C bus.  If you use a different type of chip, check its datasheet to match the wiring diagram used here.

Arduino Aquaponics: Photocells and Light

Effectively monitoring ambient light is easy with a light-dependent resistor, or photoresistor, which varies its resistance with light intensity - the darker it is, the higher the resistance and the lower the voltage.  This tutorial shows how to connect an Photocell to an analog pin on an Arduino and read the voltage.

Arduino Aquaponics: Water Temperature

Two important parameters to monitor in an aquaponics system are the water temperature of the fish tank and the root temperature of plants in the grow beds.  In fact, soil temperature is far more important than air temperature when it comes to a plant's ability to grow and uptake nutrients.  By monitoring both the stock tank temperature (origin) and the grow bed temperature (destination) you can see the thermal efficiency of your plumbing system or connect it to a  relay to create your own water temperature controller. A great sensor for monitoring temperature in liquid environments is the waterproof DS18B20 and it's very easy to connect to an Arduino.

Arduino Aquaponics: Temperature and Humidity

This sensor is the DHT-22 which senses the temperature and relative humidity of the surrounding air.  The DHT-22 is pre-calibrated at the factory, with the calibration information stored in an 8-bit computer inside the unit.
Air temperature is measured in Centigrade, with a range from -40 to +80 degrees and an accuracy of 0.5 degrees.  Relative humidity is measured as a percent, with a range of 0 - 100% and an accuracy of 2 - 5%.  A downside to this sensor is the sampling rate - measurements are can be taken once every two seconds at most.

Arduino Aquaponics: Real-Time-Clock

At the heart of any control system is accurate time tracking.  This tutorial shows three ways of using the RTC.
  • Getting the current time
  • Using the time to create intervals
  • Doing something at a specific time

Arduino Aquaponics: Overflow Sensor

Overflow sensors are just about the easiest device you can make.  Essentially, the design is similar to a switch, wherein the flow of electricity through the circuit is broken.  An example application is aquaponic grow beds being flooded: when the water level meets both probes, the circuit is complete, the flow of electricity resumes and is detected by a digital pin as an overflow occurring, which in turn can shut off the pump.  A state change of the pin, from LOW to HIGH or HIGH to LOW prompts an update to Tracker and, if the new state is HIGH and you want alerts, sends an email alerting you to a potential overflow.  The probes used in this tutorial are stainless steel machine screws to minimize corrosion, and they are inexpensive and easy to replace.

Arduino Aquaponics: Relays


One way to take any Arduino project to the next level is by using relays.  Relays are essentially mechanical switches, except they are electrically controlled and, therefore, can be controlled by an Arduino.  Many devices used in aquaponics have on/off states, such as pumps, grow lights and fans and therefore can be controlled with a relay.  This project will simply turn the relay package "on" and "off" without hooking up any additional hardware (like an aquaponics pump); we'll save that for other specific tutorials.