0% found this document useful (0 votes)
2 views

coding gas sensor

This document contains a programming code for a project that integrates GPS functionality with a Blynk application using an ESP8266 microcontroller. It includes setup for GPS communication, reading sensor data, and displaying information on an LCD widget. The code also handles notifications based on sensor readings and updates a virtual map with GPS locations.

Uploaded by

aqil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

coding gas sensor

This document contains a programming code for a project that integrates GPS functionality with a Blynk application using an ESP8266 microcontroller. It includes setup for GPS communication, reading sensor data, and displaying information on an LCD widget. The code also handles notifications based on sensor readings and updates a virtual map with GPS locations.

Uploaded by

aqil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

APPENDIX A: Programming for This Project

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
static const int RXPin = 4, TXPin = 5 ; // GPIO 4=D2(conneect Tx of GPS) and GPIO
5=D1(Connect Rx of GPS
static const uint32_t GPSBaud = 9600; //if Baud rate 9600 didn't work in your case then
use 4800
TinyGPSPlus gps; // The TinyGPS++ object
WidgetMap myMap(V0); // V0 for virtual pin of Map Widget
WidgetLCD lcd(V10);
SoftwareSerial ss (RXPin, TXPin); // The serial connection to the GPS device
BlynkTimer timer;
float spd; //Variable to store the speed
float sats; //Variable to store no. of satellites response
String bearing; //Variable to store orientation or direction of GPS

char auth[] = "L-QGOUmduimCnCjlwaCEBdA5TDg6Tatp"; //Your Project


authentication key

char ssid[] = "OppoA93"; // Name of your network (HotSpot or


Router name)

char pass[] = "aqilahizni"; // Corresponding Password


//unsigned int move_index; // moving index, to be used later
unsigned int move_index = 1; // fixed location for now
int smokeA0 = A0;

int analogSensor = 0;
void setup()

Serial.begin(115200);
Serial.println();
ss.begin(GPSBaud);
Blynk.begin(auth, ssid, pass);
pinMode(smokeA0, INPUT);
pinMode(15,OUTPUT);

lcd.clear(); //Use it to clear the LCD Widget

lcd.print (3, 0," SENSOR "); // use: (position X: 0-15, position Y: 0-1, "Message you want
to print")

lcd.print (2, 1,"A B");

timer.setInterval(1000L, checkGPS); // every 5s check if GPS is connected, only really needs


to be done once

void checkGPS(){

if (gps.charsProcessed() < 10)

Serial.println(F("No GPS detected: check wiring."));

Blynk.virtualWrite(V4, "GPS ERROR"); // Value Display widget on V4 if GPS not detected

}
void loop()
{
// analogSensor=analogRead(A0);
while (ss.available() > 0)
{
// sketch displays information every time a new sentence is correctly encoded.
if (gps.encode(ss.read()))

// Please use timed events when LCD printintg in void loop to avoid sending too many
commands
// It will cause a FLOOD Error, and connection will be dropped
displayInfo();
}
Blynk.run();
timer.run();
}
void displayInfo()
{
analogSensor = analogRead(smokeA0);
if (gps.location.isValid() )
{
float latitude = (gps.location.lat()); //Storing the Lat. and Lon.
float longitude = (gps.location.lng());
Serial.print("LAT: ");
Serial.println(latitude, 6); // float to x decimal places
Serial.print("LONG: ");
Serial.println(longitude, 6);
Serial.print("Sensor: ");
Serial.println(analogSensor);
Blynk.virtualWrite(V4, String(latitude, 6));

Blynk.virtualWrite(V5, String(longitude, 6));


Blynk.virtualWrite(V6, analogSensor);

myMap.location(move_index, latitude, longitude, "GPS_Locations");

}
if(analogSensor>250)
{
Blynk.notify("SENSOR B");
digitalWrite(15,HIGH); // ikut GPIO pinout

else
{

digitalWrite(15,LOW); // ikut GPIO pinout


}
Serial.println();

You might also like