Professional Documents
Culture Documents
Bus Moni
Bus Moni
h>
#include<Timer.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4,5);
#include <TinyGPS.h>
Timer t;
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;
TinyGPS gps;
//String str="";
char str[70];
String gpsString="";
long duration;
int distance;
char *test="$GPGGA";
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();
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);
connect_wifi(atSendCmd,1000);
connect_wifi(atHttpGetCmd,1000);
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;
}
}