Arduino Web Enabled Aquarium Controller

This is a project I started a few months ago, but never finished. I got distracted by the Raspberry Pi :). Even though it is unfinished maybe someone could get some value out of the current state of the project.

The idea was to create a controller for an aquarium, to measure temperature, measure water level and to turn pumps, heaters and lights on/off based on measurements and times. And, to have a web enabled interface to the controller.

In it’s current state the controller works with DS18B20 temperature sensors and displays the temperature on a webpage. The web server runs on the arduino and uses a combination of generated html and static html stored on an SD card in the ethernet shield.

Scroll down to the bottom of this post to find the download link for the project.

Hardware used (with links to where to buy them cheaply)

I also have the following hardware, but never got around to adding them to the project:

Arduino Aquarium Hardware

And here are a few screenshots of the program running on the arduino with 5 temperature sensors. The temperature sensors all connect to the same pin, and the ‘Scan’ button scans for probes and sets their resolution. The ‘Temperature’ button then reports the temperature for each of the probes.

And this page shows that other dynamic data can also be added. In this case it shows the current values of the Analog input pins.

To build this project you will need the Arduino Mega2560 (an Uno might work, have not tested that), Ethernet Shield, MicroSD card, one or more DS18B20 temperature sensors and a 5K resistor.

You can download the Arduino project here:

    [download id=”4″]

Also included in the download is the stylesheet. On your SD card (which goes into your Ethernet Shield), create a www directory and place the style.css file in there.

This project started out on the Marine Aquarium South Africa (MASA) forums, you might be able to pick up some more information in the thread over there:

17 thoughts on “Arduino Web Enabled Aquarium Controller”

  1. Hi Andre,

    you have done there a nice Job, the code looks fine but i need a littelbit help for the html part. I want to place the forms and buttons, but i didnt find out how to interact with this buttons in your code. Hope you could help me with a small sample where to place this in your code.

    Kind Regards

    1. The HTML is generated by the Arduino dynamically. If you look near the bottom of the source code you will see where it is done. The stylesheet is the only part of the webpage that is static, and that is included in the zip file.

    1. Unfortunately not. It’s been a long time since I worked on this. If I continue this project I will probably be using a RaspberryPi instead of an Arduino to run the webserver on.

  2. I am trying to do something similar, could you post a wiring diagram? As your first image is a little hard to make out where certain wires go.

  3. Hello Andre,

    Are you still working on this project ?

    I`ve been working on a similar project, take a look at it`s still alpha version and not connected on my aquarium, because of that is without password protected ( to avoid people turn on/off my aquarium lights 🙂 )


    Please mail me to talk more abou the projects

  4. Hello andre,
    could you please upload the code again? I would like to create project of html web server to online update my arduino inputs and I think that your project could be very helpfull for me to start this 🙂

Leave a Reply