Reposted from Don Blair's earlier note.
This circuit modifies the 555 Blinky LED circuit to blink an LED at a frequency that is inversely proportional to the conductivity of a solution. We built a bunch of them during the 7/12/14 Water Quality Workshop @ MIT Media Lab and tested them out.
Pretty cool stuff!
How to build it
Salt solution: We used 100 ml water in five different solutions
1 - No salt (distilled water)
2 - 100 mg (low salt)
3 - 425 mg (medium salt)
4 - 1100 mg (high salt) 6 - 5000 mg (brine - similar to salt water)
Water bottle setup: Cut the top off and fill your water bottle to 100 ml
Build your sensor Two screws in the cap, roughly 1 cm apart and attached to alligator clips -- this is your sensor and goes in place of R2
Pictures of built sensors
Output to Arduino
Here's some Arduino code to monitor the output (more explanation tomorrow), as well as measure the temperature (an important variable for conductivity):
A preliminary test showed a nice, solid, repeatable relationship between conductivity and the average 555 timer pulse duration (y axis is average pulse duration in seconds, x axis is index of data points, sampled every few seconds -- the probe was initially placed in a higher conductivity solution, then then briefly in a lower conductivity for three separate stretches (indicated by the three higher plateaus)) ...
Tone generator dance machine version - swap output to an audio cable - add a potentiometer to drop the voltage to a safe range for your computer - limit max voltage 0.5V (without no pot the output is 2.8V) - feed it into a tone generator -- make some tunes!
Capacitor swap analog synth version - swap 10uf cap for .01uf cap - add a piezo speaker in parallel with your LED - instead of clicks, you hear distinguishable tones! - one whole step between salinity #4 and #6 -- noticeable difference!
(note: with the smaller capacitor the LED will not blink for either circuit -- it's blinking too fast and looks like it's permanently on)
See also: open water wiki