Voilà, ca ne marche déjà plus,
Mais j'ai une question super importante.
Es-ce que mon module gps DOIT BOUGER pour afficher une position?????
Car là il est sur ma table et est totalement imobile et n'affiche rien (alors qu'il le fesait, il y a une heure...
Quand je le lève avec la main, par moment il affiche une position. Je ne sais pas si c'est le hasard, mais je n'y crois pas trop, car hier, il affichait constament les position. Mais bon, il n'affiche plus tot rien que quelque chose maintenant.
Pourtant je n'ai pas ajouté beaucoup de code. Tout ce que j'ai ajouté est en commentaire
On m'a dit qu'il fallait remplacer PString? Etes-vous d'accord avec?
Es-ce que mon GPS et ma shield sont de mauvaise qualité? Car ca ne peut pas jouer si ca ne marche pas pendant 3-4 heures, etc....?
Je vais de toute manière essayer dans le train, demain, mais ce code n'est pas sorcier! non? Il reste simple.
Que pensez-vous de mon ajout commenté. Ca ne fait que clignoter une led!!
Merci pour vos idées
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include <PString.h>
TinyGPS gps;
#define RXPIN 2
#define TXPIN 3
SoftwareSerial nss(RXPIN, TXPIN);
char buffer[90];
int count = 0;
PString myString(buffer,sizeof(buffer));
//int redLedPin = 11;
//int greenLedPin = 12;
void setup(){
Serial.begin(4800);
nss.begin(4800);
//pinMode(redLedPin, OUTPUT);
//pinMode(greenLedPin, OUTPUT);
Serial.println("*******************");
Serial.println("Display my position");
Serial.println("*******************");
Serial.println("");
}
/*
void blinkLed(int lPin, int nBlink, int msec) {
if (nBlink) {
for (int i = 0; i < nBlink; i++) {
digitalWrite(lPin, HIGH);
delay(msec);
digitalWrite(lPin, LOW);
delay(msec);
}
}
}
*/
void loop(){
while(nss.available()) {
int c = nss.read();
Serial.println(c);
if (gps.encode(c)) {
float flat, flon, fspeed, falt;
unsigned long fix_age;
gps.f_get_position(&flat,&flon,&fix_age);
fspeed = gps.f_speed_kmph();
falt = gps.f_altitude();
if(fix_age == TinyGPS::GPS_INVALID_AGE)
Serial.println(F("No fix detected"));
else if (fix_age > 5000)
Serial.println(F("WARNING: Possible Stale Data!"));
else {
char index;
myString.print("AT+SSTRSEND=1,\"");
//gps_buffer[index++] = 'AT+SSTRSEND=1,"';
myString.print(flat,DEC);
myString.print(",");
myString.print(flon,DEC);
myString.print(",");
myString.print(fspeed,2);
myString.print(",");
myString.print(falt,2);
myString.print(",");
myString.print(String(count));
myString.print("\"");
Serial.println(myString);
myString.begin();
count++;
//blinkLed(greenLedPin,2,500);
delay(3000);
}
}
}
}
Que me conseillerez-vous?
Changer de GPS? pourtant ca ne semble pas etre un GPS de mauvaise qualité....