You are on page 1of 7

#include<LiquidCrystal.

h>

#include<Timer.h>

#include <SoftwareSerial.h>

SoftwareSerial mySerial(4,5);

#include <TinyGPS.h>

LiquidCrystal lcd(6, 7, 8, 9, 10, 11);

Timer t;

int sensor_pin = A0;


int sensor_pin1 = A1;
int sensor_pin2 = A2;

int output_value ;
int output_value1 ;
int output_value2 ;

float temp1;
float temp2;
float temp3;
float vout;

float time=0,voltage=0,current=0,power=0;

char *api_key="4P8MJAINZ86XDVVO"; // Enter your Write API key from ThingSpeak


static char postUrl[150];

void httpGet(String ip, String path, int port=80);

TinyGPS gps;
//String str="";
char str[70];
String gpsString="";
long duration;
int distance;
char *test="$GPGGA";

String latitude="No Range ";


String longitude="No Range ";

int temp=0,i;
boolean gps_status=0;

int read_count=0,tag_count=0;
int j=0,k=0; // Variabvles to iterate in for loops
char data_temp, RFID_data[12], data_store[10][12];
boolean disp_control;
void setup()
{

pinMode(sensor_pin,INPUT);
pinMode(sensor_pin1,INPUT);

lcd.begin(16, 2);
lcd.clear();

lcd.print("RFID BASE SCHOOL");


lcd.setCursor(0,1);
lcd.print("BUS MONITORING..");
delay(2000);
lcd.clear();
lcd.print(" RCPIT Shirpur..");
delay(2000);
lcd.setCursor(0,1);
lcd.print("WELCOMES YOU....");
delay(2000);

Serial1.begin(9600);
Serial.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);
mySerial.begin(9600);

lcd.clear();
lcd.print("WIFI Connecting");
lcd.setCursor(0,1);
lcd.print("Please wait....");
Serial.println("Connecting Wifi....");

connect_wifi("AT",1000);
connect_wifi("AT+CWMODE=1",1000);
connect_wifi("AT+CWQAP",1000);
connect_wifi("AT+RST",1000);
connect_wifi("AT+CWJAP=\"sagar\",\"12345678\"",5000);

Serial.println("Wifi Connected");
lcd.clear();

lcd.print("WIFI Connected.");

lcd.clear();

get_gps1();

lcd.clear();
lcd.print("GPS Range Found");
lcd.setCursor(0,1);
lcd.print("GPS is Ready");
delay(2000);
lcd.clear();
lcd.print("System Ready");
lcd.setCursor(0,1);

delay(2000);
}

void loop()
{

while (1)

lcd.clear();

vout=analogRead(sensor_pin);
temp1=(vout/100);

vout=analogRead(sensor_pin1);
temp2=(vout/100);

vout=analogRead(sensor_pin2);
temp3=(vout/100);

voltage=temp1;
current=temp2;
power=temp3;

lcd.print("Alcohol1:- ");
lcd.print(voltage);

lcd.setCursor(0,1);
lcd.print("Alcohol2:-");
lcd.print(current);

delay(2000);
lcd.clear();
lcd.print("GAS:- ");
lcd.print(power);
delay(2000);

RecieveData();
StoreData();
PrintData();

void send2server()
{
char vtgStr[8];
char curStr[8];
char poweStr[8];

dtostrf(voltage, 5, 3, vtgStr);
dtostrf(current, 5, 3, curStr);
dtostrf(power, 5, 3, poweStr);

sprintf(postUrl,"update?api_key=%s&field1=%s&field2=%s&field3=
%s",api_key,voltage,current,power);
httpGet("api.thingspeak.com", postUrl, 80);
}

//GET https://api.thingspeak.com/update?
api_key=DVQECQWPWNG6ZPBP&field1=03.42&field2=04.52&field3=02.85&field4=28.5458&fiel
d5=77.1703&field6=1&field7=1&field8=4
void httpGet(String ip, String path, int port)
{
int resp;
String atHttpGetCmd = "GET /"+path+" HTTP/1.0\r\n\r\n";
//AT+CIPSTART="TCP","192.168.20.200",80
String atTcpPortConnectCmd = "AT+CIPSTART=\"TCP\",\""+ip+"\","+port+"";
connect_wifi(atTcpPortConnectCmd,1000);

int len = atHttpGetCmd.length();


String atSendCmd = "AT+CIPSEND=";
atSendCmd+=len;

connect_wifi(atSendCmd,1000);
connect_wifi(atHttpGetCmd,1000);

void connect_wifi(String cmd, int t)


{
int temp=0,i=0;
while(1)
{
lcd.clear();
lcd.print(cmd);
Serial.println(cmd);
Serial2.println(cmd);
while(Serial2.available())
{
if(Serial2.find("OK"))

i=8;
}
delay(t);
if(i>5)
break;
i++;
}
if(i==8)
{
Serial.println("OK");
lcd.setCursor(0,1);
lcd.print("OK");
}
else
{
Serial.println("Error");
lcd.setCursor(0,1);
lcd.print("Error");
}
}

void gpsEvent()
{
gpsString="";
while(1)
{
while (Serial.available()>0) //checking serial data from GPS
{
char inChar = (char)Serial.read();
gpsString+= inChar; //store data from GPS into gpsString
i++;
if (i < 7)
{
if(gpsString[i-1] != test[i-1]) //checking for $GPGGA sentence
{
i=0;
gpsString="";
}
}
if(inChar=='\r')
{
if(i>65)
{
gps_status=1;
break;
}
else
{
i=0;
}
}
}
if(gps_status)
break;
}
}

void get_gps()
{
gps_status=0;
int x=0;
while(gps_status==0)
{
gpsEvent();
int str_lenth=i;
latitude="";
longitude="";
int comma=0;
while(x<str_lenth)
{
if(gpsString[x]==',')
comma++;
if(comma==2) //extract latitude from string
latitude+=gpsString[x+1];
else if(comma==4) //extract longitude from string
longitude+=gpsString[x+1];
x++;
}
int l1=latitude.length();
latitude[l1-1]=' ';
l1=longitude.length();
longitude[l1-1]=' ';
lcd.clear();
lcd.print("Lat:");
lcd.print(latitude);
lcd.setCursor(0,1);
lcd.print("Long:");
lcd.print(longitude);
i=0;x=0;
str_lenth=0;
delay(1000);
}
}

void get_gps1()
{

lcd.clear();
lcd.print("Lat:");
lcd.print(latitude);
lcd.setCursor(0,1);
lcd.print("Long:");
lcd.print(longitude);

delay(2000);

void RecieveData()
{
if(Serial1.available()>0)
{
data_temp=Serial1.read();
RFID_data[read_count]=data_temp;
read_count++;
}
}

void StoreData()
{

if(read_count==12)
{
disp_control=true;
for(k=tag_count;k<=tag_count;k++)
{
for(j=0;j<12;j++)
{
data_store[k][j]=RFID_data[j];
}
}
read_count=0;
tag_count++;
}
}

void PrintData()
{
if(disp_control==true)
{
for(k=0;k<=tag_count;k++)
{
for(j=0;j<12;j++)
{
Serial.write(data_store[k][j]);
}
Serial.println();

lcd.clear();
lcd.print("Welcome Student");

lcd.print(tag_count);
delay(2000);

}
disp_control=false;
}
}

You might also like