#include "DHTesp.h"
#include <ESP32Servo.h>
const int ldrPin = 12;
const int LED_G = 2;
const int DHT_PIN = 15;
const int servoPin = 4;
const int LED_ALARM = 27;
const int MELDER = 5;
const int AUS = 26;
DHTesp dht;
Servo servo;
int ausschalten = 0;
int bewegung = LOW;
int pos = 0;
//componente suchen und libary suchen
void setup() {
servo.attach(servoPin, 500, 2400);
pinMode(MELDER, INPUT);
pinMode(AUS, INPUT_PULLUP);
pinMode(LED_ALARM, OUTPUT);
// Analog-Eingang für den LDR konfigurieren
pinMode(ldrPin, INPUT_PULLUP);
pinMode(LED_G, OUTPUT);
dht.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
Serial.begin(115200);
temp();
temp2();
licht();
ausschalten = digitalRead(AUS);
if (MELDER == HIGH){
blinken();
}
Serial.println(ausschalten);
// Wert ausgeben
//Serial.print("LDR-Wert: ");
//Serial.println(ldrWert);
}
void blinken() {
while (ausschalten == 0)
digitalWrite(LED_ALARM, LOW);
delay(2000);
digitalWrite(LED_ALARM, HIGH);
delay(2000);
if (AUS==HIGH){
int ausschalten = 1;
}
}
void temp(){
TempAndHumidity data = dht.getTempAndHumidity();
//Fenster öffnet bei mehr als 25°C und schließt bei weniger als 25°C
if (data.temperature <= 25){
servo.write(pos+90);
} else {
servo.write(pos-90);
}
}
void temp2(){
//Temperaturmessung und Serielle Ausgabe später Display Aushgabe
TempAndHumidity data = dht.getTempAndHumidity();
delay(5000);
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
}
void licht(){
int ldrWert = analogRead(ldrPin); // Wert vom LDR auslesen
if (ldrWert<=100){
digitalWrite(LED_G, LOW); // Lampe geht an bei wenig Lux
} else {
digitalWrite(LED_G, HIGH);
}
}