We have 2 basements and 3 sumps (a groundwater sump in each basement plus a foul sump in one of the basements).
Naturally I wanted to shun the idea of a costly "high level pump alarm" system, which is basically a box you can buy for £120 that you put on the wall, with a remote float switch and a buzzer. This would be a simple alarm sounder, no interaction with the outside world such as my Node-RED automation hub.
Also, where's the fun with a float switch? It gives you no insight. For example, a level sensor can send data back regularly, so you know it's always working. It can show you when water came into the sump, and it can show you the pumps doing their job. How long they take to empty a certain amount of water. It can show you how reliable the pump floats are, and what their tolerances are. It can show you that the neighbour left their sprinkler system on, because the sump pump ran even though there was no rain! etc. A high level water float never tells you anything, unless there was a catastrophic problem. And even then, it's a binary notification.
I have already bread-boarded and coded the project using an ultrasonic distance sensor. Here's what it does:
- takes a reading in mm from the sumps, every 100ms and displays this on a 16x2 LCD
- you send a JSON "calibration" message over MQTT to the Arduino, with values for max level, min level, and alarm trigger level (i.e. remote calibration)
- every 5 seconds, send the actual readings (in mm and %) by MQTT back to my server
- if we have received a calibration, change the onboard display to show % full, instead of mm distance
- sound alarm when the level rises above the trigger level set remotely. Also send an alarm status back to the server
On Node-RED I also have gauges and graphs on the dashboard, showing current levels and history. Also there's the ability in Node-RED to arm / disarm the alarm (for testing).
This is great, but I haven't actually tested it in the real world yet, as I haven't been down to the basement to install the sensor!
I'm using the cheap HC-SR04 ultrasonic distance sensor. I will let you know how I get on, but I envisage a great difficulty. It will be very difficult to mount the sensor to the sump lid to ensure we always get a reflection from the water surface, rather than the pumps or plumbing.
And once I place the lid on the sump tank, I'll never really know if the sensor is pointing at the water surface, unless I fill it up with water, which I'd like to avoid doing as it would also potentially flood the basement!
It may be possible to mount the sensor NOT on the lid, but in the side lip of the tank. Still, it will be difficult to point the sensor towards a specific place where I know it will "see" the water level, and not the other objects.
Is there such a thing as a laser pointer sensor? Something that emits light, to assist me in choosing the location? (Like a laser measure does?)