/* Programme mini pour afficher les coordonnées GPS sur un Arduino Uno
Il faut alimenter le GPS : GND(GPS) à GND (Arduino)
                           Vin (GPS) à 5 V (Arduino)
Il faut relier Tx (GPS) à Rx (Arduino)
Attention lors du téléversement il faut débrancher le fil Rx de l'Arduino
sinon il y a un conflit entre le GPS et l'ordinateur qui se retrouvent reliés ensemble à la patte Tx de l'Arduino.
*/

#include <TinyGPS.h> // La bibliothèque TinyGPS va analyser les trames GPS 

TinyGPS gps; // Création de l'objet GPS
int a;
float lat, lon;

void setup() {
  Serial.begin(9600);
 }
 
void loop() {
    if (Serial.available()){
      a = Serial.read();
      // Serial.write(a); // Pour Debuger et voir les trames GPS
      if (gps.encode(a)) lireGPS();   // Si TinyGPS a découvert une nouvelle trame, afficher les coordonnées  
          }
  }

void lireGPS() {
      gps.f_get_position(&lat, &lon);   // appel fonction de la bibliothèque TinyGPS
      Serial.println();                // Sauter une ligne
      Serial.print(lat,5);             // voir les coordonnées GPS
      Serial.print(",");Serial.println(lon,5);
    }  // D'autres fonctions sont disponibles : lire la vitesse, la date, l'altitude...