Données GMS et écran lcd

Bonjour à tous.
Je suis enseignant en SVT donc pas du tout spécialiste de l'électronique mais je m'y mets pour en faire profiter mes élèves dans le cadre d'un atelier.
Je souhaite réaliser un gps pour localiser des mesures avec différents capteurs (température etc ...) J'ai acheté une arduino uno, un module GPS
http://www.zartronic.fr/module-récepteur-gps-p-454.html?zenid=82624b7426fe6fba863a2493a8298d08
un écran LCD:
http://www.zartronic.fr/module-afficheur-lcd-2004-i2c-twi-p-357.html

J'ai pris le code du wiki associé au GPS. Je l'ai adapté à mon LCD. J'ai bien un affichage sur le LCD mais les coordonnées ne correspondent à rien: lat: 999999999 long 999999999
Sur l'interface série, j'ai bien les donnes bonnes en GPS.
Il s'agit donc du code qui ne transforme pas les données reçues en série en bonnes longitude et latitude.
je ne comprends pas bien comment fonctionne la librairie tinygps et je ne trouve pas de notice.
Est ce quelqu'un aurait un code que je puisse utiliser ou des explications.
Le problème vient du fait que les données séries ne sont pas correctement traitées pour me donner une latitude et une longitude.

Meri beaucoup de votre aide

bonjour,
le code serait bien pour voir les erreurs :wink: et entre balise code

merci pour votre aide. Mon code est le suivant:
#include <TinyGPS.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

TinyGPS gps;
LiquidCrystal_I2C lcd(0x20, 20, 4); //LCD driver pins
int led = 13;

long lat, lon;
unsigned long fix_age, time, date, speed, course;
unsigned long chars;
unsigned short sentences, failed_checksum;
//int year;
//byte month, day, hour, minute, second, hundredths;

int DEG;
int MIN1;
int MIN2;

void LAT() { //Latitude state
DEG=lat/1000000;
MIN1=(lat/10000)%100;
MIN2=lat%10000;

lcd.setCursor(0, 0); // set the LCD cursor position
lcd.print(“LAT:”);
lcd.print(DEG);
lcd.write(0xDF);
lcd.print(MIN1);
lcd.print(".");
lcd.print(MIN2);
lcd.print("’ ");
}
void LON() { //Longitude state
DEG=lon/1000000;
MIN1=(lon/10000)%100;
MIN2=lon%10000;

lcd.setCursor(0, 1); // set the LCD cursor position
lcd.print(“LON:”);
lcd.print(DEG);
lcd.write(0xDF);
lcd.print(MIN1);
lcd.print(".");
lcd.print(MIN2);
lcd.print("’ ");
}

void setup()
{
Serial.begin(38400); //Set the GPS baud rate.
pinMode(led, OUTPUT);

lcd.init(); // start the library
lcd.backlight ();; // set the LCD cursor position
lcd.print(“GPS test”); // print a simple message on the LCD
delay(2000);
}

void loop()
{
while (Serial.available())
{
digitalWrite(led, HIGH);
int c = Serial.read(); // Read the GPS data
if (gps.encode(c)) // Check the GPS data
{
// process new gps info here
}

}
digitalWrite(led, LOW);
gps.get_position(&lat, &lon, &fix_age); // retrieves +/- lat/long in 100000ths of a degree
gps.get_datetime(&date, &time, &fix_age); // time in hhmmsscc, date in ddmmyy

//gps.crack_datetime(&year, &month, &day, //Date/time cracking
//&hour, &minute, &second, &hundredths, &fix_age);

LAT();
LON();

}

merci

Salut infobarquee,
Il faut que tu fasses ta demande dans une autre langue :grin:

Les données que je reçois en série sont de la forme:

$GPGGA,135220.20,,,,,0,03,2.59,,,,,,5E
$GPGSA,A,1,17,18,13,,,,,,,,,,2.78,2.59,1.00
0F
$GPGSV,1,1,04,13,44,138,32,17,31,094,29,18,29,292,34,28,29,049,76
$GPGLL,,,,,135220.20,V,N
4F
$GPRMC,135221.80,V,,,,,,,010415,,,N72
$GPVTG,,,,,,,,,N
30
$GPGGA,135221.80,,,,,0,03,2.59,,,,,,55
$GPGSA,A,1,17,18,13,,,,,,,,,,2.78,2.59,1.00
0F
$GPGSV,1,1,04,13,44,138,32,17,31,094,29,18,29,292,34Ï

avec les bonnes mesures quand je suis à l'extérieur et que cela capte.

bonjour icare. je ne comprends pas ton post. est ce que tu peux m'expliquer pour que je donne les bonnes informations

cela faisait référence à ma réponse

infobarquee:
bonjour,
le code serait bien pour voir les erreurs :wink: et entre balise code

si tu fais tes tests à l'int"rieur et sans capter, ca risque d'être difficile d'afficher quelque chose sur le lcd.
si tu fais la même chose que dehors à l'intérieur, tu devrais avoir des 99999 dans la console.

mais comment fais tu pour afficher les données, il n'y a aucun serial print dans ton code.

Même quand je branche le GPS sans aucun code c'est à dire avec un void setup vide et un void loop vide lorsque j'ouvre la console série, j'ai les données GPS qui s'affichent

chnu62:
Même quand je branche le GPS sans aucun code c'est à dire avec un void setup vide et un void loop vide lorsque j'ouvre la console série, j'ai les données GPS qui s'affichent

ca c'est normal vu que tu es en direct sur RX-TX.

dehors, j'ai la données:
$GPGLL,5009.26837,N,00237.88132,E,153604.60,A,A*68

ce qui est la bonne coordonnée.
Malgré tout, mon LCD affiche toujours 99999999999