Ayuda con sprintf

Hola leyendo este hilo Función para convetir un float en un String. - Software - Arduino Forum me e encontrado que si utilizo lo que ustedes han expuesto trabaja bien pero solo con una variable, pero la segunda se pierde, me explico mejor tengo un gps que toma la latitud y longitud ambos como flotantes, la idea es enviar un sms con los dos valores a través de sprintf obviamente en un solo mensaje pero no logro crear el empaque para enviarlos, alguna idea, desde ya muchas gracias adjunto el codigo.

float latitude,longitude;

gps.f_get_position(&latitude, &longitude);
gps.stats(&chars, &sentences, &failed_checksum);

char* buffn="";
char* buff="";
dtostrf(longitude,10,6,buff);
dtostrf(latitude,10,6,buffn);
concatenada
sprintf (string,"Latitud: %d|Longitud: %d| con s ", buffn,buff);
Serial.println(string);

Aspecto aproximado que hubiera tenido tu post si hubieras leído detenidamente las normas.

xtremixt:
Hola leyendo este hilo http://forum.arduino.cc/index.php?topic=277153.0 me e encontrado que si utilizo lo que ustedes han expuesto trabaja bien pero solo con una variable, pero la segunda se pierde, me explico mejor tengo un gps que toma la latitud y longitud ambos como flotantes, la idea es enviar un sms con los dos valores a través de sprintf obviamente en un solo mensaje pero no logro crear el empaque para enviarlos, alguna idea, desde ya muchas gracias adjunto el codigo.

float latitude,longitude;

gps.f_get_position(&latitude, &longitude);
gps.stats(&chars, &sentences, &failed_checksum);

char* buffn="";
char* buff="";
 dtostrf(longitude,10,6,buff);
 dtostrf(latitude,10,6,buffn);
 concatenada
  sprintf (string,"Latitud: %d|Longitud: %d| con s ", buffn,buff);
  Serial.println(string);

Por favor, echa un vistazo a las normas del foro, y aprende a manejar un poco los distintos iconos del editor para que tus post tengan un aspecto más adecuado. Gracias.

Y ahora paso a responderte lo que creo que he visto.
En primer lugar, los buffers buffn y buff son cadenas vacías, con lo que cuando hagas el dtostrf e intente almacenar algo en ellos, se van a desbordar, con consecuencias imprevisibles.
Define ambos, bien metiendo entre sus comillas un número de caracteres suficientes para lo que vas a enviar, o bien en la forma char buffn[20]; (reservaría 20 caracteres).
Y luego, en el sprintf, creo que en lugar de %d deberías poner %s, pues los parámetros son cadenas.
Prueba y comentas.
Saludos.

Gracias finalmente lo solucione solo por ensayo y error, y el resultado que quedo es esto, espero les sirva a otra persona, asumo que se pueden ir creando mas cadenas para mas sensores o añadir mas variables al mensaje.saludos a todos.

char lat [15];
char lon [15];
char string [160];
float latitude;
float longitude;
gps.f_get_position(&latitude, &longitude);
gps.stats(&chars, &sentences, &failed_checksum);
dtostrf(latitude,10,6,lat);
dtostrf(longitude,10,6,lon);
sprintf (string,"Latitud,Longitud: %s,%s| blablablabla blabla blablabla ", lat,lon);
Sim800l.sendSms("+569xxxxxxxx",string);

Y para cuando vas a leer las Normas y usar tags?
Vuelve a cada post el #0 y el #2 y edítalos por favor.
Vas a More, luego Modify, luego selecciona todo el código y le das click a </> arriba del emoticon