Renvoyer une valeur d'un DS18B20 via SMS

Bonjour a tous,

Je vous soumet mon soucis, pas bien compliquer mais je butte.

J’utilise un module GSM a base de SIM900, avec la librairie.
http://www.gsmlib.org/

J’ai développez mon appli en fonction des exemples du site, j’ affiche 2 températures de DS18B20 différent, sur un LCD 2x16, je peux coller un relai, ou allumer des led, les deux capteurs répondent bien sur le terminal, jusque là tout fonctionne, mais ce que j’aimerai, c’est récupérer les deux valeurs de températures via SMS, via (sms.SendSMS(number, message));

Je n’arrive pas a récupérer ses deux valeurs via char et les envoyer via SMS:

#include "SIM900.h"
#include "sms.h"
#include <OneWire.h>
#include <Wire.h> 
#include <SoftwareSerial.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 4

LiquidCrystal_I2C lcd(0x27,16,2); //LCD en I2C
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

DeviceAddress salon = { 0x10, 0x5E, 0xE8, 0x33, 0x02, 0x08, 0x00, 0xDB };   //Sensor 1
DeviceAddress chambre = { 0x10, 0xBE, 0xCA, 0x33, 0x02, 0x08, 0x00, 0x89 };  //Sensor 2

SMSGSM sms;
 
char number[]="0600000000";  //Numero de SIM de destination
char message[180];
char pos;
char *p;

char tmpsalon[0]; // valeur capteur 1  ?
char tmpch[0]; // valeur capteur 2  ?

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  sensors.begin();
  sensors.setResolution(salon, 10);
  sensors.setResolution(chambre, 10);
  Serial.begin(19200);
  if (gsm.begin(19200))
  Serial.println("\nstatus=READY");
  else 
  Serial.println("\nstatus=IDLE");
  (sms.SendSMS(number, "Demarrage ok")); //envoie d'un SMS au demarrage
}

void loop()
{
  pos=sms.IsSMSPresent(SMS_UNREAD);
  temp();
  void tsalon();
  void tchambre();
  Serial.println((int)pos);
  if((int)pos>0&&(int)pos<=20){
    Serial.print("SMS incomming, POS=");
    Serial.println((int)pos);
    message[0]='\0';
    sms.GetSMS((int)pos,number,message,180);
    p=strstr(message,"password");
    if(p){
 
     Serial.println("Passwd OK !");
        p=strstr(message,"temp salon");
        if(p){
          Serial.println("sms temperature salon");
          (sms.SendSMS(number, "Il fait:" (char* tmpsalon) "dans la salon"));     // c'est là  que sa coince !
          }
        else{
        p=strstr(message,"temp chambre");
        if(p){
          Serial.println("sms temperature chambre");
          (sms.SendSMS(number, "Il fait:" (char* tmpch) "dans la chambre"));    // c'est là  que sa coince !
        }
      }
    }
  }
  delay(500);
}

void tsalon(DeviceAddress salon)
{
  float tempC = sensors.getTempC(salon);
  if (tempC == -127.00) {
    Serial.print("Error getting temperature");
  } else {
    lcd.setCursor(0, 0);
    lcd.print("Temp salon:");
    lcd.print(tempC);
  }
}

void tchambre(DeviceAddress chambre)
{
  float tempC = sensors.getTempC(chambre);
  if (tempC == -127.00) {
    Serial.print("Error getting temperature");
  } else {
    lcd.setCursor(0, 1);
    lcd.print("Temp chambre 1:");
    lcd.print(tempC);
  }
}

void temp(void)
{
  delay(500);
  Serial.print("Getting temperatures...\n\r");
  sensors.requestTemperatures();
  Serial.print("Temp salon:");
  tsalon(salon);
  Serial.print("\n\r");
  Serial.print("Temp chambre:");
  tchambre(chambre);
  Serial.print("\n\r");
}

Merci a tous.

La solution s'appelle sprintf()
http://www.cplusplus.com/reference/cstdio/sprintf/

Bonsoir B@tto,

et merci pour ta réponse, mes notions de C date de 15ans en arrière, je n'est pas réussi a mettre en application, sprintf()
en revanche sur la page How to send and receive SMS with GSM/GPRS & GPS shield - Open Electronics - Open Electronics il parle de "strcat", jai donc modifier mon code, j'ai donc créer deux buffer

char buffer2[6];
char buffer1[6];
char message_str[10]="Il fait:";

Ce que je n'arrive pas a faire c'est envoyer les deux valeurs des capteurs dans ces buffers, il faut peut etre faire un float, mais je ne connais pas la démarche. ou les placer ? dans la boucle, avant le setup ?

D'autre part, sms.DeleteSMS((int)pos); ne fonctionne pas correctement, les sms s'accumule sur la SIM, j'ai remonter le bug a l'auteur de la librairie.

Bonne soirée.