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

- 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

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.



    • Classroom Science Contest

      Classroom Science Contest
    • Woodworking Contest

      Woodworking Contest
    • IoT Challenge

      IoT Challenge

    10 Discussions


    5 years ago on Introduction

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

    2 replies

    Reply 5 years ago on Introduction

    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.


    Reply 4 years ago on Introduction

    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.


    Reply 4 years ago on Introduction

    Im using two pcb pinhead, soldered on the cable.

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


    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.


    5 years ago on Introduction

    KISS) one float valve will do same job,

    two of them in series adds extra safety against overfilling.

    1 reply

    Reply 5 years ago on Introduction

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


    5 years ago

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