Aquarium Water Auto Refill
by planetleak in Circuits > Arduino
10542 Views, 100 Favorites, 0 Comments
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.
These little device check the aquarium water level every ~12hours, and refill if need.
Size: 20x25mm / ~0.8x1 inch
Powered from 5V USB mini.
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
- 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
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 +
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 +
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:
http://youtu.be/IMkKb0Vu55A
And the device test:
Thank you.
ps: Sorry for my english.
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:
http://youtu.be/IMkKb0Vu55A
And the device test:
Thank you.
ps: Sorry for my english.