Automatic Water Level Controller

About This Project

Hi all , are you looking to control your tank water level automatically here’s the post for you, how can water level be controlled automatically?

There are many ways by using a float sensor to determine the water level, or using probes to detect peak and low level in the tank.

How to measure water level without using probe or contacting with water?

Yeah there is a way just using a Ultrasonic sensor, this is very simple where the level of water is measured using ultrasonic sensor which gives the depth , by determining the tank depth we can set the maximum and minimum level

What’s Connected

Arduino UNO, HC-SR04 Ultrasonic sensor, Relay board, ULN2003

Triggers & Alerts

Give the distance according to your specification, I’ve used a small bucket where 25 is the minimum level to turn ON the motor and if the water level reaches a distance of 10cm or lesser than that the motor automatically stops.

Dashboard Screenshots

When the level of the Tank is Low,It will be monitored with the help of Cayenne App and it will be indicated as an Green Colour Gauge.

Photos of the Project

This project is a about a fully functional water level controller using Arduino and Cayenne. The cayenne App displays the level of water in the tank and switches the motor ON when the water level goes below a predetermined level. The circuit automatically switches the motor OFF when the tank is full. The circuit also monitors the level of water in the sump tank (source tank). If the level in side the sump tank is low, the motor will not be switched ON and this protects the motor from dry running. A beep sound is generated when the level in the sump tank is low or if there is any fault with the sensors.

Working of this project is very simple we have used Ultrasonic sensor module which sends the sound waves in the water tank and detects reflection of sound waves that is ECHO. First of all we needs to trigger the ultrasonic sensor module to transmit signal by using Arduino and then wait to receive ECHO. Arduino reads the time between triggering and received ECHO. We know that speed of sound is around 340 m/s. so we can calculate distance by using given formula:

Distance= (travel time/2) * speed of sound
Where speed of sound is approximately 340m per second.

By using this methods we gets distance from sensor to water surface. After it we need to calculate water level.

Now we need to calculate the total length of water tank. As we know the length of water tank then we can calculate the water level by subtracting resulting distance coming from ultrasonic from total length of tank. And we will get the water level distance. Now we can convert this water level in to the percent of water, and can display it on LCD. The working of the complete water level indicator project is shown in below block diagram.


Please code


thank very much

1 Like

Code please…

have u got the code. where is the code

I am making this same project but the HC SR04 is NOT waterproof and humidity settles onto it which causes improper reading.

I wanted a waterproof sensor and found out this

Ebay - Fully waterproof new sensor with small blind distance like HCSR04 (a bit expensive since it is new? but very much affordable)

It has 2 transducers instead of 1 so it has smaller minimum detection distance as compared to JSN SR04T.

Also its main board is not exposed like the JSN SR04T since it looks properly sealed and is therefore fully waterproof.