[Eric Ayars] has a nice cast iron Christmas tree stand at home, but the only drawback is that the stand makes it hard to see just how much water is available to the tree. Last year we covered a small gadget he created to help keep tabs on the water level, but as several of you predicted, the system eventually failed.
His previous solution used copper plated proto board to sense how much water was in the stand, but the leads corroded in about a week’s time. With Christmas just around the corner, he decided to give things another try.
His revamped water level sensor relies on measuring capacitance changes in a copper strip board when under water rather than detecting a complete circuit like the previous model. To protect his sensor this time around he coated the board with polyurethane, which should provide a decent corrosion barrier.
Using the Arduino CapSense library, the sensor can detect the presence of water, signaling an alarm if the base needs refilling. One of our readers suggested that he use the tree itself as a low water indicator, which is just what [Eric] did this year. If the water is somewhat low, the Arduino-controlled relay powering the tree is switched off and then on again, every 5 seconds. If the base is nearly dry, the tree asks for water by blinking the word “Water” repeatedly in Morse code.
We think that this year’s solution is pretty clever, and we’re glad to see that [Eric] didn’t give up after last year’s setback!
In his diagram, neither pin 11 or 12 is connected to ground directly. Why not? Couldn’t the capacitance sensor work if they were?
No, it would not work if one of the pins 11 or 12 was connected to ground. One terminal of the sense capacitor (the two copper traces on the water level sensor protoboard) is connected to ground, and the other terminal has a charging pin (pin 11, connected through a 470 kohm resistor) and a voltage measurement pin (pin 12, directly connected to the AVR I/O pin). Consider how an RC circuit charging curve of voltage vs. time works, and how capacitance changes will alter the curve. Anyway, read the CapSense library docs and it should explain how it works.
Neat! I love love the morse code blinking.
A couple problems (which maybe aren’t really problems at all) come to mind – first, I wonder if any dissolved stuff coming from the tree might change the dielectric qualities of the water enough to alter your readings.
Second, in the long term (like probably more than a single season, so not really a biggie), polyurethane is technically hydrophilic, it’ll eventually absorb enough water to get kinda soggy and this may cause your capacitor to break down. Maybe a wax or epoxy dip would work better long term.
Either way, I definitely like the idea for solid-state monitoring better than having a float or something like that (although now that I think of it maybe a float and a reed switch could make a simple reliable sensor… ;-)
Neat, but I would do the ghetto thing and use a dipstick.
The transistor needs to be protected by a flyback diode.
Use titanium or stainless as sensors?
Just using alternating current would be an improvement, but there would probably still be oxidation on the copper that would degrade the conductivity.
The new capacitive sensor is much more robust since conductivity is not an issue. Foreign material on the sensor may still negatively impact measurements, but probably to a far lesser degree.
Snag the guts from a fuel pump sending unit. Use a level gauge to show amount of water remaining. Sending units are already designed to be submerged. You could even wire switches set to predetermined values and wire in an external pump to refill the base. No arduino needed
Out of interest wondering if anyones go the total other way, used a ball on stick method and measured the pressure its applying – pressure will drop as water level does (or if you placed it under water, pressure would rise…) and you could use this to figure out how much water you had?