1-Wire Water Level Measurement Sensor
Measuring Water Depth Inexpensively
Copyright 2004, Chris Nafis
There are situations in home automation applications where you would like to measure the level of
some body of water (e.g. pool, pond). The
makes it easy to interface sensors to a PC or
simple controller. Some
use a string of capacitors and a timer to measure water depth. I decided to use a simple optical approach.
The idea is very simple. A pin-pong ball floats on top of the water in the pipe.
An infrared triangulation sensor outputs a non-linear voltage corresponding to the distance to the ping-pong
The prototype system can measure level changes of up to 24cm with a resolution of around 1cm.
This range / resolution can be changed by using different infrared sensors.
The sensor is calibrated by taking voltage measurements at number of different water levels. A polynomial is
then calculated to fit the data.
A lookup table created from the polynomial can be stored in the DS2438 40 Byte nonvolatile memory.
This makes the water level sensors easily replaceable. Storing the voltage multipled by 100 as a single
byte allows a 40cm range to be stored. For the prototype the values are:
d2 c4 b8 ad a4 9c 94 8d 87 80 7a 74 6e 67 61 5b 54 4e 48 43 3e 3a 37 35 34 00
The Link 1-wire RS-232 adapter is used to communicate with the sensor.
TCL routines are used to process the data. TCL for Windows is available from
RRDtool is used to generate graphs.
This project is for experimental use only.
The user assumes all responsibilities for assembly, installation, and use.
This circuit is provided without warranty and the author makes no claim that
this device will work in any particular application.
Do not use in applications where failure or incorrect operation could jeopardize
someone's safety. This schematic is provided for noncommercial use only.