IoT Project: Wireless Sump Pump Monitor

Do you worry about your basement flooding? You can build a microcontroller-based, three-unit wireless system can monitor the water level in your sump pit. The Pump-Eye is a three-unit water level monitoring system built around a Freescale Semiconductor MC9S08GT60 and MC9S12NE64 microcontrollers.

1—A hose connects the Pump-Eye sensor unit to a copper pipe. The pipe gets fastened to the side of the sump pit.

A hose connects the Pump-Eye sensor unit to a copper pipe. The pipe gets fastened to the side of the sump pit.

The sensor unit monitors the water level in a sump pump pit, the sump pump’s AC power, and the sensor unit’s backup battery. The base unit receives status information from the sensor unit via RF. The sensor and base units use MC9S08GT60 microcontrollers; they communicate with each other via 2.4-GHz transceivers based on an MC13192 SARD board. The Ethernet link creates and sends timestamp and log messages to a host when the pump runs. The system sends a warning e-mail when the water level is high or there’s a power failure. An alarm sounds when the water level exceeds the normal maximum height by 10%.

In “Wireless Sump Pump Monitoring System”  (Circuit Cellar 189), David Kanceruk writes:

The Pump-Eye is a flexible system comprised of three electronic units: a sensor unit, a base unit, and an Ethernet unit. Let’s take a look at each unit.

Figure 1—The base and Ethernet units are optional. There are five ways to set up the Pump-Eye system without having to make any software changes.

Click to enlarge. The base and Ethernet units are optional. There are five ways to set up the Pump-Eye system without having to make any software changes.

The sensor unit monitors the sump pit’s water level (see Photo 1). Data is displayed on a 10-segment LED bar graph so you don’t have to remove the sump pit’s lid to determine the water level. An alarm sounds when the water level exceeds the height you program into the system. A switch enables you to cancel the alarm at any time. LEDs illuminate when the AC power is off and when the sensor unit’s 9-V backup battery needs to be replaced.

The base unit features the same indicators as the sensor unit. It sounds the same alarm signal as the sensor unit. I chose the SOS Morse code sound (an old sound that’s recognizable to some of us) because it’s notably different than the sounds generated by my appliances. Canceling the alarm on the base unit cancels the alarm on the sensor unit and vice versa. Because the units are connected wire- lessly, I can place the base unit anywhere in my house. Therefore, I don’t have to go to my basement to read the sensor unit’s front panel.

The Ethernet unit can connect to either the sensor unit or the base unit via an RS-232 connection. I can place the Ethernet unit in the most convenient location for connecting to an uninterruptible power supply (UPS) and network. The Ethernet unit receives commands from the unit to which it’s attached. It then sends syslog messages to a syslog server so that pump cycles can be time stamped and counted. A record is kept of the pump’s run times. The Ethernet unit can also send me an e-mail or text message regarding conditions that require immediate attention (e.g., high water levels and a loss of AC power).

The sensor and base units feature Freescale MC9S08GT60 microcontrollers. They communicate with each other via 2.4-GHz ZigBee transceivers based on a Freescale MC13192 SARD board using IEEE 802.15.4 MAC soft- ware. The sensor unit monitors the sump pump’s AC power and its 9-V back-up battery.

The front panel electronics on the two units are similar, but there are a few differences. The sensor unit is larger. It also has an extra connector that’s used for passing signals to the rear panel’s electronics for the sensors. Because the base unit simply acts as a remote display to show what’s happening on the sensor unit, it doesn’t need sensing electronics on the rear panel.

When you cover the top of a straw with your finger and place it in a glass of water, the air in the straw becomes pressurized. The amount of pressure depends on the height of the water in the straw, and this depends on factors such as ambient air pressure, the mass density of the water, gravity, and the height of the water outside the straw: P = Pa + rg∆h. In this formula, P is the pressure, Pa is the ambient pressure, r is the mass density of fluid, g is 9.8066 m/s2, and h is the height of fluid.

You can nullify the effect of a change in ambient pressure if you use a gauge pressure sensor to measure pressure relative to ambient pressure. The formula then becomes P = rg∆h. You can assume that the mass density of water and gravity are constants, so the pressure will be proportional to a change in the water’s height. The sensor unit measures this pressure with a Freescale MPXM2010GS temperature-compensated gauge pressure sensor. The pressure is then converted to a percentage of normal water levels observed in the sump pit.

I tried placing a hose in the sump pit to sense the water level, but I quickly discovered that it wasn’t too reliable. This was probably because of the surface tension of the water clinging to the inside of the thin hose (5/64 inches in diameter). Therefore, I decided to use a 0.5 inches in diameter copper pipe as a sensor interface. The ratio of the area affected by surface tension to the total area is less significant with the larger diameter. I bought a length 0.125 inches in diameter brass pipe to use as a nipple for the hose that connects the MPXM2010GS to the cop- per pipe. I soldered the brass pipe to a standard 0.5 inch copper cap in which I had drilled a hole. The cap is soldered to the top of the copper pipe.

The copper pipe solved the problem of holding the open end of the hose at a fixed height, and it also alleviated my concerns about dirt clogging the thin hose. A plastic clamp screwed to the side of the plastic sump pit holds the pipe in place. I had originally placed the pipe to the bottom of the sump pit, but I found a negative pressure developing in it after numerous pump cycles. I concluded that this was the result of scavenging around the bottom of the pipe because of water currents caused by the pump. Keeping the end of the pipe at the height of the low water level pre- vented this from happening.

Read the full article.