My auto top-off failed the other day. This was a 3 float high street system and I woke to find my tank overflowing and the contents of my RO barrel on the floor of my kitchen. I tore the floats down and tested them, one was stuck so I messed about with it for a bit then it returned to operational, so I hooked it all back up and gave it another chance.
The system failed again a few weeks later in a similar manner. So, I've been manually topping the tank up recently (no more sleepless nights for me). The problem is that I'm not brilliant at remembering to top the system up, so the system has been anything but stable recently. So I knocked out a simple auto top off system I felt I could rely on.
This is an arduino nano with an inductor sensor on the RO barrel and an optical sensor on the tank. I wanted two inductive sensors but found out (too late for this system) that the inductive sensors are no good with glass. So, I have a couple of resistors on the optical sensor, but it works great.
Essentially, there is a pump manual button that I can use to drive water... manually.. if needs be.
There are 3 led's: one shows the system has power, the second shows when the pump is running and the third is used for fault indication.
I have two inputs (inductive and optical sensor) and two outputs, one for the pump and one for a horn to sound if a fault occurs. If the RO is low the horn and lamp give morse code for RO, if the water level and RO are low I get morse code for TL and if the pump runs for too long or too many times in a period, I assume something is wrong and an SOS fault is triggered. No more wet floors for me.
Being an optical sensor I'll need to clean it every week, but otherwise I think it's a pretty good platform. It has now been running perfectly for the past 3 days, but I have a few changes to make on the next generation.
The PCB has been ordered for 0.1 but these are the changes I'm introducing:
1. All inputs and outputs are changing from 2 terminal phoenix blocks. The sensors will be JST connectors , the pump and power will be barrel jacks.
2. Connectors were on the left bottom and right of the PCB, I've moved all of them to the bottom.
3. The horn was remote from the PCB as a stand alone unit, the new horn will be onboard (keeps the system tidy).
4. I've added a system on/off push button so I don't need to unplug it or reach for the socket power switch.
5. I've added two 4-position rotary switches, one to change between pump on times and the other to change the number of permissible pump cycles before a fault is thrown. I'll also use one of these settings for a water change mode (no faults for extended pump on period).
6. I've replaced the transistors with much smaller surface mount components, less pcb space and looks nicer. (the foot prints for the THT ones were also wrong which resulted in some creative fittings)
7. I've removed some pullup resistors as they weren't necessary.
8. The diode footprints were reversed... oh how I lol'd when I noticed how hot they were getting.
I'll be trying this out when the PCB arrives from China. No doubt there will be a version 0.3, but I'm enjoying the process so much that I don't mind going around the loop a few times anyway.
I know this is a little distraction from the Pi project, but the best projects start small and build as the need arises.