adafruit GPS breakout V3.0 + pas de mise à jour à des coordonnées

bonjour

Dans la continuite du post precedent sur la liaison USB/module radio 433MHZ.

hier, j’ai fait un essai sur le terrain avec deplacement à pieds de 300 metre entre la partie fixe et mobile.

Constat :
le gps envoie bien ses trames .Mais quand je me deplace , les coordonnées ne changent pas .
Sur la partie mobile , si je fais un reset (bt raz de la 2560) ou un on/Off , le module GPS s’initialise bien. les coordonnées changent.mais si je me deplace elles ne changent pas.

votre avis ?

materiel:
Partie mobile 2560+adafruit GPS V3.0+module radio 433MHZ
Partie fixe: pc portable windows10+ module radio 433MHZ USB +serial monitor (arduino) ou terminals serie ( windows)

sketch utilisé: (issue de la librairie adafruit) ( j’ai mis en commentaire les fonctions non utilisées , seules les coordonnées longitude et latitude m’interessent

// Test code for Ultimate GPS Using Hardware Serial (e.g. GPS Flora or FeatherWing)
//
// This code shows how to listen to the GPS module via polling. Best used with
// Feathers or Flora where you have hardware Serial and no interrupt
//
// Tested and works great with the Adafruit GPS FeatherWing
// ------> https://www.adafruit.com/products/3133
// or Flora GPS
// ------> https://www.adafruit.com/products/1059
// but also works with the shield, breakout
// ------> https://www.adafruit.com/products/1272
// ------> https://www.adafruit.com/products/746
//
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

#include <Adafruit_GPS.h>

// what's the name of the hardware serial port?
#define GPSSerial Serial1

// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);

// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences
#define GPSECHO false

uint32_t timer = millis();
int valtoto;

void setup()
{
  //while (!Serial);  // uncomment to have the sketch wait until Serial is ready

  // connect at 115200 so we can read the GPS fast enough and echo without dropping chars
  // also spit it out
  Serial.begin(57200);
  Serial2.begin (57200,SERIAL_8N1);// pour port usb 433
  Serial2.println("Adafruit GPS library basic test!");

  // 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
  GPS.begin(9600);
  // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
  // the parser doesn't care about other sentences at this time
  // Set the update rate
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
  // For the parsing code to work nicely and have time to sort thru the data, and
  // print it out we don't suggest using anything higher than 1 Hz

  // Request updates on antenna status, comment out to keep quiet
  GPS.sendCommand(PGCMD_ANTENNA);

  delay(1000);

  // Ask for firmware version
  GPSSerial.println(PMTK_Q_RELEASE);
  
  
  
}

void loop() // run over and over again
{
  // read data from the GPS in the 'main loop'
  char c = GPS.read();
  // if you want to debug, this is a good time to do it!
  if (GPSECHO)
    
    if (c) Serial2.print(c);
  // if a sentence is received, we can check the checksum, parse it...
  if (GPS.newNMEAreceived()) {
    // a tricky thing here is if we print the NMEA sentence, or data
    // we end up not listening and catching other sentences!
    // so be very wary if using OUTPUT_ALLDATA and trying to print out data
   // Serial2.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
    if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
      return; // we can fail to parse a sentence in which case we should just wait for another
  }
  // if millis() or timer wraps around, we'll just reset it
  if (timer > millis()) timer = millis();
                                                     
  // approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000) {//2000
    timer = millis(); // reset the timer
  
   
  }
   
   
  
  
  
  
  //Serial2.print("\nTime: ");
   // if (GPS.hour < 10) { Serial2.print('0'); }
  //  Serial2.print(GPS.hour, DEC); Serial2.print(':');
   // if (GPS.minute < 10) { Serial2.print('0'); }
   // Serial2.print(GPS.minute, DEC); Serial2.print(':');
    //if (GPS.seconds < 10) { Serial2.print('0'); }
   // Serial2.print(GPS.seconds, DEC); Serial2.print('.');
   // if (GPS.milliseconds < 10) {
   //   Serial2.print("00");
   // } else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {
   //   Serial2.print("0");
   // }
    //Serial2.println(GPS.milliseconds);
    //Serial2.print("Date: ");
    //Serial2.print(GPS.day, DEC); Serial2.print('/');
    //Serial2.print(GPS.month, DEC); Serial2.print("/20");
    //Serial2.println(GPS.year, DEC);
    //Serial2.print("Fix: "); Serial2.print((int)GPS.fix);
    //Serial2.print(" quality: "); Serial2.println((int)GPS.fixquality);
   
    if (GPS.fix) {
      //Serial2.print("Location: ");
      
      
      
      //Serial2.print("LATITUDE="); 
     Serial2.print(GPS.latitude, 4); Serial2.print(GPS.lat);
     Serial.print("LATITUDE="); Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
     
      Serial2.print(", ");
      Serial.print(", ");
     
      //Serial2.print("LONGITUDE="); 
      Serial2.print(GPS.longitude, 4); Serial2.println(GPS.lon);
      Serial.print("LONGITUDE="); Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
      
      Serial2.print(", ");
      Serial.print(", ");
       delay(500);
      Serial.print("Fix: "); Serial.print((int)GPS.fix);
      Serial.print(" quality: "); Serial.println((int)GPS.fixquality); 
      Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
      //Serial2.print("Speed (knots): "); Serial2.println(GPS.speed);
      //Serial2.print("Angle: "); Serial2.println(GPS.angle);
      //Serial2.print("Altitude: "); Serial2.println(GPS.altitude);
      //Serial2.print("Satellites: "); Serial2.println((int)GPS.satellites);
    }
  
}

pourquoi avoir ajouté un delay(500) ??? vous allez saturer vite votre buffer série et plus aucun fix n'arrivera correctement...

essayez juste avec ce code, le système connecté sur votre PC avec la console ouverte à 115200 bauds:

#define GPSSerial Serial1
 
void setup() 
{
  Serial.begin(115200);
  GPSSerial.begin(9600);
}
 
void loop() 
{
  if (Serial.available()) {
    char c = Serial.read();
    GPSSerial.write(c);
  }

  if (GPSSerial.available()) {
    char c = GPSSerial.read();
    Serial.write(c);
  }
}

en bougeant avec votre laptop vous devriez voir les infos changer

bonjour

les 500 c'est le seul moyen que j'ai trouve pour le probleme d'affiche apres via les modules RF 433mhz.
1 lignes sur 20 ne d'affichait que partielellement .

Acteullement les modules 433 sont programmés en 57600. j'ai reussi à monter plus haut.

bonsoir
effectivement cela varie .
j'ai implemente le serial vers le module radio 433Mhz

mais j'affiche toutes les trames NMEA

comment affiche que la trame #GPGGA avec les coordonnées longitude latitude ( seules info actuelles qui m'interessent) ?

#define GPSSerial Serial1
#define nrf433 Serial2

void setup() {
  // put your setup code here, to run once:

nrf433.begin(57600); //433
Serial.begin(115200);
GPSSerial.begin(9600);



}

void loop() {
  // put your main code here, to run repeatedly:

 if (Serial.available()) {
    char c = Serial.read();
    GPSSerial.write(c);
    //nrf433.write(c);
  }

  if (GPSSerial.available()) {
    char c = GPSSerial.read();
    Serial.write(c);
    nrf433.write(c);
  }



}

Je n’ai jamais joué avec cette librairie mais dans le code d’origine il y a

  // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
  // the parser doesn't care about other sentences at this time

Donc regardez de ce côté là pour avoir le minimum de data

Pour le delay il faut le virer et structurer votre code pour que tous les ports séries soient lus le plus souvent possible.

Bonjour

voika j’ai repis le code .

le constat :
les donnes s’affiche bien mais tres lentement une ligne tout les 2s .
Sur le monitor distant via les modules 433MHZ

// Test code for Ultimate GPS Using Hardware Serial (e.g. GPS Flora or FeatherWing)
//
// This code shows how to listen to the GPS module via polling. Best used with
// Feathers or Flora where you have hardware Serial and no interrupt
//
// Tested and works great with the Adafruit GPS FeatherWing
// ------> https://www.adafruit.com/products/3133
// or Flora GPS
// ------> https://www.adafruit.com/products/1059
// but also works with the shield, breakout
// ------> https://www.adafruit.com/products/1272
// ------> https://www.adafruit.com/products/746
//
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

#include <Adafruit_GPS.h>

// what's the name of the hardware serial port?
#define GPSSerial Serial1
#define nrf433 Serial2 //nrf433
// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);

// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences
#define GPSECHO false

uint32_t timer = millis();


void setup()
{
  //while (!Serial);  // uncomment to have the sketch wait until Serial is ready

  // connect at 115200 so we can read the GPS fast enough and echo without dropping chars
  // also spit it out
  Serial.begin(115200);
  Serial.println("Adafruit GPS library basic test!");
  nrf433.begin(57600); //433
  // 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
  GPS.begin(9600);
  // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
  // the parser doesn't care about other sentences at this time
  // Set the update rate
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
  // For the parsing code to work nicely and have time to sort thru the data, and
  // print it out we don't suggest using anything higher than 1 Hz

  // Request updates on antenna status, comment out to keep quiet
  GPS.sendCommand(PGCMD_ANTENNA);

  delay(1000);

  // Ask for firmware version
  GPSSerial.println(PMTK_Q_RELEASE);
}

void loop() // run over and over again
{
  // read data from the GPS in the 'main loop'
  char c = GPS.read();
  // if you want to debug, this is a good time to do it!
  if (GPSECHO)
    if (c) Serial.print(c);
  // if a sentence is received, we can check the checksum, parse it...
  if (GPS.newNMEAreceived()) {
    // a tricky thing here is if we print the NMEA sentence, or data
    // we end up not listening and catching other sentences!
    // so be very wary if using OUTPUT_ALLDATA and trying to print out data
    ////Serial.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
    if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
      return; // we can fail to parse a sentence in which case we should just wait for another
  }
  // if millis() or timer wraps around, we'll just reset it
  if (timer > millis()) timer = millis();

  // approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000) {
    timer = millis(); // reset the timer
    //Serial.print("\nTime: ");
    //if (GPS.hour < 10) { Serial.print('0'); }
    //Serial.print(GPS.hour, DEC); Serial.print(':');
   // if (GPS.minute < 10) { Serial.print('0'); }
    //Serial.print(GPS.minute, DEC); Serial.print(':');
    //if (GPS.seconds < 10) { Serial.print('0'); }
    //Serial.print(GPS.seconds, DEC); Serial.print('.');
    if (GPS.milliseconds < 10) {
    //  Serial.print("00");
    } else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {
     // Serial.print("0");
    }
    //Serial.println(GPS.milliseconds);
    //Serial.print("Date: ");
    //Serial.print(GPS.day, DEC); Serial.print('/');
    //Serial.print(GPS.month, DEC); Serial.print("/20");
    //Serial.println(GPS.year, DEC);
   // Serial.print("Fix: "); Serial.print((int)GPS.fix);
   // Serial.print(" quality: "); Serial.println((int)GPS.fixquality);
    if (GPS.fix) {
      Serial.print("Location: ");
      nrf433.print("Location: ");
      Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
      nrf433.print(GPS.latitude, 4); nrf433.print(GPS.lat);
      
      Serial.print(", ");
      nrf433.print(",");
      Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
      nrf433.print(GPS.longitude, 4); nrf433.println(GPS.lon);
      
      //Serial.print("Speed (knots): "); Serial.println(GPS.speed);
     // Serial.print("Angle: "); Serial.println(GPS.angle);
      //Serial.print("Altitude: "); Serial.println(GPS.altitude);
      //Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
    }
  }
}

didier2010:
Bonjour

voika j'ai repis le code .

le constat :
les donnes s'affiche bien mais tres lentement une ligne tout les 2s .
Sur le monitor distant via les modules 433MHZ

Ben c’est ce que le code demande:

   // approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000) {
  ...

il y a même un commentaire pour cela

D’autre part avec cette ligne vous demandez un fix par seconde au module GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update ratePlus d’infos ici

didier2010:
Bonjour

voika j’ai repis le code .

le constat :
les donnes s’affiche bien mais tres lentement une ligne tout les 2s .
Sur le monitor distant via les modules 433MHZ

// Test code for Ultimate GPS Using Hardware Serial (e.g. GPS Flora or FeatherWing)

//
// This code shows how to listen to the GPS module via polling. Best used with
// Feathers or Flora where you have hardware Serial and no interrupt
//
// Tested and works great with the Adafruit GPS FeatherWing
// ------> https://www.adafruit.com/products/3133
// or Flora GPS
// ------> https://www.adafruit.com/products/1059
// but also works with the shield, breakout
// ------> https://www.adafruit.com/products/1272
// ------> https://www.adafruit.com/products/746
//
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

#include <Adafruit_GPS.h>

// what’s the name of the hardware serial port?
#define GPSSerial Serial1
#define nrf433 Serial2 //nrf433
// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);

// Set GPSECHO to ‘false’ to turn off echoing the GPS data to the Serial console
// Set to ‘true’ if you want to debug and listen to the raw GPS sentences
#define GPSECHO false

uint32_t timer = millis();

void setup()
{
 //while (!Serial);  // uncomment to have the sketch wait until Serial is ready

// connect at 115200 so we can read the GPS fast enough and echo without dropping chars
 // also spit it out
 Serial.begin(115200);
 Serial.println(“Adafruit GPS library basic test!”);
 nrf433.begin(57600); //433
 // 9600 NMEA is the default baud rate for Adafruit MTK GPS’s- some use 4800
 GPS.begin(9600);
 // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
 GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
 // uncomment this line to turn on only the “minimum recommended” data
 //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
 // For parsing data, we don’t suggest using anything but either RMC only or RMC+GGA since
 // the parser doesn’t care about other sentences at this time
 // Set the update rate
 GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
 // For the parsing code to work nicely and have time to sort thru the data, and
 // print it out we don’t suggest using anything higher than 1 Hz

// Request updates on antenna status, comment out to keep quiet
 GPS.sendCommand(PGCMD_ANTENNA);

delay(1000);

// Ask for firmware version
 GPSSerial.println(PMTK_Q_RELEASE);
}

void loop() // run over and over again
{
 // read data from the GPS in the ‘main loop’
 char c = GPS.read();
 // if you want to debug, this is a good time to do it!
 if (GPSECHO)
   if (c) Serial.print(c);
 // if a sentence is received, we can check the checksum, parse it…
 if (GPS.newNMEAreceived()) {
   // a tricky thing here is if we print the NMEA sentence, or data
   // we end up not listening and catching other sentences!
   // so be very wary if using OUTPUT_ALLDATA and trying to print out data
   ////Serial.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
   if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
     return; // we can fail to parse a sentence in which case we should just wait for another
 }
 // if millis() or timer wraps around, we’ll just reset it
 if (timer > millis()) timer = millis();

// approximately every 2 seconds or so, print out the current stats
 if (millis() - timer > 2000) {
   timer = millis(); // reset the timer
   //Serial.print("\nTime: ");
   //if (GPS.hour < 10) { Serial.print(‘0’); }
   //Serial.print(GPS.hour, DEC); Serial.print(’:’);
  // if (GPS.minute < 10) { Serial.print(‘0’); }
   //Serial.print(GPS.minute, DEC); Serial.print(’:’);
   //if (GPS.seconds < 10) { Serial.print(‘0’); }
   //Serial.print(GPS.seconds, DEC); Serial.print(’.’);
   if (GPS.milliseconds < 10) {
   //  Serial.print(“00”);
   } else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {
    // Serial.print(“0”);
   }
   //Serial.println(GPS.milliseconds);
   //Serial.print(“Date: “);
   //Serial.print(GPS.day, DEC); Serial.print(’/’);
   //Serial.print(GPS.month, DEC); Serial.print(”/20”);
   //Serial.println(GPS.year, DEC);
  // Serial.print("Fix: “); Serial.print((int)GPS.fix);
  // Serial.print(” quality: "); Serial.println((int)GPS.fixquality);
   if (GPS.fix) {
     Serial.print("Location: ");
     nrf433.print(“Location: “);
     Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
     nrf433.print(GPS.latitude, 4); nrf433.print(GPS.lat);
     
     Serial.print(”, “);
     nrf433.print(”,”);
     Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
     nrf433.print(GPS.longitude, 4); nrf433.println(GPS.lon);
     
     //Serial.print("Speed (knots): "); Serial.println(GPS.speed);
    // Serial.print("Angle: "); Serial.println(GPS.angle);
     //Serial.print("Altitude: "); Serial.println(GPS.altitude);
     //Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
   }
 }
}

Bonjour
rapidement regard" ton code
le taux d’actualisation standard (sortie NMEA) d’un recepteur GNSS est de 1 seconde
certains modules GNSS permettent des taux élevés apres parametrages.
ton code semble imposer une condition de rafraichissement de 2 secondes entre affichage

// approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000)

Edit : J-M-L était déjà sur le pont ! :grin:

bonjour
j’ai fais varier à 1S à 5 S;

materiel : 2560+GPs+Module 433mhz.
Module 433mhz programmé à la vitesse 57600

utiliation serial monitor d’arduino et terminal de windows.

mais j’ai toujours quelques decalages .

13:11:38.018 → , 4315.5498N, 534.6906E
13:11:38.018 → , 4315.5498N, 534.6906E
13:11:38.051 → , 4315.5498N, 534.6906E
13:11:38.051 → ,315.5498N, 534.6906E
13:11:38.051 → , 4315.5498N, 534.6906E
13:11:38.084 → , 4315.5498N, 534.6906E
13:11:38.084 → , 4315.54N, 534.6906E
13:11:38.084 → , 4315.5498N, 534.6906E
13:11:38.084 → , 4315.5498N, 534.6906E
13:11:38.084 → , 4315.5498N, 534.6906E
13:11:38.118 → , 4315.5498N, 534.6906E
13:11:38.118 → , 434315.5498N, 534.6906E
13:11:38.118 → , 4315.5498N, 534.6906E
13:11:38.118 → , 4315.5498N, 534.6906E
13:11:38.152 → , 4315.5498N, 534.6906E
13:11:38.152 → , 4315.544315.5498N, 534.6906E
13:11:38.152 → , 4315.5498N, 534.6906E
13:11:38.152 → , 4315.5498N, 534.6906E
13:11:38.186 → , 4315.5498N, 534.6906E
13:11:38.186 → ,4315.5498N, 534.6906E
13:11:38.186 → , 4315.5498N, 534.6906E
13:11:38.220 → , 4315.5498N, 534.6906E
13:11:38.220 → , 4315.5498N, 534.6906E
13:11:38.220 → , 4315.5498N, 534.69498N, 534.6906E
13:11:38.220 → , 4315.5498N, 534.6906E
13:11:38.254 → , 4315.5498N, 534.6906E
13:11:38.254 → , 4315.5498N, 534.6906E
13:11:38.287 → , 4315.5498N, 5
13:11:38.287 → , 4315.5498N, 534.6906E
13:11:38.287 → , 4315.5498N, 534.6906E
13:11:38.321 → , 4315.54984315.5498N, 534.6906E
13:11:38.321 → , 4315.5498N, 534.6906E

Sérialisez vos problèmes

Commencez par obtenir dans la console série des coordonnées correctes
Ensuite ajoutez votre émission, en testant le temps de blocage du processeur pour cela
Si vous perdez trop de temps pour l’émission vous ratez des updates gps
Vérifiez aussi la cohérence de vos buffers de données (je n’ai pas lu le code en détail)

bonsoir
j’ai repris les essais avec une tiers personne , c’est plus simple pour se deplacer.

le code

// Test code for Ultimate GPS Using Hardware Serial (e.g. GPS Flora or FeatherWing)
//
// This code shows how to listen to the GPS module via polling. Best used with
// Feathers or Flora where you have hardware Serial and no interrupt
//
// Tested and works great with the Adafruit GPS FeatherWing
// ------> https://www.adafruit.com/products/3133
// or Flora GPS
// ------> https://www.adafruit.com/products/1059
// but also works with the shield, breakout
// ------> https://www.adafruit.com/products/1272
// ------> https://www.adafruit.com/products/746
//
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

#include <Adafruit_GPS.h>

// what's the name of the hardware serial port?
#define GPSSerial Serial1

// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);

// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences
#define GPSECHO false

uint32_t timer = millis();


void setup()
{
  //while (!Serial);  // uncomment to have the sketch wait until Serial is ready

  // connect at 115200 so we can read the GPS fast enough and echo without dropping chars
  // also spit it out
  Serial.begin(115200);
  Serial.println("Adafruit GPS library basic test!");
Serial2.begin (57200,SERIAL_8N1);// pour port usb 433
  Serial2.println("Adafruit GPS library basic test!");
  // 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
  GPS.begin(9600);
  // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
  // the parser doesn't care about other sentences at this time
  // Set the update rate
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
  // For the parsing code to work nicely and have time to sort thru the data, and
  // print it out we don't suggest using anything higher than 1 Hz

  // Request updates on antenna status, comment out to keep quiet
  GPS.sendCommand(PGCMD_ANTENNA);

  delay(1000);

  // Ask for firmware version
  GPSSerial.println(PMTK_Q_RELEASE);
}

void loop() // run over and over again
{
  // read data from the GPS in the 'main loop'
  char c = GPS.read();
  // if you want to debug, this is a good time to do it!
  if (GPSECHO)
    if (c) Serial2.print(c);
  // if a sentence is received, we can check the checksum, parse it...
  if (GPS.newNMEAreceived()) {
    // a tricky thing here is if we print the NMEA sentence, or data
    // we end up not listening and catching other sentences!
    // so be very wary if using OUTPUT_ALLDATA and trying to print out data
    ////////Serial2.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
    if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
      return; // we can fail to parse a sentence in which case we should just wait for another
  }
  // if millis() or timer wraps around, we'll just reset it
  if (timer > millis()) timer = millis();

  // approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000) {
    timer = millis(); // reset the timer
   // Serial2.print("\nTime: ");
   // if (GPS.hour < 10) { Serial2.print('0'); }
    //Serial2.print(GPS.hour, DEC); Serial2.print(':');
    //if (GPS.minute < 10) { Serial2.print('0'); }
    //Serial2.print(GPS.minute, DEC); Serial2.print(':');
   // if (GPS.seconds < 10) { Serial2.print('0'); }
   // Serial2.print(GPS.seconds, DEC); Serial2.print('.');
   // if (GPS.milliseconds < 10) {
     // Serial2.print("00");
    //} else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {
      //Serial2.print("0");
   // }
   // Serial2.println(GPS.milliseconds);
    //Serial2.print("Date: ");
    //Serial2.print(GPS.day, DEC); Serial2.print('/');
   // Serial2.print(GPS.month, DEC); Serial2.print("/20");
    //Serial2.println(GPS.year, DEC);
    //Serial2.print("Fix: "); Serial2.print((int)GPS.fix);
    //Serial2.print(" quality: "); Serial2.println((int)GPS.fixquality);
    if (GPS.fix) {
      Serial2.print("Location: ");
      Serial2.print(GPS.latitude, 4); Serial2.print(GPS.lat);
      Serial2.print(", ");
      Serial2.print(GPS.longitude, 4); Serial2.println(GPS.lon);
      //Serial2.print("Speed (knots): "); Serial2.println(GPS.speed);
      //Serial2.print("Angle: "); Serial2.println(GPS.angle);
      //Serial2.print("Altitude: "); Serial2.println(GPS.altitude);
      //Serial2.print("Satellites: "); Serial2.println((int)GPS.satellites);
    }
  }
}

les resultats

18:37:41.308 → Location: 4315.5605N, 534.6873E
18:37:43.394 → Location: 4315.5620N, 534.6883E
18:37:45.340 → Location: 4315.5629N, 534.6892E
18:37:47.319 → Location: 4315.5639N, 534.6900E
18:37:49.371 → Location: 4315.5654N, 534.6906E
18:37:51.315 → Location: 4315.5664N, 534.6908E
18:37:53.299 → Location: 4315.5678N, 534.6897E
18:37:55.352 → Location: 4315.5688N, 534.6882E
18:37:57.332 → Location: 4315.5698N, 534.6867E
18:37:59.384 → Location: 4315.5703N, 534.6850E
18:38:01.364 → Location: 4315.5708N, 534.6833E
18:38:03.308 → Location: 4315.5712N, 534.6817E
18:38:05.399 → Location: 4315.5717N, 534.6804E
18:38:07.343 → Location: 4315.5732N, 534.6796E
18:38:09.286 → Location: 4315.5737N, 534.6782E
18:38:11.375 → Location: 4315.5737N, 534.6769E
18:38:13.320 → Location: 4315.5727N, 534.6759E
18:38:15.301 → Location: 4315.5717N, 534.6752E
18:38:17.353 → Location: 4315.5708N, 534.6744E
18:38:19.334 → Location: 4315.5698N, 534.6739E
18:38:21.278 → Location: 4315.5688N, 534.6735E
18:38:23.364 → Location: 4315.5678N, 534.6734E
18:38:25.309 → Location: 4315.5664N, 534.6730E
18:38:27.254 → Location: 4315.5654N, 534.6725E
18:38:29.342 → Location: 4315.5639N, 534.6722E
18:38:31.323 → Location: 4315.5634N, 534.6723E
18:38:33.375 → Location: 4315.5625N, 534.6722E
18:38:35.319 → Location: 4315.5615N, 534.6723E
18:38:37.300 → Location: 4315.5615N, 534.6740E
18:38:39.352 → Location: 4315.5620N, 534.6755E
18:38:41.332 → Location: 4315.5634N, 534.6762E
18:38:43.276 → Location: 4315.5649N, 534.6766E
18:38:45.365 → Location: 4315.5659N, 534.6768E
18:38:47.311 → Location: 4315.5673N, 534.6769E
18:38:49.292 → Location: 4315.5688N, 534.6770E
18:38:51.344 → Location: 4315.5703N, 534.6772E
18:38:53.289 → Location: 4315.5712N, 534.6774E
18:38:55.270 → Location: 4315.5727N, 534.6774E
18:38:57.322 → Location: 4315.5742N, 534.6775E
18:38:59.303 → Location: 4315.5742N, 534.6770E
18:39:01.247 → Location: 4315.5747N, 534.6767E
18:39:03.336 → Location: 4315.5747N, 534.6766E
18:39:05.283 → Location: 4315.5747N, 534.6765E
18:39:07.230 → Location: 4315.5747N, 534.6765E

meme si j’ai quelques decalage d’affichage . ca reste jouable.
on a bien toutes les 2 secondes .

Par contre j’ai constaté quand le module est en position fixe , j’ai quelques variations sensibles sur les 2 derniers chiffres des coordonnées. avec une desincremention de pas 1 pendant quelques secondes puis cela se stabiise .
je mets ca sur la qualite du gps et de l’environnement. !!!

si vous avez quelques idees pour basculer sous un tableur type excel …

votre Avis

bon
voila on a pu traiter via python les données .
elles sont exploitables .

Ok.. pour passer sous Excel, vous pouviez générer la sortie avec des tabulations (‘\t’) entre les champs et faire un copier coller dans un fichier csv que vous importiez dans Excel

merci de l'information