Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
h>
#include <SoftwareSerial.h>
#define vehisw 12
boolean sms_flag=1;
float PPMconversion=0.7;
float K=2.88;
float Temperature=10;
float EC=0;
float EC25 =0;
int ppm =0;
float raw= 0;
float Vin= 5;
float Vdrop= 0;
float Rc= 0;
float buffer=0;
void setup()
{
Serial.begin(9600);
pinMode(vehisw, OUTPUT);
pinMode(ECPin,INPUT);
pinMode(ECPower,OUTPUT);//Setting pin for sourcing current
pinMode(ECGround,OUTPUT);//setting pin for sinking current
digitalWrite(vehisw, LOW);
digitalWrite(ECGround,LOW);//We can leave the ground connected permanantly
delay(100);
lcd.setCursor(0,1);
lcd.print("Please Wait.....");
delay(2000);
lcd.clear();
lcd.print("PH Value :");
lcd.setCursor(0,1);
lcd.print("PPM Valu :");
//gsm_init();
void loop()
for(int i=0;i<10;i++)
{
buf[i]=analogRead(analogInPin);
delay(10);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
if(buf[i]>buf[j])
{
temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}
}
}
avgValue=0;
for(int i=2;i<8;i++)
avgValue+=buf[i];
float pHVol=(float)avgValue*5.0/1024/6;
float phValue = -5.70 * pHVol + 21.34;
lcd.setCursor(12,0);
lcd.print(phValue);
delay(4000);
GetEC();
PrintReadings();
delay(5000);
digitalWrite(vehisw, HIGH);
lcd.clear();
lcd.print("PH Value :");
lcd.setCursor(0,1);
lcd.print("PPM Valu :");
}
void GetEC()
{
digitalWrite(ECPower,HIGH);
raw= analogRead(ECPin);
raw= analogRead(ECPin);
digitalWrite(ECPower,LOW);
Vdrop= (Vin*raw)/1024.0;
Rc=(Vdrop*R1)/(Vin-Vdrop);
Rc=Rc-Ra; //acounting for Digital Pin Resitance
EC = 1000/(Rc*K);
void PrintReadings()
{
lcd.setCursor(12,1);
lcd.print(ppm);
delay(4000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Water Quality ");
lcd.setCursor(0,1);
lcd.print("is Not Good");
delay(3000);
if (sms_flag == 1)
{
trackingsp();
delay(1000);
};
void gsm_init()
{
lcd.clear();
lcd.print("Finding Module..");
boolean at_flag=1;
while(at_flag)
{
Serial.println("AT");
while(Serial.available()>0)
{
if(Serial.find("OK"))
at_flag=0;
}
delay(1000);
}
lcd.clear();
lcd.print("Module Connected..");
delay(1000);
lcd.clear();
lcd.print("Disabling ECHO");
boolean echo_flag=1;
while(echo_flag)
{
Serial.println("ATE0");
while(Serial.available()>0)
{
if(Serial.find("OK"))
echo_flag=0;
}
delay(1000);
}
lcd.clear();
lcd.print("Echo OFF");
delay(1000);
lcd.clear();
lcd.print("Finding Network..");
boolean net_flag=1;
while(net_flag)
{
Serial.println("AT+CPIN?");
while(Serial.available()>0)
{
if(Serial.find("+CPIN: READY"))
net_flag=0;
}
delay(1000);
}
lcd.clear();
lcd.print("Network Found..");
delay(1000);
lcd.clear();
}
void init_sms()
{
Serial.println("AT+CMGF=1");
delay(400);
Serial.println("AT+CMGS=\"+918007480377\""); // use your 10 digit cell no. here
delay(400);
}
void send_sms()
{
Serial.write(26);
}
void lcd_status()
{
lcd.clear();
lcd.print("Message Sent");
delay(2000);
lcd.clear();
lcd.print("System Ready");
return;
}
void trackingsp()
{
init_sms();
send_data("Filter Water Quality ");
send_data("IS not good");
send_data("Please take some action soon..\nThankyou");
send_sms();
delay(2000);
lcd_status();
sms_flag = 0;
}