Cover image
project image

GSM SMS based water Pumo Controller for Irrigation

Raipur Engineering Electronics Solutions

9878346212

Verified

Price : $ 1

View : 63      Download : 0

Product Discription

07-August-2018

ABSTRACT

This project aims in providing a user friendly, reliable and automated water pumping system for illiterate. Here the automation process is done through the wireless GSM technology and the end user need not require any knowledge about the operation of GSM mobile. In this project two microcontroller are used one is dedicated at the pump and other is at the end user and two GSM modem are used for exchanging the commands. The GSM modem present at the user end is interfaced with a few control buttons via microcontroller, each with different functionality. Whenever a control button is pressed it is then identified by the microcontroller and generates command w.r.t . the button pressed and forward the same to the water pump and the modem at the pump receives the command and feeds the same to the microcontroller and the microcontroller perform the required operation. The design of this system is very sensitive and should be handled with utmost care because the microcontroller is a 5 volt device and is employed to monitor operation of the whole system.

 

CODING for 8051:

#include

#include"serial.h"

#include"LCD_header.h"

#include

 

sbit ds1=P1^2;

sbit sn1=P2^0;

sbit m1 =P2^1;                                                                                                                         

unsigned char received_char[40],sat,y,x,msg[40],msg_pos,tmp;

unsigned char time,rectime,first;

 

void Delay2()                                                                                                                          

{

            int k,l;

            for(k=0;k<=9000;k++)

            {

             for(l=0;l<=10;l++);

            }

}

void read(void)

x=0;                                                                                                                                                                                                                                                                                  

// WriteData('Y');

            do

            {          

            received_char [x] = Rx_Character();

//          WriteData(received_char [x]);

            }

            while(received_char [x++]!=0x0a);

x=0;

}

void intt () interrupt 4

{

EA=0;sat=1;

read();            

read();

   WriteData('Q');         

            if(received_char [4]=='I')

                        {

                        msg_pos= received_char [12]-48;

                        for(y=1;y

                                    {

                                    Send_String("AT+CMGD=");

                                    Send_Character(y+48);

                                    Send_Character(0x0D);

                                    Send_Character(0x0A);  Rx_Character();Rx_Character(); Rx_Character();Rx_Character();

                                    }

                                    _nop_(); _nop_();_nop_();

                                    sat=0;

                                    EA=1;

                                    Send_String("AT+CMGR=");

                                    Send_Character(msg_pos+48);

                                    Send_Character(0x0D);

                                    Send_Character(0x0A);

                        }

            else

                        {

                        read();            

                        for(x=0;x<40;x++){msg[x]=received_char [x];}                         

                        read();            

                        read();                          

                        EA=1;

                        }

}                      

void main(void)

{

unsigned char tmpc,tmpc2;

sat=0;

Serial_Init();

Init_LCD();

P1=0;

  received_char [0]=0;

  Send_String("ATE0");

  Send_Character(0x0D);

  Send_Character(0x0A);

  read();

  read();

  Send_String("AT+CMGF=1");

  Send_Character(0x0D);

  Send_Character(0x0A);read();read();

 

  for(tmp<0;tmp<9;tmp++)

  {

  Send_String("AT+CMGD=");

  Send_Character(tmp+48);

  Send_Character(0x0D);

  Send_Character(0x0A);read();read();

  }

  x=0;

 WriteData('O');WriteData('K');

 

  EA=1;

  ES=1;

  WriteCommand(0x01);

            PrintLCD("PUMP:-ideal");

                        ds1=1;

            while(1)

            { 

            WriteCommand(0x01);

            PrintLCD("PUMP:-ideal");

 

            while(sat==0);

            WriteCommand(0x01);

            PrintLCD("time left=");

                         m1=1;

                        rectime=0;

                        rectime+=((msg[8]-48)*10);

                        rectime+=((msg[9]-48));

                                    WriteCommand(0x8d);

                                    WriteData(msg[8]);

                                    WriteData(msg[9]);

                       

                        first=1;

                         for(time=rectime;time>0;time--)        

                         {           

                         WriteCommand(0x01);

                         PrintLCD("time left=");

                         m1=0;

                         tmpc=time;                

                        if(first==1)

                                    {

                                    first=0;

                                    EA=0;

                                 Send_String("at+cmgs=\"8962471551\"");Send_Character(0x0d);Send_Character(0x0a);

                                    Send_String("PUMP ON");                  Send_Character(0x1a);read();read();read();read();

                                    }

                        if(time==1)

                                    {

                                    EA=0;

                                 Send_String("at+cmgs=\"8962471551\"");Send_Character(0x0d);Send_Character(0x0a);

                                    Send_String("PUMP OFF");                Send_Character(0x1a);read();read();read();read();

                                    }

                        if(sn1)

                                    {

                                    EA=0;

                                 Send_String("at+cmgs=\"8962471551\"");Send_Character(0x0d);Send_Character(0x0a);

                                    Send_String("PUMP OFF at ");                      

 

                                    tmpc2=tmpc/10;

                                    Send_Character((tmpc2%10+48));tmpc=tmpc/10;

                                    Send_Character((tmpc%10+48));tmpc=tmpc/10;

                                    Send_String("sec");

                                    Send_Character(0x1a);read();read();read();read();

                                    }

                                    while(sn1)

                                    {

                                    Delay2();

                                    }          

                                    WriteCommand(0x8c);

                                    WriteData(48+(tmpc%10));     tmpc=tmpc/10;

                                    WriteCommand(0x8b);

                                    WriteData(48+(tmpc%10));     tmpc=tmpc/10;

                        Delay2();

                        }          

                          m1=1;

            sat=0;

            }

}

 

CONCLUSION

The project “GSM BASED AUTOMATIC IRRIGATION SYSTEM” has been successfully designed and tested.

It has been developed by integrating features of all the hardware components used. Presence of every module has been reasoned out and placed carefully thus contributing to the best working of the unit. Thus monitoring the functioning of the motor automatically using GSM  technology got designed with the specific parameters.

Secondly, using highly advanced IC’s and with the help of growing technology the project has been successfully implemented.

This is a very useful technique to control the motor functioning.

• By using Microcontroller , we Controlled the on off action of the motor.

 • It is mainly useful in the areas where the power fluctuations are high.

Project Sample Image

Other Detail

Software Requirement :   DIP TRACE, KEILS SOFTWARE

Hardware Requirement :   IC Base (40 pin) IC Base (16 pin) Battery (9v) Battery clamp Ferric Chloride Soldering Wire Connecting wires Soldering Paste 25 Pins D-type Connectors LED for indication Transformer 12v 750mA Gsm module


Application :  


Project Attachement

Doc Complete Document in MS Word
Source Code Complete Circuit Diagram files