Bonjour, je travaille sur un projet qui est de pouvoir recevoir des coordonnées par sms. Voici le fonctionnement du systeme : En recevant un sms, arduino va calculer les coordonnées gps et les envoyer en retour.
Le problème c'est que le gps n'est pas détécté.
Je travaille avec un shield GSM, une carte Arduino UNO et un gps EM406 breakout
Tout marche en individuel mais je n'arrive pas à les faire fonctionner en même temps
Voici mon programme :
#include <GSM.h>
#include <TinyGPS++.h>
#include <AltSoftSerial.h>
#define PINNUMBER "0000"
GSM gsmAccess;
GSM_SMS sms;
char senderNumber[20];
int RXPin = 4;
int TXPin = 5;
int GPSBaud = 4800;
TinyGPSPlus gps;
AltSoftSerial gpsSerial(RXPin, TXPin);
void setup()
{
Serial.begin(9600);
while (!Serial)
{;}
gpsSerial.begin(GPSBaud);
Serial.println("Envoi de coordonnees gps apres reception d'un quelquoncque sms");
boolean notConnected = true;
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
{
notConnected = false;
} else
{
Serial.println("Not connected");
delay(1000);
}
}
Serial.println("GSM initialized");
}
void loop()
{
char c;
if (sms.available())
{
Serial.println("SMS recu de :");
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);
if(sms.peek()=='#')
{
Serial.println("SMS invalide");
}
if(c=sms.read())
{
Serial.print(c);
Serial.println("\nFIN DU MESSAGE");
delay(1000);
Serial.println("Coordonnees GPS");
displayInfo();
}
}
}
void displayInfo()
{
Serial.print(F("Location: "));
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 20);
Serial.print(F(","));
Serial.print(gps.location.lng(), 20);
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" Date/Time: "));
if (gps.date.isValid())
{
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.year());
}
else
{
Serial.print(F("INVALID"));
}
Serial.print(F(" "));
if (gps.time.isValid())
{
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour()+2);
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
}
else
{
Serial.print(F("INVALID"));
}
Serial.println();
}
PS : il n'y a pas encore la partie envoi du sms, il y a que la partie réception et affichage des coordonnées
D