#define FLOWRATE1     32
#define FLOWRATE2     33
#define PUMP          13
#define rled          19
#define yled          18
#define threshold     15
#define button        15
String number="0620572917";
#define sim           Serial2


float flowRate1,flowRate2;
long pretime=0;

void setup()
{
 Serial.begin(9600);
 delay(100);
 Serial2.begin(9600);
 pinMode(rled,OUTPUT);
 pinMode(yled,OUTPUT);
 pinMode(PUMP,OUTPUT);
 pinMode(button, INPUT_PULLUP);
 digitalWrite(yled,LOW);
 digitalWrite(rled,LOW);
 digitalWrite(PUMP,LOW);
}

void loop()
{
 get_data();
 long timeElapse=millis()-pretime;
 if((flowRate1-flowRate2)>threshold && timeElapse>10000)
 {
  digitalWrite(yled,LOW);
  digitalWrite(rled,HIGH);
  digitalWrite(PUMP,LOW);
  send_sms();
  pretime=millis();
 }
 if(digitalRead(button)==LOW)
 {
  delay(750);
  digitalWrite(rled,LOW);
  digitalWrite(yled,HIGH);
  digitalWrite(PUMP,HIGH);
 }
}

void get_data() 
{
  flowRate1=map(analogRead(FLOWRATE1),0,4095,0,100);
  Serial.print("flowrate1:");
  Serial.println(flowRate1);
  flowRate2=map(analogRead(FLOWRATE2),0,4095,0,100);
  Serial.print("flowrate2:");
  Serial.println(flowRate2);
}

void send_sms() 
{     
  sim.println("AT+CMGF=1\r");
  delay(100);
  sim.println("AT+CMGS=\"" + number + "\"\r");
  delay(500);
  sim.println("WATER LEAKAGE DETECTED");
  delay(500);
  sim.println((char)26);
  delay(500);
  Serial.println("SMS SENT SUCCESSFULLY");
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
PIPE LINE WATER LEAKAGE DETECTION SYSTEM
FLOWRATE SENSOR 1
FLOWRATE SENSOR 2
pot1:VCC
pot1:SIG
pot1:GND
pot2:VCC
pot2:SIG
pot2:GND
led1:A
led1:C
led2:A
led2:C
gsm-modemBreakout
chip1:VCC
chip1:GND
chip1:RX
chip1:TX
NOCOMNCVCCGNDINLED1PWRRelay Module
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r