Last active
April 1, 2016 23:59
-
-
Save tedder/2ed8fb70647d0cc768f5b9d142408cc6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <TinyGPS++/TinyGPS++.h> | |
#include <SoftwareSerial.h> | |
/* | |
This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object. | |
It requires the use of SoftwareSerial, and assumes that you have a | |
4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx). | |
*/ | |
static const int RXPin = 4, TXPin = 3; | |
static const uint32_t GPSBaud = 4800; | |
// The TinyGPS++ object | |
TinyGPSPlus gps; | |
// The serial connection to the GPS device | |
SoftwareSerial ss(RXPin, TXPin); | |
void setup() | |
{ | |
Serial.begin(115200); | |
ss.begin(GPSBaud); | |
Serial.println(F("DeviceExample.ino")); | |
Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module")); | |
Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion()); | |
Serial.println(F("by Mikal Hart")); | |
Serial.println(); | |
} | |
void loop() | |
{ | |
// This sketch displays information every time a new sentence is correctly encoded. | |
while (ss.available() > 0) | |
if (gps.encode(ss.read())) | |
displayInfo(); | |
if (millis() > 5000 && gps.charsProcessed() < 10) | |
{ | |
Serial.println(F("No GPS detected: check wiring.")); | |
while(true); | |
} | |
} | |
void displayInfo() | |
{ | |
Serial.print(F("Location: ")); | |
if (gps.location.isValid()) | |
{ | |
Serial.print(gps.location.lat(), 6); | |
Serial.print(F(",")); | |
Serial.print(gps.location.lng(), 6); | |
} | |
else | |
{ | |
Serial.print(F("INVALID")); | |
} | |
Serial.print(F(" Date/Time: ")); | |
if (gps.date.isValid()) | |
{ | |
Serial.print(gps.date.month()); | |
Serial.print(F("/")); | |
Serial.print(gps.date.day()); | |
Serial.print(F("/")); | |
Serial.print(gps.date.year()); | |
} | |
else | |
{ | |
Serial.print(F("INVALID")); | |
} | |
Serial.print(F(" ")); | |
if (gps.time.isValid()) | |
{ | |
if (gps.time.hour() < 10) Serial.print(F("0")); | |
Serial.print(gps.time.hour()); | |
Serial.print(F(":")); | |
if (gps.time.minute() < 10) Serial.print(F("0")); | |
Serial.print(gps.time.minute()); | |
Serial.print(F(":")); | |
if (gps.time.second() < 10) Serial.print(F("0")); | |
Serial.print(gps.time.second()); | |
Serial.print(F(".")); | |
if (gps.time.centisecond() < 10) Serial.print(F("0")); | |
Serial.print(gps.time.centisecond()); | |
} | |
else | |
{ | |
Serial.print(F("INVALID")); | |
} | |
Serial.println(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment