Introduction: Aquarium Controller II - SlaveController for Fertilizer Pumps
Did you read my instructions for the Aquarium Controller?
Ok, this is a continuation and can not be used separately. (only in changed form)
I would like to show you how I have automated the nutrient supply of my aquarium plants.
I use liquid fertilizers for my aquariums.
• Daily in the morning 8ml NPK fertilizer
• 1 time a week 8ml iron fertilizer
• 1 time a week 15ml iron fertilizer
• 1 time a week 8ml N fertilizer
and I wanted to automate this.
On Ebay I found small pumps, which are operated with 12V, I bought 3 pieces.
For each fertilizer I have now a pump and now I need a controller, which takes the dosage. But my AquaController-Arduino does not have enough outputs. In addition I need some inputs for manual control, too. After the water change, for example.
You can use a bigger Arduino or you use another Arduino that communicates with the Aquarium Controller. This is my way to realize it, because you can link a lot of Arduinos and have a lot of separate controller for a lot of things ;)
I'll use an Arduino Mini Pro. Cheap and small. I bought 5 pieces for 12 € (about 12 dollars) This is enough for other projects. ;) But you can use any other.
The Mini Pro will communicate with the Arduino Uno. I'll use I2C for that. So I can handle a lot of inputs and outputs with only a few wires. The Uno will tell the Mini Pro when fertilization should be started. Then the Mini Pro controls the amount of fertilizer and prompts some buttons to manually add fertilizer.
One of my most important questions was, should I set values with an keyboard to be parameterizable? My answer was NO.
I think all the parameters are empirical values that do not change constantly. So I do not need additional keyboards, displays and program parts. The rare changes I make, I make them in the program and reload it. This is easier and cheaper.
Update: Sometimes the communication between Master and Slave fails. I upload a new slave-version, with a little bugfix.
Update: New Sketch-Version on Step3. Improvements & Bug fixes
Update: New Sketch-Version on Step3. Improvements & Bug fixes. The quantity of fertilizer are now stored in the Master, not in the slave. Some changes to the TFT. Master & slave can handle 4 pumps. And some other little things ;)
Step 1: What You Will Need
- 1x Arduino Mini Pro (or Arduino Nano, but more expensive)
- 1x Prototype-Shield*
- 3x Nutrient pumps (see photos above)
- 3x Relayboards (or 1 with 3 relays on it ;)
- 1x Connection cable (between AquaController and SlaveController)
- 1x Mounting board (for pumps and bottles)
- 1x Power supply 12V 5-10A (the same as for AquaController?!)
- 1x Power supply 5V (the same as for AquaController?!)
- 1x A case you like
- wires, cables, ribbon cable*
- screwing connectors*
- male & female plug connectors*
- some tools
You can get all parts on eBay, for example.
Step 2: External Pump Control
My aquarium controller is located in the visible area near the aquarium, but the slave-controller is located near the fertilizer bottles, e.g. in the closet. This is why I use Master and Slave.
First I solder the Arduino on pins. Corresponding sockets I solder on a circuit board. On this board I solder Pins for the keyboard (4 buttons for manual re-fertilization) and pins for the master-slave connection, too.
I have additional small buttons soldered, if I would not use a keyboard. But these are not required.
Lastly, I soldered the pins for the relays and connected the relays, the keyboard and the connection between master and slave.
The pumps I have connected via the relays to the 12V supply. You can see the details on the breadboard picture.
The OLED display I have left out. Instead, I've changed the AquaController display. So I have everything at a glance. Some old values were unnecessary and I exchanged them. Now it looks better ;)
And I still have space for the feed automat data. (This is the next project ;)
Update: To reduce the voltage from 12V to 6-9V, you can simply use voltage regulators. These transform too much tension (Voltage) into heat. That's why I use other electronic circuits. (see photo above) They work like a PWM and reduce the voltage by pulse width modulation. But you can use, what you want ;)
Step 3: Arduino Sketch
The following functions are possible:
• Different fertilizers will be added automatically to different quantities on different days.
• Fertilizer can be manually added after a water change, for example
• The daily doses will be displayed on the AquaContoller
• Every day at midnight, the quantity display will be reset.
The slave will therefore make independent dosages and receive instructions from the master.
The slave manages the amount of fertilizer and informs the master on request.
A new programming for the AquaController is required for the operation of the fertilizer controller. See file above!
I have used simple Arduino programming language again and the sketch is available as a file. Comments are in German again. Sorry. :/
If you have any questions, just ask me.;)