Aquariumatic V1: Arduino Powered Multi-Aquarium Monitor
Intro: Aquariumatic V1: Arduino Powered Multi-Aquarium Monitor
With an Arduino Nano at its heart, this DIN rail mountable control box can monitor and help maintain the environment required for your fish to thrive. With sensors to monitor pH levels and temperature, and relays to control heaters, lights and pumps this little box can work to keep conditions within preset thresholds.
The device can output data and alerts via serial over the USB port or i2c giving huge options to expand the system; I have mine connected to Python webserver running on a Raspberry Pi to give a user friendly Web based interface to monitor and control the tank.
Multiple Aquariumatic V1 units can be connected to the raspberry Pi via i2c to allow Multi-Aquarium control all from the same Web interface!
STEP 1: Collect Your Parts
Parts required:
DIN rail enclosure
Arduino Nano
Nano's screw terminal shield
16x2 lcd screen module
4 channel relay board
pH sensor board and probe
Temperature sensor
Solid core wire/ male/female headered wires (depending on how you want to wire everything up)
Stereo jack and socket
I will provide some links to the parts I selected for these. They can be found on EBay for dirt cheap in most cases!
STEP 2: Cut the Case
Cut the holes in the enclosure for the Screen, the BNC connector for the pH sensor, the jack socket for the temperature sensor,, the potentiometer for setting screen brightness and any holes to stop the relays and Arduino USB port being obscured.
Depending on the DIN rail case you have chosen to house your components in you may need to adjust the hole locations to suit your needs.
Once I have some links to the case I've used I will draw up a template to follow.
STEP 3: Mount Relays & Nano
The relay board and the Arduino nano screw terminal shield fit nicely alongside each other in the Base of the enclosure.
Once you're happy with their position use a dollop of hot glue to hold these beasties in place.
NOTE: Depending on your enclosure and it may be better to pre-wire the components before sticking them in place; it can be quite tricky to fit the wires into the screw terminals with the relay board in the way.
STEP 4: Mount PH Sensor Board
With the hole for the BNC Connector cut or drilled its a case of fitting the connector through the hole and using some glue to hold into place. As with the other parts it may be best to attach your wiring to the board before placement.
STEP 5: Mount LCD Screen
As with the other parts fit the screen into it's pre-cut hole and secure with an adhesive of your choice.
I am hoping to one day design a series of brackets to hold the components in place in the case without the need to glue them in.
It'll be much neater and make for a much cleaner build.
STEP 6: Mount Jack for Temperature Sensor
Unscrew the jack, slot it through the hole and screw back together. Nice and easy!
STEP 7: Wiring
Wiring diagram to follow!
STEP 8: Programming
The code I have used is under constant development as I keep working on this project.
My code is available on my GitHub.
Once I have a stable version for this unit in it's current configuration I shall add here.
STEP 9: Install and Enjoy!
Attach your freshly built and programmed unit to a DIN Rail of your choice.
I'd recommend mounting it close to your tank to make connections easy and to keep your cable runs short.
CAREFULLY wire up your power sources. When we put together our prototype we used an old PSU power supply (12v 4A) to provide 12v power to our Arduino and relays alongside the mains supply for the relays. For demo purposes we mounted some sockets to a display unit to plug our heater, pump and lights into and witred the relays to these sockets. This meant we didn't have to alter our Aquarium's devices in any way.
If you're interested in this please drop me a message - I'll gladly provide info and help where I can!
I'm also documenting further development on a new version of this device over on Hackaday.io - check it out!
Cheers
Craig
STEP 10: The New and Improved Aquariumatic!
I've been working on a sleek, more professional version of the Aquariumatic; something that I'd be able to showcase and demo to prospective users of the system we have to offer.
Improvements
There has been a variety of changes to the project. These changes cover almost every aspect of the project
- Brand New enclosures, giving a more professional finish.
- Pi Zero W-based hub, reduces the footprint and has integrated wifi!
- New Wireless Control Units, reducing messy wiring and allowing a further reaching setup
- Onboard Oled display and buttons, to allow for improved feedback at the Control Unit
- Expanded IoT possibilities
I will put together a new Instructable covering the new and improved system once the new firmware is complete.
Cheers!
20 Comments
Asyluxx 3 months ago
Zeina_N 10 months ago
I opened Github but didn't find the code.
can you provide it again please
Thanks in advance
craighissett 10 months ago
I have a few versions of the code for this one; what hardware are you looking to use?
Cheers
Craig
Zeina_N 10 months ago
might use an arduino uno or nano, but not sure 100% yet.
If you have any other suggestions that would help (I the code or in the construction of the module) I would take them into consideration.
Thanks in advance 🙏🤍
j.jabaay1964 4 years ago
craighissett 4 years ago
I have a few variants of this project up and running, for various setups.
Is there a particular requirement you are looking for? I'd be happy to help you get up and running.
ErwinM36 5 years ago
craighissett 5 years ago
Can you tell me more about what parts you have? I'm sure I'll have some example code similar to what you may need:)
ed.darby 7 years ago
Great project Craig :)
I've done something similar but not quite so elegant!
craighissett 7 years ago
I'm very keen to get some input on this.
If you're on Hackaday feel free to join the project :-)
ed.darby 7 years ago
I've not documented mine as yet as it's very simple, just a couple of 433MHz sockets to control the air pump and lighting. These are controlled from an arduino with a 433MHz transmitter connected to a PC running eventghost that switches them on.
You've given me some ideas concerning monitoring the pH and temperature though :) I'm using quite a few ESP8266 modules for things around the house so may well WiFi up the fishtank!
Thanks.
craighissett 7 years ago
Next version I'm aiming to do well have a custom pcb containing the arduino nano, relay and sensor stuff, with optional sockets for a Pi Zero and an ESP8266.
The Zero will run a full webserver (replacing the pc in your setup) and monitor many arduino units via i2c. the ESP will be there to either act as a webserver when there's no Pi Zero (if one unit is running in standalone, for example ) or to connect and stream data to an IoT site for data tracking via that method.
That's the plan anyway :-D
ed.darby 7 years ago
Oh that sounds great :)
I'm just starting out using Domoticz on and old Model A Pi that was lying around, I'm thinking of teaming that with some Sonoff WiFi mains relays (to replace the 433MHz sockets) and then add in a Dallas waterproof thermometer, the pH sensor you mentioned.
Then just set some scenes/alarms in Domoticz to automate the lot (I stole your idea for the DIN box!)
craighissett 7 years ago
It won't take much to be able to schedule tasks as well as react to thresholds being set. It's a work in progress but I'm not too far off!
ed.darby 7 years ago
Nice, I'm a complete programming luddite, I'm trying to learn Python but haven't got very far yet, I'm more of a "find an example" and bend it to my will kind of coder ;) I use tasker for Android - a lot! but Eventghost is written in Python and there are things I'd like to be able to do with it which I cannot currently.
I could do away with the PC now for home automation but it runs the media centre anyway so it makes no difference if I have it on or off.
I'm running a custom MQTT program on the Sonoff wifi switches that works really well and communicated with Domoticz on the RPi.
craighissett 7 years ago
I think that's the way everyone starts innit :)
That's how I learn; modify code to suit what you need accomplish, and while modifying learn how it works. I need to be working towards a goal to learn. This project, for example, was a friend's project that he was doing for college. I wanted to learn how to do the whole webserving and automation thing, so offered to help. I don't even have an aquarium at the minute ha ha!
This particular project can be slightly modded to work for any kind of monitoring and automation. I can't wait to get this made and get a fully finished product!
ed.darby 7 years ago
Haha yup that's the way indeed, I'm pretty pleased with how everything is working here ATM, it's a constantly evolving system so I'm always adding bits and improving things. Our little flat was all voice controlled before Amazon had even thought of Alexa LOL
It's all coming together in an integrated system now with customisations you simply can't get from stuff you buy off the shelf (also no one could easily hack my IoT devices as they don't share one single command with anything on the market LOL)
I currently have some WS2812b LEDs that sit behind my computer monitor as a nice Ambilight but they change colour when it's rubbish bin day, or flash on and off green when my phone battery is charged, flash red on an incoming call (like the Batphone).
craighissett 7 years ago
Mate, you need to get your flat up on here for me to see :-P
I love the idea of the ambilight notifications; I was looking to adding one to my TV (controlled by an add on available through Kodi on my android box) for the more conventional ambilight stuff, but really interested in stealing an idea or two from yours!
ed.darby 7 years ago
http://www.tweaking4all.com/home-theatre/xbmc/xbmc-boblight-openelec-ws2811-ws2812/
craighissett 7 years ago