I am thinking of making an auto water changer for my reef aquarium. I already have a pump thatpumps water out and another to pump water in but I have to plug them in and then unplug them was going to use floats and timers but it has been tricky getting them timed right. So is it possible to put a water meeter inline with each pump and set them up with an arduino so once a week or every other week the drain pump will pull out a set amount of water and the fill pump will then put back that amount?
fresh or ocean?
I wouldn't want to rely on metering water in and out - it'd never be completely consistent and the level would gradually drift. I think it would be better either to pump the water out (and provide a mechanism to refill it up to a level) or pump the water in and provide some sort of overflow mechanism.
I wouldn't want to rely on metering water in and out - it'd never be completely consistent and the level would gradually drift.
I fully agree.
In the past I have used a float mechanism with 3 micro switches (limit switches).
The lowest switch indicates, enough water has been removed.
The middle switch indicates, enough water has been added.
The top switch indicates, too much water has been added (emergency power off).
If the pump that is filling the tank is faster than the one draining the tank then it's simply a matter of turning the drain pump on and leaving the fill pump to continue watching the float switch to ensure that the tank stays full. An alarm should be set if the float switch does not register a full tank within a reasonable period of pumping time.
Using flow meters on the in and out seems overkill except for the fact that it would add a layer of feedback (if the fill pump were to fail). I suggest that it's overkill because you never get 100% turnover of the water no matter what you do; the longer the pumps run the more total turnover you get, but it's still a quest with diminishing returns. Measuring exact inflow/outflow will never be precise to how much turnover of what you've performed.
Make sure you keep in mind that if you are looking to have a pump pull water from your tank you are going to create a syphon. If you do it wrong you could end up with a lake in your living room. Im thinking about putting together a similar system. I may tap into my canister filtration system to pull water out into a waste bucket using a small pump.
snyper:
I am thinking of making an auto water changer for my reef aquarium. I already have a pump thatpumps water out and another to pump water in but I have to plug them in and then unplug them was going to use floats and timers but it has been tricky getting them timed right. So is it possible to put a water meeter inline with each pump and set them up with an arduino so once a week or every other week the drain pump will pull out a set amount of water and the fill pump will then put back that amount?
Rather than using meters, you can just find out by experiment how long each pump should run and control the time from the arduino. It would be good to have several sensors measuring water level to help avoid problems. I'm curious as to why you would do this weekly - if it were automated, I'd be inclined to do it more often with a smaller amount of water to minimise temperature change - daily?
The big issue here is getting your code reliable and making sure it recovers gracefully after a power outage. Defects can cause flooding or dead fish. You'll generally want to put a cap on how much water you can pump each day. Avoid plumbing the system into your home water supply, so you can cap the amount of possible flooding. Using the watchdog timer may be useful. Test your code very extensively and consider posting it here for review.
It's not a particularly complex system, but it is effectively life support and it's amazing how easy it is to pack bugs into a seemingly simple piece of code.
I've recently setup an Arduino driven, automatic water changer. Like other posters have been saying though, I do not use flow meters...
Mine started off like yours, I had a drain pump and a fill pump and would switch them on and off. I timed them out to change around 1 quart of water for a 28gall All In One JBJ system. There is a return pump chamber in the back where the water level will rise and fall depending on how much total water is in the system.
In the return pump chamber, I added two float switches from from autotopoff.com. I placed one about 1 or 2 inches higher on the bracket than the other; with the top one at the normal running water line.
To turn on and off pumps, I bought a sainsmart 4 channel mechanical relay board from Amazon, placed inside a conduit box for electrical outlets.
For my Arduino, I bought and setup the real time clock. When the clock says it's 5pm and 15 minute (I'm normally home ); I start the water change timer. The water change program counts millis() to time the drain pump to my known drain time, then when draining is complete, it runs the fill pump for my predetermined fill time.
On a separate millis() timer, I change my float switch states, just like the button debounce example. If the bottom float is running low, I turn of the drain; if the top switch is running high, I turn off the fill.
I also setup a top off system within this same program, using the same top float and another pump plugged into the relay board. I set top off to run 15 minutes before the water change.
kaskiles
I just order the gear to do the same.
I plan to run the drain pump for a set duration and then fill via solenoid valve until a float switch trips. For safeties a second float switch will be in series and a float valve will be used on the 1/4 inch fill line.
I have an Uno R3, real time clock and an eight relay board. Yes, the relay board is overkill, but for only a couple bucks more it provides head room if I get other ideas.
Could you share your code?
Thanks
I assume there's no fish in the tank ?