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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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

Participated in the
Arduino Contest

Pet Contest

Participated in the
Pet Contest

Sensors Contest

Participated in the
Sensors Contest



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    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 ;-)