Hydroduino :  remote monitoring and control

Hello everyone!

This is a project that is finally starting to get to a stage where i have something to show :slight_smile: I had gotten some very constructive feedback on the basics here a while back , so here goes:

Basically the Hydroduino is system for remote monitoring and control of environments (specifically hydroponics gardens, but it can be used for any other type of environment too) using the Arduino and a set of sensors:

It is divided into two main components :

  • the web client( javascript , jquery, and ajax)
  • the server (python, mysql database).

The server handles following elements:

  • the scheduling system (turning the different client defined tasks into commands sent to the arduino)
  • the arduino control system
  • a simple wsgi web server (using Bottle)

There are a lot of elements in the Python code and in the arduino code that might be of interest to some of you : for example:

  • a threaded "serial listener" class , which is somewhat like the serial in "Processing" : you can have events raised each time the arduino sends a message over serial, with the added possibility of buffering the data until a specific string is received etc
  • for the automation part i have created a small arduino side library with witch you set the state of pins or retrieve data from specific pins via serial commands, and you can also set "triggers" : ie have specific threshold values that will turn "actors" (motors, pumps, you name it) on or off. The server side code sends the commands based on the (user defined) settings retrieved from the central mysql database

I have also started working on a "plugin" system for non essential elements: this includes a twitter module for critical messages sent by the system, a "time lapse" webcam photography module , and most likely a form of Pachube integration .

The aim of the project is:

  • to have a lightweight remote monitoring and control system that you can easily install and setup on a home computer /Server (i will be using a SheevaPlug SheevaPlug - Wikipedia for this)
  • web based so no heavy ui, and easily accessible
  • everything should be settable, configurable, modifyable via the web client
  • multi platform
  • open source (i will release the code as soon as i have a cleaned up but working version)

there is still lots to do but its already running relatively smoothly, feedback is more than welcome, as its still very much a work in progress!

Last but not least here are two videos of the current state of the project:

Hi Ckaos,

It's not clear what does the monitoring and control at the sharp end, for example what hardware reads temps or turns on the pumps heaters or whatever. Is there a single board for this or a series of connected Nodes?


Hi Rob!
Yes you are right , i should have been clearer about that: here is a schematic explaining the general structure:

The hardware is simply the arduino (for now not standalone, though it will be in the end, and protoboard for all other components) to which i connected a few Lm35 cz temperature sensors, an ldr for light sensing, and i use a few Tip120 to control the fans and pumps.

Hope this clarifies things a bit :slight_smile:

OK I get it, thanks.

I have an interest in such things as I'm currently designing a monitoring and control network.