0% found this document useful (0 votes)
64 views9 pages

Challenges and Opportunities of Waste Management in Iot Enabled Smart Cities

The document is an Arduino sketch that integrates various sensors and modules for an IoT application, including a DHT sensor for temperature and humidity, a smoke detector, and ultrasonic distance measurement. It connects to a WiFi network to send data to a remote server and displays information on an LCD. The code includes functions for handling GPS data, sending HTTP requests, and managing sensor readings and alerts.

Uploaded by

s gopala krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views9 pages

Challenges and Opportunities of Waste Management in Iot Enabled Smart Cities

The document is an Arduino sketch that integrates various sensors and modules for an IoT application, including a DHT sensor for temperature and humidity, a smoke detector, and ultrasonic distance measurement. It connects to a WiFi network to send data to a remote server and displays information on an LCD. The code includes functions for handling GPS data, sending HTTP requests, and managing sensor readings and alerts.

Uploaded by

s gopala krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

#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);
}

You might also like