1 Code-Erklärung
Luca7255 edited this page 2024-03-20 17:10:01 +00:00
#include "ESPAsyncWebServer.h"
#include <Arduino.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include "WiFi.h"

// Definiere die Pins für den DHT-Sensor und den Piezo-Lautsprecher
const int DHT_PIN = 4;
const int PIEZO_PIN = 17;

// Definiere die Pins für die LEDs
const int LEDGREEN_PIN = 12;
const int LEDYELLOW_PIN = 32;
const int LEDRED_PIN = 26;

// Definiere den Pin für die Hintergrundbeleuchtung des LCDs
const int LEDWH_PIN = 13;

// Definiere SSID und Passwort für die WLAN-Verbindung
const char* ssid ="";
const char* password="";

// Erstelle einen AsyncWebServer auf Port 80
AsyncWebServer server(80);

// Initialisiere den vorherigen Rating-Wert auf -1
int prevRating = -1;

// Initialisiere den DHT-Sensor mit dem angegebenen Pin
DHT dht(DHT_PIN, DHT11);

// Funktion zum Lesen der Temperatur vom DHT-Sensor
String readDHTTemperature() {
  float t = dht.readTemperature();
  if (isnan(t)) {    
    Serial.println("Fehler beim Lesen des DHT-Sensors!");
    return "--";
  }
  else {
    Serial.println(t);
    return String(t);
  }
}

// Funktion zum Lesen der Luftfeuchtigkeit vom DHT-Sensor
String readDHTHumidity() {
  float h = dht.readHumidity();
  if (isnan(h)) {
    Serial.println("Fehler beim Lesen des DHT-Sensors!");
    return "--";
  }
  else {
    Serial.println(h);
    return String(h);
  }
}

// HTML-Seite mit Platzhaltern für Temperatur und Luftfeuchtigkeit
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
  <!-- CSS-Stile für die HTML-Seite -->
</head>
<body>
  <h2>ESP32 DHT</h2>
  <p>
    <!-- Temperaturanzeige -->
  </p>
  <p>
    <!-- Luftfeuchtigkeitsanzeige -->
  </p>
</body>
<script>
// JavaScript-Code für die Aktualisierung der Sensorwerte
</script>
</html>)rawliteral";

// Funktion zum Ersetzen der Platzhalter in der HTML-Seite mit den aktuellen Sensordaten
String processor(const String& var){
  if(var == "TEMPERATURE"){
    return readDHTTemperature();
  }
  else if(var == "HUMIDITY"){
    return readDHTHumidity();
  }
  return String();
}

// Initialisiere ein LiquidCrystal-Objekt für das LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);

float temp;
float humid;

// Funktion zur Wiedergabe eines Warnsignals
void playWarnTone() {
  // Piezo-Lautsprecher wird kurz aktiviert
}

// Funktion zum Ausschalten aller LEDs
void OFFLEDS() {
  // Alle LEDs werden ausgeschaltet
}

// Funktion zur Aktualisierung des LCDs mit den aktuellen Sensordaten
void UpdateLCD() {
  // LCD wird aktualisiert
}

void setup() {
  // Initialisierungen und Konfigurationen werden durchgeführt
}

void loop() {
  // Sensordaten werden gelesen und verarbeitet
}