#include "DHT.h" #include RCSwitch mySwitch = RCSwitch(); int AUSG3 = 3; // Ausgang Pin 3 Lüfter int AUSG4 = 4; // Ausgang Pin 4 Klappe Spannung int AUSG5 = 5; // Ausgang Pin 5 Klappe zu / auf int Funk = 2; // Zustand Funkeingang Auto int count1 = 1; int on = 0; #define DHTPIN1 9 #define DHTPIN2 10 #define DHTTYPE DHT22 //DHT11, DHT21, DHT22 #define DATA_PIN 2 // Funkempfänger DHT dht1(DHTPIN1, DHTTYPE); //Temperaturfühler Pin 9 Büro t1 DHT dht2(DHTPIN2, DHTTYPE); //Temperaturfühler Pin 10 Wintergarten t2 static unsigned long count = 0; void setup() { pinMode(AUSG3, OUTPUT); pinMode(AUSG4, OUTPUT); pinMode(AUSG5, OUTPUT); pinMode(DATA_PIN, INPUT); Serial.begin(9600); Serial.println("DHT22 - Test!"); mySwitch.enableReceive(0); Serial.println("rf_sniffer started"); dht1.begin(); dht2.begin(); } void loop() { float h1 = dht1.readHumidity(); //Luftfeuchte auslesen float t1 = dht1.readTemperature(); //Temperatur auslesen float h2 = dht2.readHumidity(); //Luftfeuchte auslesen float t2 = dht2.readTemperature(); //Temperatur auslesen // Prüfen ob eine gültige Zahl zurückgegeben wird. Wenn NaN (not a number) zurückgegeben wird, dann Fehler ausgeben. if (isnan(t1) || isnan(h1)) { Serial.println("DHT22 konnte nicht ausgelesen werden"); } else { // Serial.print("Luftfeuchte: "); // Serial.print(h1); // Serial.print(h2); // Serial.print(" %\t"); // Serial.print("Temperatur1: "); // Serial.print(t1); // Serial.print("Temperatur2: "); // Serial.print(t2); // Serial.println(" C"); } if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("Unknown encoding"); } else { Serial.print("Received "); Serial.print( mySwitch.getReceivedValue() ); Serial.print(" / "); Serial.print( mySwitch.getReceivedBitlength() ); Serial.print("bit "); Serial.print("Protocol: "); Serial.println( mySwitch.getReceivedProtocol() ); } if (mySwitch.getReceivedValue() == hier Code eintragen) Funk = 1; //Sendebefehl 10001 1 1 //Lüfter Ein if (mySwitch.getReceivedValue() == hier Code eintragen) Funk = 0; //Sendebefehl 10001 1 0 //Lüfter Aus if (mySwitch.getReceivedValue() == hier Code eintragen) Funk = 2; //Sendebefehl 10001 2 1 //Lüfter Auto Serial.print(Funk); mySwitch.resetAvailable(); count = 0; } else { if (++count == 0) Serial.println("no activity"); } if (Funk == 1) on = 1; if (Funk == 0) on = 0; if ((Funk == 2) && (t2 > (t1 + 2)) && (t1 < 25)) on = 1; if ((Funk == 2) && (t2 < (t1 + 2))) on = 0; if ((Funk == 2) && (t1 > 24)) on = 0; if ((on == 1) && (count1 <= 19999)) count1 = count1 + 1; if ((on == 0) && (count1 >= 1)) count1 = count1 - 1; if ((on == 1) && (count1 > 5) && (count1 < 19000)) digitalWrite(AUSG4, LOW), digitalWrite(AUSG5, LOW); // Klappe auf if ((on == 1) && (count1 > 19500)) digitalWrite(AUSG4, HIGH), digitalWrite(AUSG5, HIGH); // Klappe nach 150 sek aus if ((on == 1) && (count1 > 10000)) digitalWrite(AUSG3, LOW); // Lüfter nach 150 sek Ein if ((on == 0) && (count1 > 10) && (count1 < 19500)) digitalWrite(AUSG4, LOW), digitalWrite(AUSG5, HIGH); // Klappe zu if ((on == 0) && (count1 < 5)) digitalWrite(AUSG4, HIGH), digitalWrite(AUSG5, HIGH); // Klappe aus if ((on == 0) && (count1 < 19500)) digitalWrite(AUSG3, HIGH); // Lüfter aus Serial.println(count1); }