#include <LiquidCrystal.
h>
#include <stdio.h>
//LiquidCrystal lcd(6, 7, 5, 4, 3, 2);
LiquidCrystal lcd(13, 12, 14, 27, 26, 25);
#include <WiFi.h>
#include <HTTPClient.h>
HTTPClient http;
const char *ssid = "iotserver";
const char *password = "iotserver123";
int httpResponseCode;
String servername = "http://projectsfactoryserver.in/storedata.php?name=";
String accountname = "iot322";
String field1 = "&s1=";
String field2 = "&s2=";
String field3 = "&s3=";
String field4 = "&s4=";
String field5 = "&s5=";
String payload="";
#include "DHTesp.h"
#define DHTpin 2
DHTesp dht;
int smoke = 18;
int buzzer = 23;
const int trigPin = 21;
const int echoPin = 19;
float tempc=0,humc=0;
unsigned char rcv,count,gchr,gchr1,robos='s';
int sti=0;
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
#define RXD2 16
#define TXD2 17
int rtr1=0;
int dist1=0,dist2=0,dist3,sts1=0,sts2=0;
long duration;
int distanceCm, distanceInch;
unsigned int ultra_dist()
{int ud=0;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
ud = distanceCm;
return ud;
}
int i=0,k=0,lop=0;
int gps_status=0;
float latitude=0;
float logitude=0;
String Speed="";
String gpsString="";
char *test="$GPRMC";
//int hbtc=0,hbtc1=0,rtrl=0;
unsigned char gv=0,msg1[10],msg2[11];
float lati=0,longi=0;
unsigned int lati1=0,longi1=0;
unsigned char flat[5],flong[5];
char finallat[10],finallong[10];
String finallat1="";
String finallong1="";
String smoke_string="";
int ii=0,rchkr=0;
void beep()
{
digitalWrite(buzzer, LOW);delay(2000);digitalWrite(buzzer, HIGH);
}
void okcheck()
{
unsigned char rcr;
do{
rcr = Serial.read();
}while(rcr != 'K');
}
//int sts1=0,sts2=0,cntlmk=0;
int cntlmk=0;
int stn=0;
int hbv=0;
String rain_string="";
String air_string="";
//http://projectsfactoryserver.in/storedata.php?name=server65&lat=%s&lan=%s&s1=%s
void iot_send()
{
lcd.setCursor(15,0);lcd.print("U");
http.begin(servername + accountname + field1 + String(dist1) + field2 +
smoke_string);
httpResponseCode = http.GET();
if(httpResponseCode>0)
{
payload="";
//Serial.print("HTTP Response code: ");
//Serial.println(httpResponseCode);
payload = http.getString();
//Serial.println(payload);
}
else
{
;
//Serial.print("Error code: ");
//Serial.println(httpResponseCode);
}
delay(3000);
lcd.setCursor(15,0);lcd.print(" ");
}
void setup()
{
Serial.begin(9600);//serialEvent();
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(smoke, INPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, HIGH);
lcd.begin(16, 2);
lcd.print("Challanges Applications");
lcd.setCursor(0,1);
lcd.print("Of Waste Management");
delay(2500);
WiFi.begin(ssid, password);
Serial.println("Connecting");
//Serial.println(WiFi.localIP());
delay(3000);
//dht.setup(DHTpin, DHTesp::DHT11);
lcd.clear();
lcd.print("U:"); //2,0
lcd.setCursor(0,1);
lcd.print("Smoke:");//6,1
}
void loop()
{
dist1 = ultra_dist();
lcd.setCursor(2,0);convertl(dist1);
if(dist1 < 10)
{
beep();
iot_send();
}
smoke_string="";
if(digitalRead(smoke) == LOW)
{
lcd.setCursor(6,1);lcd.print("Det ");
smoke_string="Smoke_Detected";beep();
iot_send();
}
if(digitalRead(smoke) == HIGH)
{
lcd.setCursor(6,1);lcd.print("- ");
smoke_string="-";
}
delay(1000);
cntlmk++;
if(cntlmk >= 40)
{cntlmk=0;
iot_send();
}
}
void serialEvent()
{
while (Serial.available())
{
char inChar = (char)Serial.read();
if(inChar == '*')
{
gchr = Serial.read();
}
if(inChar == '#')
{
gchr1 = Serial.read();
}
}
}
void gpsEvent()
{
gpsString="";
while(1)
{
//while (gps.available()>0) //Serial incoming data from GPS
while (Serial2.available() > 0)
{
//char inChar = (char)gps.read();
char inChar = (char)Serial2.read();
gpsString+= inChar; //store incoming data from GPS to
temparary string str[]
i++;
// Serial.print(inChar);
if (i < 7)
{
if(gpsString[i-1] != test[i-1]) //check for right string
{
i=0;
gpsString="";
}
}
if(inChar=='\r')
{
if(i>60)
{
gps_status=1;
break;
}
else
{
i=0;
}
}
}
if(gps_status)
break;
}
}
void get_gps()
{
lcd.clear();
lcd.print("Getting GPS Data");
lcd.setCursor(0,1);
lcd.print("Please Wait.....");
gps_status=0;
int x=0;
while(gps_status==0)
{
gpsEvent();
int str_lenth=i;
coordinate2dec();
i=0;x=0;
str_lenth=0;
}
}
void coordinate2dec()
{
String lat_degree="";
for(i=17;i<=18;i++)
lat_degree+=gpsString[i];
String lat_minut="";
for(i=18;i<=19;i++)
lat_minut+=gpsString[i];
for(i=21;i<=22;i++)
lat_minut+=gpsString[i];
String log_degree="";
for(i=29;i<=31;i++)
log_degree+=gpsString[i];
String log_minut="";
for(i=32;i<=33;i++)
log_minut+=gpsString[i];
for(i=35;i<=36;i++)
log_minut+=gpsString[i];
Speed="";
for(i=42;i<45;i++) //extract longitude from string
Speed+=gpsString[i];
float minut= lat_minut.toFloat();
minut=minut/60;
float degree=lat_degree.toFloat();
latitude=degree+minut;
minut= log_minut.toFloat();
minut=minut/60;
degree=log_degree.toFloat();
logitude=degree+minut;
}
void gps_convert()
{
if(gps_status)
{
// Serial.println(gpsString);
if(gpsString[0] == '$' && gpsString[1] == 'G' && gpsString[2] == 'P' &&
gpsString[3] == 'R' && gpsString[4] == 'M' && gpsString[5] == 'C')
{
// Serial.println("Don11111111111111111111111111111111111111111111111111111\r\
n");
//
Serial.write(gpsString[18]);Serial.write(gpsString[19]);Serial.write(gpsString[20])
;Serial.write(gpsString[21]);Serial.write(gpsString[22]);
//lcd.setCursor(0,0);
for(ii=0;ii<9;ii++)
{
//lcd.write(gpsString[19+ii]);
msg1[ii] = gpsString[19+ii];
//Serial.write(msg1[ii]);
}
//Serial.println("\r\n");
//lcd.setCursor(0,1);
for(ii=0;ii<10;ii++)
{
//lcd.write(gpsString[32+ii]);
msg2[ii] = gpsString[32+ii];
// Serial.write(msg2[ii]);
}
convlat(lati); convlong(longi);
finallat[0] = msg1[0];
finallat[1] = msg1[1];
finallat[2] = '.';
finallat[3] = flat[0]; finallat[4] = flat[1];finallat[5] =
flat[2];finallat[6] = flat[3];finallat[7] = '\0';
finallong[0] = msg2[0];
finallong[1] = msg2[1];
finallong[2] = msg2[2];
finallong[3] = '.';
finallong[4] = flong[0];finallong[5] = flong[1];finallong[6] =
flong[2];finallong[7] = flong[3];finallong[8] = '\0';
}
}
}
void convlat(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;
// dlcd(a);
// dlcd(c);dlcd(e); dlcd(g);dlcd(h);//lcddata('A');//lcddata(' ');lcddata(' ');
flat[0] = c;
flat[1] = e;
flat[2] = g;
flat[3] = h;
void convlong(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;
// dlcd(a);
// dlcd(c);dlcd(e); dlcd(g);dlcd(h);//lcddata('A');//lcddata(' ');lcddata(' ');
flong[0] = c;
flong[1] = e;
flong[2] = g;
flong[3] = h;
}
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);
}