#include <LiquidCrystal_I2C.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Wire.h>
static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;
LiquidCrystal_I2C lcd(0x27,16,2);
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
// Serial.begin(115200);
ss.begin(GPSBaud);
lcd.begin();
lcd.backlight();
}
void loop()
{
while (ss.available() > 0)
if (gps.encode(ss.read()))
if (gps.altitude.isUpdated())
if (gps.satellites.isUpdated())
if (gps.hdop.isUpdated())
displayInfo();
if (millis() > 3000 && gps.charsProcessed() < 1)
{
while(true);
}
}
void displayInfo()
{
Serial.println();
lcd.setCursor(9,0);
lcd.print(" "+String(gps.satellites.value()));
lcd.setCursor(12,0);
lcd.print(" "+String(gps.hdop.value()));
lcd.setCursor(9,1);
lcd.print(" "+String(gps.altitude.meters()));
lcd.setCursor(0,0);
lcd.print(" "+String(gps.location.lat(),5));
lcd.setCursor(0,1);
lcd.print(" "+String(gps.location.lng(),5));
}