ESP8266 DHT22 Server

ESP8266 DHT 22

Was macht dieses Projekt?

In diesem Tutorial zeigen wir dir, wie du mit einem ESP8266 Temperatur und Luftfeuchtigkeit messen und die Werte auf einer Weboberfläche anzeigen kannst. Der ESP8266 übernimmt die Rolle eines kleinen Webservers und stellt die Daten des DHT22 Sensors live dar. So lernst du praxisnah, wie Sensoren ausgelesen werden und wie Mikrocontroller Daten über WLAN bereitstellen – komplett lokal, ohne Cloud.

  • ESP8266 → DHT22 Sensor auslesen
  • ESP8266 → Webserver für Browser-UI

Die Messwerte werden automatisch alle paar Sekunden aktualisiert und im Browser angezeigt. Das Projekt vermittelt dir die Grundlagen von Sensorabfrage, WLAN-Verbindung und Webserver-Programmierung auf Mikrocontrollern.

Was wird dafür benötigt?

  • ESP8266 (z. B. NodeMCU)
  • DHT22 Sensor
  • Steckbrett & Jumper
  • 1× 4.7k–10k Pullup-Widerstand (falls nicht am Modul integriert)
  • Arduino IDE
  • WLAN-Router

Schritt für Schritt Anleitung

1. Schaltung aufbauen

ESP8266 DHT22
  • DHT22 Pins:
    • VCC → 3.3V am ESP
    • DATA → D2 (GPIO2 / D4 bei NodeMCU)
    • GND → GND
  • Pullup-Widerstand zwischen VCC und DATA (falls nötig)

2. Sketch hochladen

  • Die Arduino IDE öffnen
  • Sketch einfügen
C++
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

// ===== WLAN DATEN EINTRAGEN =====
const char* ssid = "YOUR-SSID";
const char* password = "YOUR-PASSWORD";
// =================================

#define DHTPIN 2        // GPIO2 (D4 beim NodeMCU)
#define DHTTYPE DHT22

DHT_Unified dht(DHTPIN, DHTTYPE);
ESP8266WebServer server(80);

uint32_t delayMS;

float temperatur = 0;
float luftfeuchte = 0;

void handleRoot() {
  String html = "<!DOCTYPE html><html>";
  html += "<head>";
  html += "<meta http-equiv='refresh' content='5'/>";
  html += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  html += "<style>";
  html += "body { font-family: Arial; text-align: center; margin-top: 50px; }";
  html += "h1 { font-size: 40px; }";
  html += "p { font-size: 30px; }";
  html += "</style>";
  html += "</head>";
  html += "<body>";
  html += "<h1>DHT22 Messwerte</h1>";
  html += "<p>Temperatur: " + String(temperatur) + " °C</p>";
  html += "<p>Luftfeuchte: " + String(luftfeuchte) + " %</p>";
  html += "</body></html>";

  server.send(200, "text/html", html);
}

void setup() {
  Serial.begin(115200);

  dht.begin();

  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  delayMS = sensor.min_delay / 1000;

  // WLAN verbinden
  WiFi.begin(ssid, password);
  Serial.print("Verbinde mit WLAN");

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.println("Verbunden!");
  Serial.print("IP Adresse: ");
  Serial.println(WiFi.localIP());

  server.on("/", handleRoot);
  server.begin();
}

void loop() {
  delay(delayMS);

  sensors_event_t event;

  dht.temperature().getEvent(&event);
  if (!isnan(event.temperature)) {
    temperatur = event.temperature;
  }

  dht.humidity().getEvent(&event);
  if (!isnan(event.relative_humidity)) {
    luftfeuchte = event.relative_humidity;
  }

  server.handleClient();
}
  • Deine SSID und dein Passwort eintragen.
  • Auf den Upload Button klicken.
  • Warten, bis der Upload fertig ist.

Was passiert technisch?

Der ESP8266 verbindet sich mit dem lokalen WLAN und erhält eine eigene IP-Adresse. Der DHT22 Sensor wird regelmäßig ausgelesen. Die Daten werden auf einem kleinen Webserver bereitgestellt, sodass sie über den Browser sichtbar sind. Jede Anfrage an die IP-Adresse des ESP liefert eine automatisch aktualisierte Webseite mit den aktuellen Messwerten.

Alles geschieht lokal, ohne Cloud oder externe Dienste. Der ESP8266 ist ideal für solche IoT-Anwendungen, da er WLAN integriert hat und einfach als Webserver betrieben werden kann.

FAQ

Wie oft werden die Werte aktualisiert?

Alle 5 Sekunden auf der Webseite, der Sensor kann intern alle 2 Sekunden ausgelesen werden.

Kann ich die Werte per Smartphone abrufen?

Ja, jedes Gerät im gleichen WLAN kann die IP-Adresse des ESP im Browser eingeben.

Muss ich einen Pullup-Widerstand verwenden?

Nur wenn dein DHT22 Modul keinen eingebauten Widerstand hat.

Ist HTTP die beste Lösung?

Für einfache Anwendungen wie diese ist HTTP perfekt. Für mehrere Sensoren oder komplexe IoT-Systeme ist MQTT oft effizienter.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert