Since the building of our house, we had a lot of water in the foundation of the house, sometimes about 40-50 m3 of water. So i've made a system under the house that lead the water to a sump with a submersible pump. The pump was needed because the sewerage level was higher then the level of the water in the foundation. At a certain level the sump is emptied by pumping the water automatically to the sewerage. The submersible pump has a floating switch and works autonomous. I was curious how it was working or better; is it working? Seems that he was doing his work, because there was no longer water in the foundation.... but to verify, i had to open a hatch. Lot of stupid work. So years ago i build a system with "conventional" components. The system counted the times of the operation of the pump. Even a time-out was present when the pump was working longer then 3 minutes; someting must be wrong with the pump. From the number of operations it was possible to see if the pump is working frequently or -maybe- is out of order...?


The old stuff and the new submersible pump control.

Old well pump         New well pump  


The new control is build with an Arduino MEGA 2560, a Hall element for measuring the current of the well pump and a APC220 set for the communication with the PC. The APC220 is used because of the distance between the control and the PC. The distance is more than 20m and not ideal for Bleutooth. RF is better and an APC220 set is working perfect. When the well pump is active, this action is processed by the Arduino board. In most cases the pump operates for 45 sec to pump all the water from the sump to the sewerage. For reporting and get ride of possible disturbancies, the indication of the pump must be present for at least 5 seconds. When the pump is active for more then 10 minutes, the pump is blocked (by a relay) and must be reset to operate again (reset button or via the supervisory and control standard Visual Studio application). What a pleasure working with the standard Visual Studio application! Communication ready to roll, masking, forcing and trending of the signals is ideal and gives a lot of efficiency during building and debugging the application.

Click here for the UserConfiguration and here for the UserFiniteStateMachine. Remark: UserConfiguration and UserFiniteStateMachine are the user parts of the Standard Finite State machine.   


Below a picture of the standard debug application for this application.

well pump


Plotter example:




The result (what counts...), no water....