Danke für die Antworten
Da mein Code aus diversen Beispielen erstellt wurde, ist er wahrscheinlich noch sehr chaotisch.
Dieser funktioniert soweit recht gut.
Die Fernbedienung ist halt nicht die mit der besten Leistung.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#include <IRremote.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
float humidity, temperature;
char incomingByte;
int lines = 0;
int chars = 0;
int temphigh = 0;
int RECV_PIN = 9;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
dht.begin();
display.begin(SSD1306_SWITCHCAPVCC);
}
void loop() {
humidity = dht.readHumidity();
temperature = dht.readTemperature();
/*
// Temperatur für Einschaltung
if (temperature > 24.00) {
temphigh = 1;}
*/
// IR-Empänger Teil Beginn
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
irrecv.resume();
}
display.clearDisplay(); //Display leeren
if (results.value== 16738455){ // FB Taste 1
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Temp:");
display.println(temperature);
display.display();
delay(2000);
display.clearDisplay();
display.setCursor(0,0);
display.println("Luft:");
display.println(humidity);
display.display();
delay(2000);
}
if (results.value== 16750695){ // FB Taste 2
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Temp:");
display.println(temperature);
display.setCursor(0,30);
display.println("Luft:");
display.println(humidity);
display.display();
delay(200);
}
}