Hallo liebes Forum,
zuallererst: Ich bin ein wahrer Anfänger und versuche gerade ein Projekt zu realisieren und brauche Hilfe bei folgendem Teilabschnitt: DHT 22 Sensor Temperatur Daten am Arduino UNO über ein 433 MhZ Sender Modul an ein Empfängermodul schicken.
Hier der Code:
#include <VirtualWire.h>
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
const int transmit_pin = 12;
struct package
{
float temperature ;
};
typedef struct package Package;
Package data;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
vw_set_tx_pin(transmit_pin);
vw_set_ptt_inverted(true);
vw_setup(500); // Bits pro sek
}
void loop()
{
vw_send((uint8_t *)&data, sizeof(data));
vw_wait_tx();
delay(2000);
}
void readSensor()
{
dht.begin();
// READ DATA
Serial.print("DHT22, \t");
delay(1000);
data.temperature = dht.readTemperature();
Serial.print(data.temperature);
}
Setze deinen Sketch bitte in Code-Tags, damit wir den auch mit mobilen Geräten gut lesen können.
Schaltfläche </> oben links im Editorfenster.
Hi
Meine Glaskugel meint, daß Du den VW zum Schwätzen benutzt.
Von Funk hat Sie aber Nichts gesagt.
MfG
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);
}