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.