Detecting Small Water Leaks Across a Large Area
Water leak detectors are usually designed to detect water in one small location. This allows you to detect large emergency leaks (like the house-destroying kind). But I wanted to be able to detect smaller amounts of water- specifically, when my kid makes a big water mess when playing in the sink, which usually results in a smaller amount of water in several possible locations.
To accomplish this I figured out that copper tape strips could be attached to the leak detector leads and then detect small amounts of water across a very large area.
Concept
Most water leak sensors just have a pair of exposed metal leads. When the leads are shorted (such as from both being in contact with a pool of water) the sensor detects that electrical change and sends an alert.
The basic idea here is to connect two separate pieces of conductive tape to the lead ends, and tape them very close to each other along the area where you want to detect water. Then if any water lands anywhere between the two strips the sensor will detect it.
Hardware
Obviously you’ll need a water leak detector. There are a lot of options online, but I went with an Aquare Zigbee model that I connected to my Home Assistant server through a SONOFF USB dongle via Zigbee2MQTT running in a Docker container. But the same concept should work for any sensor and any communication process it supports.
You’ll also need:
- Thin copper foil tape (example)
- Soldering iron and solder
- Some small gauge wire (I recommend 20-24 AWG)
- (Optional) Flux
- (Optional) Some sort of wire connector (I used some JST SM connectors)
Planning
Figure out how you will connect the wire to the sensor leads. The sensors I bought use M2 or M3 screws as the leads, so it was very easy to back them out slightly, put the wire under them, and re-tighten. Other models may require soldering directly to the leads.
Measure the area where you want to detect water. Cut two strips of metal tape equal to that length.
Decide where the sensor itself needs to sit- usually close to one end of where the tape strips will be. Cut off two lengths of wire long enough to connect the sensor to the tape. It’s usually best to add at least a couple inches more than you think you need.
Assembly
Solder a wire to each of the metal tape strips. This can be done anywhere on the strip. If you have some separate flux, adding a very small drop of it to the metal tape will make this much easier. First get a blob of solder on the tape, then tin the end of the wire. Then re-melt the blob and attach the wire.
The other ends of the wires attach to the leads on your sensor:
Test that your sensor correctly triggers when you touch the two metal tape strips together.
Start removing the adhesive backing from one strip and apply it to the target surface. Do your best to keep it taught the entire time to keep it straight and to prevent it from kinking or sticking to itself.
Once one full strip is situated, repeat the process for the other one. Get it as close as possible to the first strip, but be absolutely sure they don’t touch. I separated mine by 2-3mm.
And that should be it! Spill a bit of water across the strips to verify that the sensor triggers correctly.
Other Considerations and Ideas
-
I noticed that after cleaning water off the floor, my sensor sometimes re-triggers when someone uses the sink even without water getting on the floor. I suspect my floor tile grout is slightly absorbent and that stepping on the grout changes the electrical properties of the moist grout enough for the sensor to detect it.
-
This obviously won’t work on conductive surfaces; you’ll need to apply a strip of non-conductive tape to a conductive surface, and then stick the metal tape to that tape.
-
I use Home Assistant to send a verbal alert through a smart speaker (plus push noticiations to my phone) when these sensors detect water so it can be cleaned up quickly to protect the wood cabinets from water damage.