My goal is to to be able to read the water level percent in a small water tank. I was thinking wiring sensors going up the side that read whether they are currently touching water. My plan is to wire the sensors into my Arduino and then calculate the percent full by the sensors that are touching water and the sensors that are not. Are there existing sensors with this functionality? (are they cost effective?) Is there an alternative solution? Thanks so much!
There are a few types of water sensors, with varying levels of applicability to the purpose stated in the question.
At the simplest level are electro-conductive sensors, essentially a pair of zig-zagging exposed conductive traces along a PCB, with a small gap between the traces. If the device is submerged in water, there is conduction between the traces, which would indicate presence of water. Of course, the traces must not be covered by solder mask.
From this site
Since the conduction of electricity through the water is dependent on electrolyte / ion content in the water, results vary depending on the water quality. Further, due to corrosion and oxide build-up, the longevity of these sensors is very limited.
If the water tank in question contains somewhat impure water, then a long strip, or several short strips, of such sensors made of standard PCB may serve the purpose. Since the "sensor" is inexpensive to make, regular replacement is an easy recommendation.
A variant on this theme is the use of microstrip antennas, essentially the same concept of PCB traces, but designed to be energized via a radio frequency signal. As the dielectric between the two conductors varies with humidity, moisture and of course submersion, the resultant change in antenna load can be used for detection. See this publication for additional information.
More sophisticated sensors use a stack of hygroscopic material, and a limit micro-switch, to detect water. The hygroscopic material expands in moisture / water, tripping the limit switch. Such sensors may falsely trigger in high humidity, such as in an enclosed water tank.
Even more advanced sensors exist for the type of function described, but they are typically for industrial use, and are very expensive, if at all sold in small numbers.
Although this is not the question asked, an alternative approach is to use an ultrasonic or infrared proximity sensor to sense the water level from above, and thereby determine how full a tank is.
Similarly, there is the classic float sensor, which consists of a floating ball attached to a lever, that acts upon a flex sensor or absolute rotation sensor, to determine the level of water.
These approaches may well be more reliable to implement, than the submersible sensor approach.
Suggestion: Research Rain Sensors for other options.
VDO sell water-tank sensors & gauges for boats, or you could possibly get away with using a standard resistive float sensor from a car fuel tank as long as you protect it from corrosion. These will give a varying resistance (typically 0-240 Ohms) in proportion (NOT always linear, note!) to the float position. You can bend/extend/shorten the arm to suit your tank.
Something like this: http://www.brit-car.co.uk/product.php?xProd=90015
Another option is a floating magnet (for example embedded in a ping pong ball) rigged up to the edge of the tank and a series of hall effect sensors (or reed switches) up the outside of the tank. You can detect the water level by reading the state of the reed switches.
Surprisingly I stumbled on the image of our water sensor (I'm the owner of TempGP). Just to add to comments about our sensor plate, their galvanization (transfer of ions from one side to another) to avoid that variable/ alternative current can be used there. Also in our V3.0-B version we planing to use an ultrasonic sensor to detect distance to the water source, this will allow corrosion resistance and the sensor can be adjusted to tank specs.