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.
Remove these adsRemove these ads by Signing Up

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.
ErzNova1 year ago

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)  ErzNova1 year ago

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.

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.

tupv9 months ago

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

planetleak (author)  tupv9 months ago

Im using two pcb pinhead, soldered on the cable.

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

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

planetleak (author)  Cool Cap Engineer1 year ago


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.

petrucci1 year ago

KISS) one float valve will do same job,

two of them in series adds extra safety against overfilling.

planetleak (author)  petrucci1 year ago

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...

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