Envoyer un message avec une float et une string

Bonjour,

Je vous écris pour vous demander de l’aide. Je suis actuellement en Term S-SI et je prépare mon PPE et dans ce projet j’ai besoin d’envoyer un message avec les coordonnées mais aussi avec devant quelque chose du genre “Longitude :” et “Latitude :”.
J’ai donc réussi à envoyer les coordonnées ainsi que les strings “longitude :”, “latitude :” mais en 4 messages ce qui est pas très pratique et agréable à voir. J’ai pour objectif maintenant de mettre tout ça en un seul message ce que je n’arrive pas à conceptualiser. Si vous pouviez m’aider ça serait cool !
Voici le code :

#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#include <stdio.h>
DFRobot_SIM808 sim808(&Serial);
SoftwareSerial mySerial(2,3);
SoftwareSerial SoftSerial(2,3);

//Numero de telephone destinataire
#define PHONE_NUMBER “+33637595474”

//Contenu du message
#define MESSAGE "Longitude : "
#define MESSAGE2 "Latitude : "
float longitude;
float latitude;
char MESSAGE1[20];

void setup()
{

//mySerial.begin(9600);
Serial.begin(9600);

//******** Initialiser le module sim808 *************
while(!sim808.init()) {
delay(1000);
Serial.print(“Sim808 init error\r\n”);
}
Serial.println(“Sim808 init success”);
Serial.println(“Start to send message …”);

//************* Allumer GPS ************
if( sim808.attachGPS())
Serial.println(“Open the GPS power success”);
else
Serial.println(“Open the GPS power failure”);
}

void loop()
{
if( sim808.getGPS())
{
sim808.sendSMS(PHONE_NUMBER,MESSAGE); //Envoyer “longitude :”
delay(300);
longitude = sim808.GPSdata.lon; //Mettre la valeur de la longitude dans “longitude”
dtostrf (longitude,20,2,MESSAGE1);
sim808.sendSMS(PHONE_NUMBER,MESSAGE1); //Envoyer la longitude
delay(800);
sim808.sendSMS(PHONE_NUMBER,MESSAGE2); //Envoyer “latitude :”
delay(300);
latitude = sim808.GPSdata.lat; //Mettre la valeur de la latitude dans “latitude”
dtostrf (latitude,20,2,MESSAGE1);
sim808.sendSMS(PHONE_NUMBER,MESSAGE1); //Envoyer la latitude + la valeur de la latitude
}
}

Merci d’avance !

Bonjour,

Mon français n’est pas le meilleur mais j’essayerai vous aider. Vous pouvez réorganiser votre loop code comme ça:

void loop(){
  if (sim808.getGPS()){
    longitude = sim808.GPSdata.lon;     //Mettre la valeur de la longitude dans "longitude"
    delay(300);
    dtostrf (longitude, 20, 2, MESSAGE1);
    sim808.sendSMS(PHONE_NUMBER,MESSAGE + MESSAGE1); //Envoyer "longitude :" + la longitude
    delay(800);
  }
}

Ça seulement enverra un SMS avec ce message: Longitude: . Je vous conseil d’essayer seulement avec la longitude d’abord. Après, si ça fonctionne, vous pourriez inclure le MESSAGE2 et un autre variable “char” qui aura la valeur de la latitude, de la même façon: avec un “+”

Je crois que ça pourrait fonctionner mais vous devez essayer!

bon chance!

Votre français est très bien ahah. J'ai essayé de faire ce que vous m'avez conseillé j'avais déjà essayé avec 2 "+" mais ça ne marchait pas et j'ai essayé avec un seul "+" mais ça ne marche toujours pas. Cela ne veut même pas compiler, ça me met un message d'erreur. Apparemment on ne peut pas mettre deux variables dans la fonction (le message d'erreur : "invalid operands of types 'const char [13]' and 'char [20]' to binary 'operator+' "). Je n'arrive pas à imaginer une autre option pour envoyer en un seul message... Merci quand même !