Introduction: Aquarium Water Auto Refill

Picture of Aquarium Water Auto Refill

Summer is coming, in the heat, the aquarium water quickly evaporates.
These little device check the aquarium water level every ~12hours, and refill if need.
Size: 20x25mm / ~0.8x1 inch
Powered from 5V USB mini.

Step 1: The Parts

Picture of The Parts

- A small PCB
- Attiny45 SU (1x)
- BC847 smd transistor (1x)
- Diode smd (1x)
- 3,5mm 1x2 terminal block (2x)
- 100K resistor 0805 (1x)
- USB mini connector (1x)
- G5V1 relay (1x)
- 9-12V brushless water pump (1x)
- 5V adapter (1x)
- 9-12V adapter (1x)
- Some aquarium air tube
- wire for sensors. (im using breadboard cable)

To programming Attiny
- Arduino panel
- 10uF capacitor
- SOP to DIP adapter to programming smd Attiny

Step 2: Circuit and PCB

Picture of Circuit and PCB

The PCB too small, i solder the USB to the other side of the PCB, so mirrored VCC and GND,
but not necessary i see this now.

The pump wiring:
-from the 12V adapter to the pump -
-from the 12V adapter to the relay terminal block one pin
-from the other pin of the realy terminal block to the pump +

Step 3: Arduino Code and Testing

Arduino code is very simple.

Check the water level every ~12 hour, and if water level low, the pump fill, until required water level reached.
Then stop measuring for the next ~12 hour.

This little device run over a month with my 30L aquarium and it works perfectly.
Using a 1L jug with a cover for the refill water.
I see no sign of electrolysis on sensor!

The code:

int relayPin = 2;       
int sensorPin = 1;        
int triggerPin = 0;
int sensorState = 0;

void setup()
  pinMode(sensorPin, INPUT);
  pinMode(relayPin, OUTPUT);
  pinMode(triggerPin, OUTPUT);

void loop(){
  digitalWrite(triggerPin, HIGH);
  sensorState = digitalRead(sensorPin);
  if (sensorState == LOW){
      digitalWrite(relayPin, HIGH);
      else if (sensorState == HIGH){
        digitalWrite(relayPin, LOW);
        digitalWrite(triggerPin, LOW);
        delay(43200000);                    //~12hour delay.

I think lot of arduino programming attiny video on instructable, but here my short how-to:

And the device test:

Thank you.

ps: Sorry for my english.


ErzNova (author)2014-04-24

Really cool. This maybe a part for my plant growing and watering system. Why you are using the Attiny45 instead of a Attiny85 ?

planetleak (author)ErzNova2014-04-24

Attiny45 was in the drawer. :)

Now in the planning phase my adjustable plant watering system.

In the next few week i hope done and tested, then upload here too.

redcarpet (author)planetleak2015-04-17

Hello. I would be very interested how you achieved your plant watering system - I am considering the same system too. Thank you for uploading your design and your story here. Kind regards.

tupv (author)2014-10-23

What sensor did you use for measuring the water level? :)

planetleak (author)tupv2014-10-23

Im using two pcb pinhead, soldered on the cable.

No specific sensor need, you can use any wire as sensor.

Cool Cap Engineer (author)2014-05-04

Nice simple design. Have you thought about using solid state relays instead of mechanical relays?


Yes, but on this small PCB and for 9-12V devices im using these relays.

(Cheaper and smaller than SSR).

When controlling AC device, im usin solid state relay.

petrucci (author)2014-04-27

KISS) one float valve will do same job,

two of them in series adds extra safety against overfilling.

planetleak (author)petrucci2014-04-28

Yepp, but that realy nasty in the aquarium, especially in nano. ;)

The sensors size looks a jumper connector, can hide behind filter tube, in the corner...

kode1303 (author)2014-04-24

Great idea! I really want to learn more about arduino stuff!
Your english is fine ;-)

About This Instructable




More by planetleak:iPhone Touch ID windows loginESP8266 TV remote for HomekitRaspberry Pi 2 Homekit - from zero to Hey, Siri (Updated)
Add instructable to: