Sump Pump Water Level: the Hardware

Published

Introduction: Sump Pump Water Level: the Hardware

The second part of this tutorial about the software can be found here:

https://www.instructables.com/id/Sump-pump-water-level-The-software/

What you need:


* 2  X pieces of wood 4X6. 1/4'' and the other 1/2'' thick 
* 1 X 3 inches pipe. length varies depending of the deep of your pit.
* A couple of screw
* 1 X 1k resistor
* 1  X Raspberry pi
* 1X HC-SR04 ultrasonic sensor
* Wire





Step 1: The Sensor

The sensor mesure the time it took to an ultrasound to get back to it.

Step 2: Create the Base

First, cut a 3 inches hole in the thicker 4''X6'' piece of wood. Stick the pieces of wood together.

Step 3: Prepare the Base for the Sensor.

Drill two 3/4'' hole in the center of the 3'' hole. The distance between them is 1''. Add 3 screw to hold the pipe.

Step 4: Add the Sensor

Mount the sensor on 2 spacer to keep the sensor level. Stick the sensor to the spacer with hot glue.

Step 5:

Add 8 screw to hold the wired. Optional: add a plexyglass cover to protect your masterpiece.

Step 6: Connection

How to connect to the raspberry:

Pin 1 GND: connect to the ground of the rasp.
Pin 2 Echo to gpio 9
Pin 3 Trig to gpio 11. Add a 1k resistor
Pin 4 VCC to the 3.3V 

Note 1: According to the manual, the sensor used 5v. But it work perfectly at 3.3v.

Note 2: Beware, we see the back of the sensor in this pic, so the order of the pin are reverse.

 


Step 7: Add the Pipe

Add the pipe to the controller and thighten the 3 screw.

Step 8: The Code

First, you need to save the code on the rasp with the extension *.py. Then run the command python myfile.py


Code:


#!/usr/bin/python
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#|R|a|s|p|b|e|r|r|y|P|i|-|S|p|y|.|c|o|.|u|k|
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#
# ultrasonic_1.py
# Measure distance using an ultrasonic module
#
# Author : Matt Hawkins
# Date   : 09/01/2013

# Import required Python libraries
import time
import RPi.GPIO as GPIO

# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

# Define GPIO to use on Pi
GPIO_TRIGGER = 11
GPIO_ECHO = 9

# You need to change the variable "compensation" according to the distance from the edge of the pit to the sensor
compensation = -11

print "Ultrasonic Measurement"

# Set pins as output and input
GPIO.setup(GPIO_TRIGGER,GPIO.OUT)  # Trigger
GPIO.setup(GPIO_ECHO,GPIO.IN)      # Echo

# Set trigger to False (Low)
GPIO.output(GPIO_TRIGGER, False)

# Allow module to settle
time.sleep(0.5)

# Send 10us pulse to trigger
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
while GPIO.input(GPIO_ECHO)==0:
  start = time.time()

while GPIO.input(GPIO_ECHO)==1:
  stop = time.time()

# Calculate pulse length
elapsed = stop-start

# Distance pulse travelled in that time is time
# multiplied by the speed of sound (cm/s)
distance = elapsed * 34000

# That was the distance there and back so halve the value
distance = distance / 2
distance = distance + compensation

print "Distance : %.1f" % distance

# Reset GPIO settings
GPIO.cleanup()



Note: You need to change the variable "compensation" according to the distance from the edge of the pit to the sensor

Note 2: The distance are in cm.

Thank to Matt Hawkins for this code

Step 9: Final Result

Voila! All you have to do now is to fixed the sensor in your pit.

Step 10: Next Tutorial

In the next week, I will show you how to present the result of the sensor on a web page.

I'm not as good as I want to in english, so feel free to send me any correction in my text. 

Share

Recommendations

  • Oil Contest

    Oil Contest
  • Water Contest

    Water Contest
  • Clocks Contest

    Clocks Contest

14 Discussions

This has been intriguing project. I was able to use your idea in setting up my raspberry pi to track the water usage for my power garden. I have set up a WordPress page with MySQL on the RP to track the the current water level. The project page is at: smarttowergarden.com. I have set up a blog with hurdles that I had to overcome in order to make it work.

2 replies

Thank you for your comment. I'm currently getting the temperature from Gateway Airport. It's about 25 miles away from my home. I do have the temperature module but I have not installed it yet. Again thank you for your sump pump project. I need to look into the USB temperature sensor. I didn't know one existed. That would even work better.

thanks agin.

Larry E

you are great. I was Looking something similar. I will contact you for more aggressive version of this project. I will also pay you if we came to some solution of my problem.

I dnt know if you have a better way of doing it.
All I want to do is to monitor the level of the underground tank
And show the readings on my laptop.
Even if it's gonna be ordinary digital underground measuring
Tape. Am counting on you bro. I will be waiting for you reply.

I dnt know if you have a better way of doing it.
All I want to do is to monitor the level of the underground tank
And show the readings on my laptop.
Even if it's gonna be ordinary digital underground measuring
Tape. Am counting on you bro. I will be waiting for you reply.

Hello, nice work. I want to do a project that will measure an underground petrol tank and give me the readings on my laptop. Pls be my tutor for the project.. Aremsajos83@gmail.com. Thanks

2 replies

Do you have a specific question?

Rasp Pi connect to the sensor with 5 volt. Beware of the risk of spark.

I don't know if you have a better way if doing that.
All I want is to monitor the level of the underground tank
And show the readings on my system. It's gonna be a very profitable project if I can make it Done without any risk.

Hello, nice work. I want to do a project that will measure an underground petrol tank and give me the readings on my laptop. Pls be my tutor for the project.. Aremsajos83@gmail.com. Thanks

Hi, it is possible to make many sequential (4) measure and calculate the average to a better measurement?

1 reply

Hi Stephano,


Seem my first reply never appears. So it is:

What I do is the median instead of average. With average, if one data is really out of range, it will affect the average value. With the median, I'll take the middle value and if, for any reason, one the value is really out of range, it doesn't matter.

In the file sensor.py, at line 18, the loop read the distance 5 times, then sort the result and take the third value. I think more accurate this way.

for x in range(0, 5):

..

..

listvalue.append(mesurement)

listvalue.sort()

print listvalue[2]

The value[2] is the third value

How long can be cable between raspberry and ultrasonic sensor? Because for me would be best option to have only sensor in well and RPi in separate dry place. Thx.

1 reply

I use a 25 feet cable. For some reason, I have to power the sensor with the 5v pin. I guess it's because of the distance of the câble. It's running at home for a month now, scanning at every minute. I also add a line to the web page for auto refresh of the page at every minutes. I also add a led on the yellow and green wire. It blink when the sensor is running.