PROBLEM STATEMENT:

Need of this project is to avoid wastage of water.Because sometimes people forget to off the motor when tank is full,because of that water get wasted.To avoid this problem this project came into picture.By using this water level indicator system we can monitor water level and consumption of water.

OBJECTIVE:

Water level indicator with monitoring will develop considering fulfillment of following objective:

  • kitchen system with actuator,level indicator for UV water purifier.
  • Ladies hostel water tank with actuator ,water level indicator,monitoring using pump.
  • To log data of water consumption in ladies hostel.
  • To get alarm using GSM module whenever tank is full.

INTRODUCTION:

In this Arduino based automatic water level indicator and controller project we are going to measure the water level by using ultrasonic sensors. Basic principal of ultrasonic distance measurement is based on ECHO. When sound waves are transmitted in environment then they return back to the origin as ECHO after striking on any obstacle.

So we have to only calculate its travelling time of both sounds means outgoing time and returning time to origin after striking on any obstacle. And after some calculation we can get a result that is the distance. This concept is used in our water controller project where the water motor pump is automatically turned on when water level in the tank becomes low.

COMPONENT REQUIRED:

  • Arduino Uno: Arduino Uno is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs .Operating voltage is 5V.
Image result for arduino uno
Arduino Uno
  • Ultrasonic sensor module:The ultrasonic sensor uses sonar to determine the distance to an object. Here’s what happens:
  • 1.The transmitter (trig pin) sends a signal: a high-frequency sound.
  • 2.When the signal finds an object, it is reflected and…
  • 3… the transmitter (echo pin) receives it.
Ultrasonic sensor module with working
  • 16X2 LCD :
  • The operating voltage of this LCD is 4.7V-5.3V
  • It includes two rows where each row can produce 16-characters.
  • The utilization of current is 1mA with no backlight
  • Every character can be built with a 5×8 pixel box
  • The alphanumeric LCDs alphabets & numbers
lcd-16x2-pin-diagram
LCD Display
  • 5 volt relay: Relay has three high voltage terminals (NC, C, and NO) which connect to the device you want to control. The other side has three low voltage pins (Ground, Vcc, and Signal) which connect to the Arduino.
5V Relay Pinout
5 Volt Relay Module
  • Connecting Wires:Wires are used for connecting the components.
  • Enclosure: Enclosure is required to provide safety for the components.

COSTING OF COMPONENT:

All components are purchased from Trio Radio and Electronics, Pune

ComponentsPrice
Arduino Uno450
Ultrasonic Sensor 100
LCD display 120
I2C module 70
Relay module 70
Battery220

BLOCK DIAGRAM:

Water Level Indicator and Controller Block Diagram

WORKING:

Working of this project is very simple I 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 I need 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 get 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.

Assembly of components

CODING:

#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); 
#define trigger 10
#define echo 11
#define motor 8
#define buzzer 12 
//LiquidCrystal lcd(7,6,5,4,3,2);
const int numRows = 2;
const int numCols = 16; 
float time=0,distance=0;
int temp=0; 
void setup()
{
   lcd.init();
 lcd.backlight();
 lcd.begin(16,2);
 lcd.begin(numCols, numRows);
 pinMode(trigger,OUTPUT);
 pinMode(echo,INPUT);
 pinMode(motor, OUTPUT);
 pinMode(buzzer, OUTPUT);
 lcd.print("  Water Level ");
 lcd.setCursor(0,1);
 lcd.print("   Indicator  ");
 delay(2000);
}
void loop()
{
 lcd.clear();
 digitalWrite(trigger,LOW);
 delayMicroseconds(2);
 digitalWrite(trigger,HIGH);
 delayMicroseconds(10);
 digitalWrite(trigger,LOW);
 delayMicroseconds(2);
 time=pulseIn(echo,HIGH);
 distance=time*340/20000;
 lcd.clear();
 lcd.print("Water Space In  ");
 lcd.setCursor(0,1);
 lcd.print("Tank is: ");
 lcd.print(distance);
 lcd.print("Cm");
 delay(2000);
 if(distance<12 && temp==0)
 {
     digitalWrite(motor, LOW);
     digitalWrite(buzzer, HIGH);
     lcd.clear();
     lcd.print("Water Tank Full ");
     lcd.setCursor(0,1);
     lcd.print("Motor Turned OFF");
     delay(2000);
     digitalWrite(buzzer, LOW);
     delay(3000);
     temp=1;
 }
  else if(distance<12 && temp==1)
 {
     digitalWrite(motor, LOW);
     lcd.clear();
     lcd.print("Water Tank Full ");
     lcd.setCursor(0,1);
     lcd.print("Motor Turned OFF");
     delay(5000);
 }
 else if(distance>30)
 {
   digitalWrite(motor, HIGH);
   lcd.clear();
   lcd.print("LOW Water Level");
   lcd.setCursor(0,1);
   lcd.print("Motor Turned ON");
   delay(5000);
   temp=0;
 }
}

ADVANTAGES:

  • Power saver
  • Save money by using less electricity and water
  • Sends an alert to let you know water is too high or too low
  • Automatically adjusts water levels

APPLICATIONS:

  • Can be used in factories, commercial complexes, apartments, home.
  • Fuel tank level gauging.
  • Automatically turn ON/OFF pumps .
  • Irrigation control .