This project implements a network connected water level sensor, measuring the level in the sump pit of his house. It’s connected to the home network and reports the water level by broadcasting UDP packets so that any computer can receive it and take action, such as sending out an alert or storing statistics.
Before we go any further, let me just point out that the pressure sensor, MPX2010DP, used in this project exists in another version, MPX5010DP, that has an output voltage interval much better suited for this project. If only I had checked that I wouldn’t have needed to build any circuits or use any extra components at all.
The pressure sensor MPX2010DP measures the pressure difference between two inputs, from 0 to 10 kPa and outputs between 0 and 25 mV on it’s two output pins. (The MPX5010DP gives you between 0 and 4.7 V output, ideal for direct connection to the analog inputs on Arduino.) This means that we can use it to reliably measure the water level in a tank or pit, without being troubled by changes in air pressure The only thing we need to do is connect input 1 to a hose leading to the bottom of the pit and leave input 2 hanging in the air.
The MPX2010DP operates anywhere between 0 and 16 V and draws less than 10 mA, which means we can run it directly off the 5 V pin on the Arduino. (MPX5010DP operates between 4.7 V and 5.25 V with about the same current draw, so in that case it’s even more ideal) It’s also possible to run the amplifier circuit from the Arduino, if you decide to go down that road. All this also means that you can run a long cable (I used shielded 4-wire telephone cable, but any 3-wire cable should be fine) from your Arduino to your sump pit or water tank.
Circuits and PCBs