This project attempts to solve a problem. Here is a picture of the project with the
cover off:
Figure 1: System view of the Internet Enabled Sump Pump Monitor
About three years ago, I moved into a new house with an
unfinished basement. The basement has
flooded many times due to a sticky tar substance that comes in from the
waterproofing of the foundation. The
tar was smeared on the outside of the foundation during construction.
Figure 2: Parts of the sump pump monitor
Anyway, the tar comes into the sump well and either plugs up
the sump pump or causes the float switch for the sump pump to lock on or
off. The tar/oil has also locked open
several check valves on the output.
This is a quick video I made of the system installed on the sump pump:
I have tried several things to keep the tar away from the
sump pump. One item I tried was putting
window screen around the edge of the sump well. Some of the tar did stick on the screen, but when there was a
heavy rain, the window screen pushed in and stopped the float on the sump pump
from activating.
Figure 3: The tar can be seen on top of the water and
on the window screen
I have two possible nicknames for my sump pump (sump well):
1) Exxon Valdez
2) Deepwater Horizon
Paper towels are occasionally used to clean up some of the
sheen on the top. The oil sticks to
absolutely everything. WD-40 works well
for removing the oil if it gets on my skin.
This project monitors the sump pump without effecting its
operation. There are two things
monitored:
1) Is the water level too high in the sump
well? If so, send an alert email and activate an audio alarm.
2) Has the sump pump been on too long? If so,
send an alert email and activate
an audio alarm.
I didn't want the project to control the sump pump in case
the MCU locks up or doesn't not behave correctly. "Do no harm" is the motto I'm going by.
Since this was a project I wanted to get done somewhat
quickly, I decided to use an off the shelf board. I choose the Seeeduino Ethernet board, which is an arduino with
an Ethernet port. This is my first
arduino board and the first time I'm using the arduino development system. It's ok, but I much prefer AVR-GCC and AVR
studio. Although, the Ethernet library
in the arduino was nice.
Figure 4: Internet
page for the sump pump monitor
Shown above is the web page. There was one activation of the sump pump 1 minute ago and one activation
about 49 minutes ago. Minute data that
is older than 8 hours drops off the table.
An IO gear Ethernet to wireless 802.11 adapter was used to
complete the internet connection. An
LCD from 4D systems was used to display user information. An ip address in browser can also be used to
look up some of the status information.
Figure 5: Water level float
If the water level gets too high, the float above will
hopefully activate before the oil stops it from moving. The float came from ebay. It seems to have a magnet on the float and a
hall effect sensor in the main body. It
is shown above in the activated
position.
There are some commercial sump pump monitors available. But, they tend to be pricey.
Plus, I'm not really sure how the tar would effect the
operation of either of these units.
Figure 6: The current
sensor for the sump pump
The above image shows the neon transformer in it's
housing. The transformer was assembled
around the "hot" wire of the electrical cord running to the sump
pump. This induces a small current
(voltage) in the neon transformer that then goes out the black and white wires
to the main arduino board.
Figure 7: The LCD main screen
The LCD is read the following way:
Line
1: Title
Line 2: This is the IP address of the board on my
locale network
Line
3: The Arduino is using 103 bytes of
ram
Line
4: The water float is not activated
Line
5: The sump pump is not on
Line 6 and
7: The sump has been turned on 51 times
Line
8: Counting down to turn off the LCD
Line
9: The number of seconds the sump pump
has been on
Line
10: If the user presses the
"EEPROM reset" button for 15 seconds, 51 -> 0
There were a couple of problems I had during the software
development phase. First, I could not
get the Ethernet to work when I was running the ATMEGA328 at 16MHz. The Ethernet would work when I had the
divide by 8 fuse on. The source of the
problem was the AVR ISP MKII programming header. It was loading down the SPI line going to the Ethernet chip on
the Seeeduino Ethernet board. Second,
there seems to be no way to turn off the 4D systems LCD through software. So, I ended up using a P-channel MOSFET to
cut power to the LCD. This acts to
prevent burn in on the LCD.
The schematic is shown below.
Figure 8: Schematic of the sump pump monitor