Detecting river levels

I have a bit of a query,

I have the idea of using an arduino connected upto somekind of sensor and gprs module to read the current water level of the river and send the information back to a database.

The question I have is how to read the water levels? Can a ultrasonic range finder work? as it would need to be atleast a couple of meters away from the surface due to differences floods etc.

Cheers

Can a ultrasonic range finder work?

I think so. Sparkfun carries a series of ultrasonic sensors that come in different beam width sensing patterns to optimize for different applications. I would think the narrowest pattern would be the best for your application. Probably work best from a bridge or roadway going over the river, pointing down to the water. Not sure how well these sensors take to the enviroment both weather and bugs/bees building nests in them.

http://www.maxbotix.com/uploads/LV-MaxSonar-EZ4-Datasheet.pdf

Lefty

That's where I got the idea from, would be mounted in a waterproof casing on the side of a bridge (though don't think that matches the indoor usage stated on the spec sheet)

If it's only a few pounds would prob be worth giving it a shot and find a more robust version for outdoor usage.

Cheers

Years ago I worked with an instrument that measured the level of a river or stream by lowering a wire with a weight on the end of it until it touched the water. I knew nothing about the electronics but I assume that it detected the change in conductivity in the wire when it touched the surface of the water. It sat 10 feet or more above the surface of the river which gave it a wide range and it was probably accurate to a fraction of an inch.

Thinking about it it wouldn't be that hard to replicate using a stepper motor. You would need a switch of some sort near the top to detect when the wire was fully retracted. When you were ready to take a measurement you would let the wire unspool until you detected the surface of the water. Knowing the total number of degrees the motor rotated would allow you to calculate the length of the wire and the distance from the instrument to the water's surface.

It is more complicated than an ultrasonic sensor but it might be more accurate, particularly if the water level varies significantly and you have to mount the instrument more than a couple of feet above the surface.

Depending on space needs, you can also have a float on the top of the water that pushes upwards onto a rod which can be raised by a motor. Set limit switch so you can raise to a guaranteed 'not in water' level.

The rod itself can be drilled through at preset intervals, and your sensor is an IR emitter/detector pair.

If IR doesn't bounce back, you have a hole. If it does, you have the rod.

Now slowly lower rod and count pulses. Measure current on your motor so that when all of a sudden you see the current spike, you know you have hit water. Count pulses and based on having fixed intervals, you should have a fairly accurate read of water level.

I have seen capacitive sensors mentioned where you have a tube that you place in the water and as the level rises the dielectric inside the tube changes, thereby changing the capacitance. Or something along those lines.

You could probably try to make something like this but you will have to build some signal conditioning circuitry into the sensor. Otherwise ultrasonic may be a good way to go.

Or you could even get a float from a car fuel tank and place it in the river and it should give you indication of the change in level, albeit with a limited range, which you could modify by changing the length of the float arm.

If you go with the ultrasonic sensor, sparkfun sells a indoor/outdoor maxsonar sensor that is weather resistant. Its a little more expensive $100 but should work for your application.

I'd look for anyone's/product's prior experience with bouncing sound off a water surface to measure water surface.

I'd be skeptical otherwise, more so as it'll be turbulent flow.

more so as it'll be turbulent flow

I don't see anyone else bringing this up, but it deserves a lot of attention.

Wind, passing boats, kids swimming in the river or skipping pebbles, earthquakes (if you live near a fault), and lots of other things will cause large and small waves.

My thought is that, if you mount a piece of PVC or ABS pipe to a sturdy support (like a dock piling) and extend it a few feet below the lowest expected level, it will "filter" most of the smaller waves. Then you could use a sonar sensor inside it. If there's traffic like big river barges, or ships, though, the perturbations might go deeper, and affect the level inside the pipe.

Does anybody know whether this works in the real world like it does as a thought experiment?

Ran

That is such a good thought that it turns out the idea already has a name. It's called a stilling well. It seems that a closed bottom end with a calibrated hole in the side of the tube does the best job. More details than you would ever want to know at http://www.usbr.gov/pmts/hydraulics_lab/pubs/wmm/chap06_07.html.