Bonjour, je doit pour mon projet pouvoir envoyer a un numero la postion gps de l'arduino quand celui ci le demande par gps. Mais j'ai un probleme dans mon programme , d'apres des recherche c'est a cause des librairies GSM et GPS mais je n'ai pas de solution
Voila le programme
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include <Wire.h>
#include <GSM.h>
int val = 0; // variable to store the read value
const float c = 11;
const float d = 22;
define PINNUMBER "0000" //definir le code PIN
// initialiser l'instance bibliothèque
GSM gsmAccess;
GSM_SMS sms;
TinyGPS gps;
SoftwareSerial ss(7, 6);
char remoteNumber[20];
void setup()
{
Serial.begin(115200);
ss.begin(4800);
Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println("by Mikal Hart");
Serial.println();
Serial.begin(9600);
Serial.println("SMS Messages Receiver");
//Etat de la connection
boolean notConnected = true;
// Démarrer le shield GSM
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;// Si la carte sim ou le shield gsm n'est pas connecter
else
{
Serial.println("Non connecter");// Afficher "non connecter"
delay(1000);
}
}
Serial.println("GSM initialiser");
Serial.println("En attente de message");
}
void loop()
{
GPS();
}
void GPS(){
char c;
bool newData = false;
unsigned long chars;
unsigned short sentences, failed;
// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (ss.available())
{
char c = ss.read();
// Serial.write(c); // uncomment this line if you want to see the GPS data flowing
if (gps.encode(c)) // Did a new valid sentence come in?
newData = true;
}
}
if (newData)
{
// If there are any SMSs available()
if (sms.available())
{
Serial.println("Message reçus du:"); //Imprimer sur le moniteur "Message reçus de:"
// Get remote number
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
}
while(c=sms.read())
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.print("LAT=");
Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
Serial.print(" LON=");
Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
Serial.print(" SAT=");
Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
Serial.print(" PREC=");
Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
}
gps.stats(&chars, &sentences, &failed);
Serial.print(" CHARS=");
Serial.print(chars);
Serial.print(" SENTENCES=");
Serial.print(sentences);
Serial.print(" CSUM ERR=");
Serial.println(failed);
if (chars == 0)
Serial.println("** No characters received from GPS: check wiring **");
sms.beginSMS("0000000000");
sms.print(TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : 6);
sms.endSMS();
sms.flush();
}
}
int readSerial(char result[])
{
int i = 0;
while (1)
{
while (Serial.available() > 0)
{
char inChar = Serial.read();
if (inChar == '\n')
{
result[i] = '\0';
Serial.flush();
return 0;
}
if (inChar != '\r')
{
result[i] = inChar;
i++;
}
}
}
}
Et en message d'erreur
GSM\GSM3SoftSerial.cpp.o: In function `__vector_3':
C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3SoftSerial.cpp:499: multiple definition of `__vector_3'
SoftwareSerial\SoftwareSerial.cpp.o:C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:227: first defined here
GSM\GSM3SoftSerial.cpp.o: In function `GSM3SoftSerial::spaceAvailable()':
C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3SoftSerial.cpp:487: multiple definition of `__vector_4'
SoftwareSerial\SoftwareSerial.cpp.o:C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:392: first defined here
GSM\GSM3SoftSerial.cpp.o: In function `GSM3SoftSerial::spaceAvailable()':
C:\Program Files (x86)\Arduino\libraries\GSM\src/GSM3SoftSerial.cpp:487: multiple definition of `__vector_5'
SoftwareSerial\SoftwareSerial.cpp.o:C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:392: first defined here
collect2.exe: error: ld returned 1 exit status
J'ai vraiment besoin d'aide alors si vous avez des idée je suis preneur