structs brauchen kein typedef, der DHT braucht kein delay, die Leseroutine sollte man auch aufrufen.
Wirklich übersetzen/testen kann ich den Kode nicht, da ich nicht weiss welche VirtualWire Library du benutzt,
aber du kannst ihn ja mal testen.
#include <VirtualWire.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
const byte transmit_pin = 12;
struct Package {
float temperature ;
} data;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
vw_set_tx_pin(transmit_pin);
vw_set_ptt_inverted(true);
vw_setup(500); // Bits pro sek
}
void loop() {
readSensor();
vw_send((uint8_t *)&data, sizeof(data));
vw_wait_tx();
delay(2000);
}
void readSensor() {
Serial.print("DHT22, \t");
data.temperature = dht.readTemperature();
Serial.print(data.temperature);
}