Problem mit 433 Mhz Modul, Virtual Wire und DHT22

Hallo,

ich bin neu hier im Forum und hoffe ihr könnt mir helfen! Ich bin 15 Jahre alt und lerne zurzeit C (Konsolenanwendungen). Jetzt habe ich mir auch ein paar Arduinos gekauft. Dazu die 433 Mhz Module
MX-05V (Empfänger), MX-FS-03V (Sender) und den Temperatursensor DHT 22.
Ich möchte die Sensorwerte des DHT22 mit einem Arduino Nano auslesen und diese dann mit dem Sender zu einen anderen Arduino Nano schicken zum weiterverarbeiten.

Hier mein Sender-Code:

#include <DHT.h>
#include <VirtualWire.h>  

#define DHTPIN 2
#define DHTTYPE DHT22
#undef int
#undef abs
#undef double
#undef float
#undef round

DHT dht(DHTPIN, DHTTYPE);

void setup()
{
    // Initialise the IO and ISR
    vw_set_ptt_inverted(true);      
    vw_setup(2000);                
    vw_set_tx_pin(7);                
}
 
void loop()
{
    float hum = dht.readHumidity();       
    float temp = dht.readTemperature();   
    
    char msg[10];
    sprintf(msg,"%f", temp);
   
     
   vw_send((uint8_t *)msg, strlen(msg));
   vw_wait_tx();                                         
   delay(2000);
}

Hier mein Empfänger-Code:

#include <VirtualWire.h> 
#undef int
#undef abs
#undef double
#undef float
#undef round

void setup()
{
    Serial.begin(9600);    
 

    vw_set_ptt_inverted(true);    
    vw_setup(2000);                   
    vw_set_rx_pin(7);              
    vw_rx_start();                      
}
 
void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
 
    if (vw_get_message(buf, &buflen)) 
    {
    int i;
    
        
    for (i = 0; i < buflen; i++)
    {
        Serial.print(buf[i]);  
        }
    Serial.println("");
     }
}

Ich scheitere aber schon die Sensor-Werte (floats) zu senden. Irgendwie habe ich das noch nicht verstanden. Ich hab auch schon lange genug gegoogelt aber nichts treffendes gefunden.
Könnt ihr mir sagen was ich falsch gemacht bzw. verstanden habe ?

Wäre euch sehr dankbar !

sprintf unterstützt für Arduino keine floats.
Probiere es mal mit Integern.

Oder dtrostrf():

http://www.mikrocontroller.net/topic/86391
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga060c998e77fb5fc0d3168b3ce8771d42