How To Build A Water Leak Detection System (2024)

by Vytas Sinkevicius

Damage from appliance water leaks (such as water heaters, dishwashers, fridges and washing machines) cause millions of dollars in insurance claims every year.

How To Build A Water Leak Detection System (1)

There are many different types of water leak detection systems – the most efficient ones react at the first sign of presence of moisture, trigger an audible alarm, and provide an email alert. Audible only alarm type units do not perform well if nobody is there to hear the alarm.

We have created a water leak detection system kit using the PI-SPI Series of products, all that needs to be added is a Raspberry Pi and a 5VDC power supply for the Raspberry Pi.

You will need the following items to build a basic water leak detection system:

Qty. 1 x PI-SPI-8AI-4TEMP-4VDC Analog Input I/O Module
Qty. 1 x PI-SPI-8KO Relay I/O Module
Qty. 1 x PI-SPI-CABLE-40x26-2 Ribbon Cable (Required to connect to the Raspberry Pi)
Qty. 1 x PI-SPI-CABLE-26x26-2 Ribbon Cable (Required to connect the two PI-SPI modules)
Qty. 1 x Raspberry Pi Series 3, 4 or 5
Qty. 1 x 5 VDC Power Supply for the Raspberry Pi
Qty. 1 x 24 VDC Power Supply for the PI-SPI Series Modules
Qty. 1 x Water Sense Cable

Optional items can include temperature sensors for the Hot and Cold water lines of a Hot Water Tank, Alarm Buzzers, and DIN Rail Mount Enclosures.

Kits are available here.

Theory of Operation:

For this demo application, the system will have the following:

- Four zones of water leak detection
- Each zone works with a water leak sense cable (1 x 6’ cable as part of the kit)
- Up to four temperature sensors (2 x 10K NTC thermistor with 36” leads as part of the kit)

The PI-SPI-8KO module has 6 channels of voltage output. For Zone 1 operation, we connect one lead of the water sense cable to the K3 terminal, and connect the other lead of the water sense cable to the PI-SPI-8AI analog input module channel 4 which has been configured as a voltage input (0 to 6.6 VDC).

Sequence of Operation:

1. The K3 output is turned ON providing a 3.3 VDC output for 50 mSeconds.
2. At the end of the pulse, the Analog Input Channel 4 is read.
3. The K3 output is turned off.
4. If the reading is less than 20 AD counts, there is no moisture present on the water sens cable
5. If the reading is greater than 600 AD counts, the water sense cable is conducting and moisture is present on the cable
6. The alarm state is set or reset depending on the AD reading.

Wiring Diagram:

(Zone 1 Example complete with Audible Alarm and Temperature Sensors):

How To Build A Water Leak Detection System (2)

Python Sample Code

The following code sample has been fully tested for all zones and sensor inputs. When a water leak is detected, an alert email is sent to the users email. The program runs once per second.

# pi-spi-h2o-demo.py
# Import libraries

import smtplib
import time

from time import sleep
from widgetlords.pi_spi import *
from widgetlords import *

# initialize modules

init()
inputs = Mod8AI()
relays = Mod8KO()

# Set up the email server and configure

user = 'your_email@gmail.com' # Typically your email account
password = 'Your password is here' # Your password for your email account
sent_from = user
send_to = ['to@gmail.com'] # Send the email to
subject = 'WATER LEAK ALARM'
smtp_server = 'smtp.gmail.com' # Your email provider server
smtp_port = 465 # Typically the port is 465

# Initialize email sent flag to prevent multiple emails

emails_sent = 0

# Define Relay Outputs

K1 = 0
K2 = 1
K3 = 2
K4 = 3
K5 = 4
K6 = 5
K7 = 6
K8 = 7

ON = 1
OFF = 0

# Water leak zones

Zone_Reading = [0,0,0,0]
Zone_Alarms = [0,0,0,0]
Zone_Status = ['OK','OK','OK','OK']

# Alarm threshold AD counts

Alarm_Threshold = 600

# Temperature Sensors

Temp_AD = [0,0,0,0]
Temp_Deg = [0,0,0,0]
Temp_Read = ['-','-','-','-']

# Email send function

def send_email(server,port,_user,_password,_from,_to,text):
try:
smtp_server = smtplib.SMTP_SSL(server, port)
smtp_server.ehlo()
smtp_server.login(_user, _password)
smtp_server.sendmail(_from, _to, text)
smtp_server.close()
#print ("Email sent successfully!")
except Exception as ex:
print ("Something went wrong….",ex)

# Read zone AD counts function
# Each zone relay is turned on for 50 mSec to apply voltage
# to one wire of the water sense cable
# The analog input channel reads the voltage and stores the AD Counts
# Dry condition will read less than 5 AD Counts
# Wet condition will read > 1000 AD counts

def zone_read(zone,relay):
relays.write_single(relay,ON)
sleep(.05)
Zone_Reading[zone] = inputs.read_single(zone+4)
relays.write_single(relay,OFF)

# Get the individual zone alarm conditions function
def get_zone_alarms(zone):
if Zone_Reading[zone] > Alarm_Threshold:
Zone_Alarms[zone] = 1
else:
Zone_Alarms[zone] = 0

while True:
# read all Zones
zone_read(0,K3)
zone_read(1,K4)
zone_read(2,K5)
zone_read(3,K6)

# Get zone alarms
alarms = 0

for i in range(4):
get_zone_alarms(i)
alarms = alarms + Zone_Alarms[i]

# Configure email body for Zone Alarms

for i in range(4):
if Zone_Alarms[i] != 0:
Zone_Status[i] = 'ALARM'
else:
Zone_Status[i] = 'OK'

# Read and Configure Temperature Sensor inputs of email body

for i in range(4):
Temp_AD[i] = inputs.read_single(i)
Temp_Deg[i] = steinhart_hart(10000, 3380, 4095, Temp_AD[i])

if Temp_AD[i] > 4050:
Temp_Read[i] = '-'
else:
Temp_Read[i] = ("%0.1f Deg C" % Temp_Deg[i])

# Temperature Sensor input 4 is used as a push button input
# to send e test email and test the audible
if Temp_AD[3] < 20:
Temp_Read[3] = 'Sending Test Email'

# Read time for the email body for a time stamp
seconds = time.time()
local_time = time.ctime(seconds)

# Prepare the body of the email
body = """\
Status: %s
Zone 1: %s
Zone 2: %s
Zone 3: %s
Zone 4: %s
Temp 1: %s
Temp 2: %s
Temp 3: %s
Temp 4: %s

""" % (local_time, Zone_Status[0], Zone_Status[1], Zone_Status[2], Zone_Status[3], Temp_Read[0], Temp_Read[1], Temp_Read[2], Temp_Read[3])

# Configure the complete email to be sent

email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(send_to), subject, body)

# Check for alarms and send email if required
# Temperature Sensor input 4 is used as a push button input
# to send e test email and test the audible

if alarms > 0 or Temp_AD[3] < 20:
# Turn on Audible relay K1
relays.write_single(K1,ON)
# send email only if flag has not been snet
if emails_sent != 1:
send_email(smtp_server, smtp_port, user,password, sent_from, send_to, email_text)

# Used for debug purposes
#print(body)

# set email flag to prevent multiple emails from one alarm
emails_sent = 1
else:
# if no alarm clear audible relay K1
relays.write_single(K1,OFF)
emails_sent = 0

sleep(1)

How To Build A Water Leak Detection System (2024)

FAQs

How do you make homemade leak detection solution? ›

It's as simple as it sounds — just mix water and dishwashing liquid and put that into a spray bottle. You can use laundry liquid if you don't have any dishwashing liquid but it won't bubble as easily. Dishwashing liquid is made to produce more bubbles which make this test easier.

How to install a water leak detection system? ›

How to Install a Water Leak Detection System
  1. Spec Check. Your pipes should be a half-inch to 1 inch wide, with a quarter-turn ball shutoff valve and 4½ inches of space around it. ...
  2. Secure the Shutoff. Clamp the shutoff unit onto the pipe so that the center fork fits on the valve. ...
  3. Place the Sensors.
Oct 24, 2021

What is the most reliable leak detection method and why? ›

Ultrasound testing is the most accurate method, utilizing high-frequency sound waves to identify cracks and other flaws in pipes. Infrared thermography uses infrared sensors to detect temperature differences that may indicate a leak.

What is the technique used in leak detection system? ›

Methods of detection include hydrostatic testing, tracer-gas leak testing, infrared, laser technology, and acoustic or sonar technologies. Some technologies are used only during initial pipeline installation and commissioning, while other technologies can be used for continuous monitoring during service.

What is the most basic but effective method of detecting leaks? ›

The most basic type of leak testing is the submersion or dunk test (also referred to as bubble testing), in which you pressurize the part, submerge it in water, then look for gas bubbles.

What kind of liquid can be used to detect leaks? ›

Leak Detection Methods. In general, most leak testing is performed on a pressurized system – either with actual process fluid or with a surrogate fluid like water, air, nitrogen, or helium.

What are the three types of leak detection? ›

In HVAC systems and commercial refrigeration, it plays a key role in preventing losses and maintaining quality. Common types of leak detection systems (LDS) include chemical, pressure, and acoustic methods.

What are the basics of leak detection? ›

As with almost every facet of vacuum systems, there is no single method which fulfils every situation and every criterion. This is certainly the case with leak detection, with four main methods being employed: the bubble test; pressure decay test; pressure rise test; and helium sniffer mode/helium vacuum mode tests.

What are the two most common leak detection tests? ›

Spray test and sniffing leak detection are the two most common leak detection tests that use the tracer gas helium or hydrogen. The spray test is the ideal test method for components under vacuum. This measurement principle has the highest sensitivity of all available methods.

Is there a tool to detect a water leak? ›

Listening discs and ground microphones are some of the most basic tools that can be used by a plumber to detect and pinpoint water leaks. Listening discs are pieces of equipment that help plumbers to locate leaks through drywall, cabinets and other furnishings.

How to trace a water leak? ›

7 Ways To Find Hidden Water Leaks In Your Home
  1. Water Meter Test. One way to find hidden water leaks is to conduct a water meter test. ...
  2. Water Pressure Test. ...
  3. Listen for Running Water. ...
  4. Check your Appliances for Leaks. ...
  5. Check Your Toilet for Leaks. ...
  6. Check Your Utility Bills. ...
  7. Water Drips and Wet Walls.
Feb 23, 2022

How to detect a small water leak? ›

To locate a leak, try:
  1. Looking for wet spots that could indicate a leak in the pipe between the meter and the home or the sprinkler system.
  2. Dropping a dye tablet in the toilet tank. Don't flush. ...
  3. Listening for the sound of running water coming from your toilet. If you hear running water, your toilet has a leak.

How to make soapy water to test for gas leaks? ›

You can prepare soapy water by mixing dish soap with water.

The solution can then be stored in a spray bottle or manually spread using a sponge.

What is the best thing to use to stop a leak? ›

For pinhole leaks or slightly larger, or if you have a leak at a fitting joint, plumbers putty is the simplest way to plug it and is widely available both online and in-store at DIY and home improvement stores. Generally speaking, it consists of two components that when mixed together form a strong waterproof seal.

What is the solution for leak detection? ›

Advanced Leak Detection Solution is a ready to use liquid designed to be applied to the surface of joints to detect leaks in oxygen and compressed gas systems. Advanced Leak Detection Solution is the only known concentrate developed specifically for leak testing lines, cylinders and tanks carrying pure oxygen.

Top Articles
FA guidance for grassroots football | Diamond Football
Der neue LG QNED85 zeigt im Fernseher-Test die Vorzüge von 120 Hertz
Devin Mansen Obituary
Craftsman M230 Lawn Mower Oil Change
360 Training Alcohol Final Exam Answers
Craigslist Mexico Cancun
Aita Autism
1Win - инновационное онлайн-казино и букмекерская контора
Everything You Need to Know About Holly by Stephen King
6th gen chevy camaro forumCamaro ZL1 Z28 SS LT Camaro forums, news, blog, reviews, wallpapers, pricing – Camaro5.com
Nioh 2: Divine Gear [Hands-on Experience]
Alexandria Van Starrenburg
Uc Santa Cruz Events
Moviesda3.Com
Espn Horse Racing Results
Idaho Harvest Statistics
Razor Edge Gotti Pitbull Price
Xomissmandi
Hanger Clinic/Billpay
Schedule 360 Albertsons
10 Fun Things to Do in Elk Grove, CA | Explore Elk Grove
FDA Approves Arcutis’ ZORYVE® (roflumilast) Topical Foam, 0.3% for the Treatment of Seborrheic Dermatitis in Individuals Aged 9 Years and Older - Arcutis Biotherapeutics
Tyler Sis University City
EASYfelt Plafondeiland
Optum Urgent Care - Nutley Photos
Hampton University Ministers Conference Registration
Webworx Call Management
Will there be a The Tower season 4? Latest news and speculation
Happy Shuttle Cancun Review
Bi State Schedule
Taktube Irani
Ilabs Ucsf
After Transmigrating, The Fat Wife Made A Comeback! Chapter 2209 – Chapter 2209: Love at First Sight - Novel Cool
Emily Katherine Correro
Selfservice Bright Lending
Unlock The Secrets Of "Skip The Game" Greensboro North Carolina
Hermann Memorial Urgent Care Near Me
Afspraak inzien
The Blackening Showtimes Near Regal Edwards Santa Maria & Rpx
“Los nuevos desafíos socioculturales” Identidad, Educación, Mujeres Científicas, Política y Sustentabilidad
About My Father Showtimes Near Amc Rockford 16
Emily Tosta Butt
Nu Carnival Scenes
Ferhnvi
Boyfriends Extra Chapter 6
R Detroit Lions
Arnold Swansinger Family
How to Get a Check Stub From Money Network
How To Find Reliable Health Information Online
683 Job Calls
E. 81 St. Deli Menu
Latest Posts
Article information

Author: Velia Krajcik

Last Updated:

Views: 5704

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.