Problème avec module gps grove v1.2 connecté à la carte

Bonjour,

j'aimerais avoir votre aide pour un projet que je réalise. Je précise que je suis plutôt un débutant avec les cartes Arduino. Sans rentrer dans des détails superflus : j'ai besoin de récupérer la localisation de la carte arduino dans le cadre de mon projet. Pour cela j'ai acheté ceci :

Ce petit module semblait parfait : bon rapport qualité-prix selon plusieurs sites, très précis et n'utilise pas trop d'énergie. Mais problème : je n'arrive pas à obtenir les coordonnées gps avec. Le code suivant :

#include <SoftwareSerial.h>
 
SoftwareSerial SoftSerial(2, 3);
unsigned char buffer[64];
int count=0;   
 
void setup() {
  SoftSerial.begin(9600);
  Serial.begin(9600); 
}
 
void loop() {
  if (SoftSerial.available())                    
    {
        while(SoftSerial.available())            
        {
            buffer[count++]=SoftSerial.read();   
            if(count == 64)break;
        }
        Serial.write(buffer,count);              
        clearBufferArray();                      
        count = 0;                               
    }
}
 
void clearBufferArray()                     
{
    for (int i=0; i<count;i++)
    { buffer[i]=NULL;}                      
}

Me permet d'afficher dans le moniteur série les "phrases" NMEA contenant normalement l'information mais elles sont toutes invalides. Je le sais surtout car celle qui commence par $GPRMC a systématiquement un V ce qui indique que la phrase est invalide d'après ce site qui a l'air plutôt fiable :

http://www.catb.org/gpsd/NMEA.html

Pensant mon code faux j'ai essayé de me servir d'une bibliothèque nommée TinyGPS et de ses dérivées TinyGPS++ ou encore TinyGPSPlus mais j'ai remarqué que dans le code :

#include "TinyGPS++.h"
#include "SoftwareSerial.h"

SoftwareSerial serial_connection(0, 1); //RX=pin 10, TX=pin 11
TinyGPSPlus gps;//This is the GPS object that will pretty much do all the grunt work with the NMEA data
void setup()
{
  Serial.begin(9600);//This opens up communications to the Serial monitor in the Arduino IDE
  serial_connection.begin(9600);//This opens up communications to the GPS
  Serial.println("GPS Start");//Just show to the monitor that the sketch has started
}

void loop()
{
  while(serial_connection.available())//While there are characters to come from the GPS
  {
    //gps.encode(serial_connection.read());//This feeds the serial NMEA data into the library one char at a time
    //Serial.println("Et alors ? Mais qu'est-ce que ça fait !");
    char c = serial_connection.read();
    Serial.print("On a recupere : ");
    Serial.println(c);
    if(c != -1)
    {
      
      if(gps.encode(c) == true)
      {
        
      }
      else
      {
        Serial.println("Encodage rate");
      }
      
    }
    else
    {
      Serial.println("La lecture a echoue");
    }
    
  }
  if(gps.location.isUpdated() == true)//This will pretty much be fired all the time anyway but will at least reduce it to only after a package of NMEA data comes in
  {
    
    //Get the latest info from the gps object which it derived from the data sent by the GPS unit
    Serial.println("Satellite Count:");
    Serial.println(gps.satellites.value());
    Serial.println("Latitude:");
    Serial.println(gps.location.lat(), 6);
    Serial.println("Longitude:");
    Serial.println(gps.location.lng(), 6);
    Serial.println("Speed MPH:");
    Serial.println(gps.speed.mph());
    Serial.println("Altitude Feet:");
    Serial.println(gps.altitude.feet());
    Serial.println("");
    
  }
}

La commande gps.encode() renvoit toujours faux et donc les différentes données de localisation ne sont jamais mises à jour. Si vous en avez besoin pour mieux comprendre ce code voici une page expliquant brièvement à quoi servent les fonctions de TinyGPS++ : TinyGPS++ | Arduiniana

J'ai fait énormément de recherche et je revenais toujours à la même solution : il suffit d'aller dehors pour que le module gps puisse bien détecter les satellites. J'ai essayé en attendant pendant plus de 30 minutes avec un ciel bien dégagé ça n'a rien changé. Puis j'ai pensé que si ce n'est pas le code le problème c'est probablement les phrases NMEA et c'est là que je me suis aperçu qu'elles sont toujours invalides.

Grâce au logiciel SIMComGPS DEMO V1.07 dont j'ai entendu parler ici : Grove - GPS | Seeed Studio Wiki

J'ai pu tester directement le montage sans passer par mon code donc mais par ce logiciel et j'ai obtenu le résultat suivant en extérieur :

E, bas à gauche vous pouvez voir les fameuses phrases NMEA toutes fausses... Apparememnt le module détecte des satellites mais comme vous pouvez le voir il ne reçoit rien concernant latitude et longitude. Je ne sais plus quoi faire... Avez-vous une idée du problème ?

Comment votre arduino / GPS est-il alimenté ?

Pour l'instant comme le projet n'en est qu'à ses débuts, la carte arduino (qui est en fait une Elegoo Uno R3) est reliée à mon ordinateur grâce à un câble USB.

Ok et quand vous allez dehors c’est pareil?

La prise antenne est-elle bien enclenchée ?

Il se peut que votre carte soit déficiente.

Oui quand je vais dehors c'est pareil : toutes les phrases sont fausses même si j'attends pendant plus de 15 minutes.

Comment je peux vérifier que la prise antenne est bien enclenchée ?

Il est peu probable que le problème vienne de la carte malheureusement : j'ai déjà essayé avec une carte Arduino Uno R3 classique qui fonctionne parfaitement et le résultat était le même.

Pas de l’Arduino, pb de carte gps sans doute

Débranchez et rebranchez en appuyant bien verticalement l’antenne, vérifiez que le petit « bitonio » au milieu n’est pas tordu

Je commençais à penser aussi que le gps est défectueux néanmoins il n'a subi aucun mauvais traitement de ma part depuis que je l'ai reçu donc cela serait vraiment étrange qu'il ne fonctionne pas...

J'ai tenté de brancher puis rebrancher, le petit élément sur l'espèce de pavé qui termine le fil semble en parfait état : aucune trace de choc ni de déformation. Mais, j'ai encore des phrases NMEA toutes fausses dans mon moniteur série et dans le logiciel SIMCom GPS.

Bonjour,

finalement j'ai décidé d'acheter un autre module GPS pensant celui que j'avais défectueux et j'ai exactement le même problème qu'avant mais avec le modèle suivant :

[url=https://letmeknow.fr/shop/capteurs/1247-module-gps-3007591023705.html?search_query=gps&results=10[/url]

Les phrases NMEA sont une fois de plus toutes fausses sans raison apparente. N'y aurait-il pas une solution ou du moins une explication à ce problème ? Je précise que cette fois on a obtenu le module on l'achetant directement en magasin donc il ne peut pas avoir subi de mauvais traitement lors du transport.