#include <LiquidCrystal.
h>
#include <stdio.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
LiquidCrystal lcd(6, 7, 5, 4, 3, 2);
int lvl1 = A0;
int lvl2 = A1;
int m1a = 10;
int m1b = 11;
int buzzer = 13;
int red = A4;
int green = A5;
unsigned char rcv,count,gchr='x',gchr1='x',robos='s';
char rcvmsg[10],pastnumber[11];
int sti=0;
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
void okcheck1()
unsigned char rcr;
do{
rcr = Serial.read();
}while(rcr != 'K');
}
void okcheck()
unsigned char rcr;
do{
rcr = mySerial.read();
}while(rcr != 'K');
void beep()
digitalWrite(buzzer,LOW);delay(1000);delay(1000);digitalWrite(buzzer,HIGH);
void setup()
Serial.begin(9600);serialEvent();
mySerial.begin(9600);
pinMode(lvl1, INPUT);pinMode(lvl2, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(m1a, OUTPUT);pinMode(m1b, OUTPUT);
pinMode(red, OUTPUT);pinMode(green, OUTPUT);
digitalWrite(buzzer, HIGH);
digitalWrite(m1a, LOW);digitalWrite(m1b, LOW);
digitalWrite(red, HIGH);digitalWrite(green, HIGH);
lcd.begin(16, 2);lcd.cursor();
lcd.print("Dam Level Using");
lcd.setCursor(0,1);
lcd.print(" GSM and IOT");
delay(1500);
Serial.write("AT\r\n"); delay(2500);// okcheck();
Serial.write("ATE0\r\n"); okcheck1();
Serial.write("AT+CWMODE=3\r\n");delay(2500);//
lcd.clear();
lcd.print("Waiting For");
lcd.setCursor(0,1);
lcd.print(" Connection ");
do{
rcv = Serial.read();
}while(rcv != 'C');
lcd.clear();lcd.setCursor(0,0);lcd.print(" Connected ");
gsminit();
delay(1500);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Level:"); //6,0
}
void loop()
if(digitalRead(lvl1) == LOW && digitalRead(lvl2) == LOW)
lcd.setCursor(6,0);lcd.print("Empty ");
digitalWrite(red, HIGH);digitalWrite(green, LOW);
digitalWrite(m1a, LOW);digitalWrite(m1b, LOW);
Serial.write("AT+CIPSEND=0,17\r\n");delay(1500);
Serial.write("Dam Level Empty\r\n");delay(2000);
delay(4000); delay(4000);
mySerial.write("AT+CMGS=\"");
mySerial.write(pastnumber);
mySerial.write("\"\r\n"); delay(2500);
mySerial.write("Dam Level Empty\r\n");
mySerial.write(0x1A);
delay(4000); delay(4000);
while(digitalRead(lvl1) == LOW && digitalRead(lvl2) == LOW);
if(digitalRead(lvl1) == HIGH && digitalRead(lvl2) == LOW)
lcd.setCursor(6,0);lcd.print("-1 ");
digitalWrite(red, HIGH);digitalWrite(green, LOW);
digitalWrite(m1a, LOW);digitalWrite(m1b, LOW);
Serial.write("AT+CIPSEND=0,13\r\n");delay(1500);
Serial.write("Dam Level 2\r\n");delay(2000);
delay(4000); delay(4000);
mySerial.write("AT+CMGS=\"");
mySerial.write(pastnumber);
mySerial.write("\"\r\n"); delay(2500);
mySerial.write("Dam Level 2\r\n");
mySerial.write(0x1A);
delay(4000); delay(4000);
while(digitalRead(lvl1) == HIGH && digitalRead(lvl2) == LOW);
if(digitalRead(lvl1) == HIGH && digitalRead(lvl2) == HIGH)
lcd.setCursor(6,0);lcd.print("Full ");
digitalWrite(red, red);digitalWrite(green, HIGH);
digitalWrite(m1a, HIGH);digitalWrite(m1b, LOW);
delay(1000);
beep();
digitalWrite(m1a, LOW);digitalWrite(m1b, LOW);
Serial.write("AT+CIPSEND=0,16\r\n");delay(1500);
Serial.write("Dam Level Full\r\n");delay(2000);
delay(4000); delay(4000);
mySerial.write("AT+CMGS=\"");
mySerial.write(pastnumber);
mySerial.write("\"\r\n"); delay(2500);
mySerial.write("Dam Level Full-Plz Goto Secure Place\r\n");
mySerial.write(0x1A);
delay(4000); delay(4000);
while(digitalRead(lvl1) == HIGH && digitalRead(lvl2) == HIGH);
void serialEvent()
while(Serial.available())
char inChar = (char)Serial.read();
if(inChar == '*')
gchr = Serial.read();
int readSerial(char result[])
int i = 0;
while (1)
while (mySerial.available() > 0)
char inChar = mySerial.read();
if (inChar == '\n')
return 0;
if (inChar != '\r')
{
result[i] = inChar;
i++;
void gsminit()
mySerial.write("AT\r\n"); okcheck();
mySerial.write("ATE0\r\n"); okcheck();
mySerial.write("AT+CSMP=17,167,0,0\r\n"); okcheck();
lcd.clear();
lcd.print("SEND MSG STORE");
lcd.setCursor(0,1);
lcd.print("MOBILE NUMBER");
do{
rcv = mySerial.read();
}while(rcv != '*');
readSerial(pastnumber);pastnumber[10] = '\0';
/*
pastnumber1[0] = pastnumber[0];pastnumber1[1] = pastnumber[1];pastnumber1[2] =
pastnumber[2];pastnumber1[3] = pastnumber[3];pastnumber1[4] = pastnumber[4];pastnumber1[5]
= pastnumber[5];
pastnumber1[6] = pastnumber[6];pastnumber1[7] = pastnumber[7];pastnumber1[8] =
pastnumber[8];pastnumber1[9] = pastnumber[9];pastnumber1[10] = '\0';
*/
/*
pastnumber3[0] = pastnumber[20];pastnumber3[1] = pastnumber[21];pastnumber3[2] =
pastnumber[22];pastnumber3[3] = pastnumber[23];pastnumber3[4] =
pastnumber[24];pastnumber3[5] = pastnumber[25];
pastnumber3[6] = pastnumber[26];pastnumber3[7] = pastnumber[27];pastnumber3[8] =
pastnumber[28];pastnumber3[9] = pastnumber[29];pastnumber3[10] = '\0';
*/
lcd.clear();
lcd.print(pastnumber);
delay(4000); delay(4000);
mySerial.write("AT+CMGS=\"");
mySerial.write(pastnumber);
mySerial.write("\"\r\n"); delay(3000);
mySerial.write("Reg\r\n");
mySerial.write(0x1A);
delay(4000); delay(4000);
void converts(unsigned int value)
unsigned int a,b,c,d,e,f,g,h;
a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;
a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;
Serial.write(a);
Serial.write(c);
Serial.write(e);
Serial.write(g);
Serial.write(h);
void convertl(unsigned int value)
unsigned int a,b,c,d,e,f,g,h;
a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;
a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;
//lcd.write(a);
//lcd.write(c);
lcd.write(e);
lcd.write(g);
lcd.write(h);
void convertk(unsigned int value)
unsigned int a,b,c,d,e,f,g,h;
a=value/10000;
b=value%10000;
c=b/1000;
d=b%1000;
e=d/100;
f=d%100;
g=f/10;
h=f%10;
a=a|0x30;
c=c|0x30;
e=e|0x30;
g=g|0x30;
h=h|0x30;
// lcd.write(a);
// lcd.write(c);
// lcd.write(e);
// lcd.write(g);
lcd.write(h);