Menu

Home

Aquaduino

What is Aquaduino

Aquaduino is an extensible open source control system framework for fish tanks or other related environments. Aquaduino is published under the GPLv3 and is written in C++. It is currently developed on a DFRduino Mega 2560 with DFRduino Ethernet Shield. It currently supports the control of power outlets using relay modules, temperature readings by using a Dallas DS18S20, automatic refill by using a level sensor with closing contact and a simple webinterface to manage the control of the power outlets. The strength of Aquaduino is its extensibility which allows developers to simply support further sensors, actors or controllers related to their special needs.

The framework provided by Aquaduino uses a slightly modified version of Webduino. To provide a seamless integration of actors like relays into controlling elements the Aquaduino webinterface automatically generates a configuration webinterface to assign the available actors to the controlling elements of Aquaduino. Thus the actors can easily be enabled, disabled or assigned at runtime to the different control elements.

Features

  • Actuator/Controller/Sensor Framework

    • Controllers are software components that control assigned actuators
    • Actuators can dynamically be assigned to controllers
    • Sensor readings are periodically triggered by the framework
    • Controllers can select the sensor providing the sensor values
    • Controllers, actuators and sensors provide their own Webinterface
    • Easily extensible to support different controllers, actuators and sensors
    • Main
    • Currently supported Controllers:
      • Temperature controller
        • Threshold based
        • Definition of temperature where PWM based actor shall reach
          its maximum (linear scaling)
        • Hysteresis (Configurable by webinterface)
        • TempController
      • Level controller
        • Time based debounce mechanism to ignore waves
        • Time out mechanism to prevent refill pump from running dry
        • Hysteresis (Configurable by webinterface)
        • Level
      • Clocktimer controller
        • Configurable amount of clocktimers
        • Configurable amount of time intervals per clocktimer
        • ClockTimer
    • Currently supported Actuators
      • Digital outputs (including PWM)
      • DO
    • Currently supported Sensors
      • Level sensor (Digital Input)
      • Temperature sensor (DS18x20)
      • pH/ORP/EC in progress
      • Support for monitoring using Xively
      • Xively
  • Networking

    • Static or DHCP IP configuration
    • NTP synchronization
    • Xively API
    • Configuration
  • Template Parser Framework

    • Easy integration of HTML templates in controller webinterface code
    • Completely stack based (No dynamic memory consumption)
    • Templates stored on SD Card (No static memory consumption)
  • Configuration Management

    • Support for SD Card storage to store system configuration
    • Support for SD Card storage to store system configuration

Hardware Setup

Aquaduino runs on the Arduino Mega 2560 and requires an Ethernetshield. The following picture shows the general hardware setup for the external components. In my case the relays to control the power outlets are realized by 6 4-channel relay breakouts from iTeadstudio, but it is also simply possible to build own relay setups as depicted below using for example an ULN2803 driver. The level sensor is a LS02-1A66-PP-500W from Meder Electronic. Its doing a great job for the small amount of money. The DS18S20 can be integrated in a small aluminium tube and then be sealed with silicon. This makes it a great low cost submersible temperature sensor.

Project Admins: