ESP32 Wetterstation mit DHT22 & OLED – Komplettes Tutorial

Baue deine eigene Wetterstation für Temperatur und Luftfeuchtigkeit. In diesem Schritt-für-Schritt-Tutorial zeigen wir dir den Aufbau mit ESP32, DHT22 und einem OLED-Display – inklusive Schaltplan und vollständigem Arduino-Code.

Was du bauen wirst

Eine kompakte Wetterstation, die Temperatur und Luftfeuchtigkeit misst und die Werte in Echtzeit auf einem kleinen OLED-Display anzeigt. Das ganze läuft auf einem ESP32 – du kannst die Daten später ganz einfach per WLAN ins Smart Home oder in die Cloud übertragen.

Dieses Projekt ist ideal für Einsteiger, die das Zusammenspiel von Mikrocontroller, Sensor und Display verstehen wollen. Du brauchst keine Vorkenntnisse – nur die Bauteile und 30 Minuten Zeit.

Benötigte Bauteile

Alle Komponenten sind einzeln oder als Set bei makeroo erhältlich:

💰 Kosten für das komplette Projekt: ca. 17–22 € (alle Bauteile aus dem makeroo-Shop)

⏱️ Aufbauzeit: ca. 30 Minuten

Schritt 1: Verkabelung

Der DHT22 und das OLED-Display kommunizieren beide mit dem ESP32 – der DHT22 über einen digitalen Pin, das Display über I²C. So verbindest du alles:

DHT22 → ESP32

  • VCC (rot) → 3.3V am ESP32
  • DATA (gelb/weiß) → GPIO 4
  • GND (schwarz) → GND

OLED SSD1306 → ESP32

  • VCC → 3.3V am ESP32
  • GND → GND
  • SCL → GPIO 22
  • SDA → GPIO 21

⚠️ Wichtig: Bei manchen DHT22-Modulen ist bereits ein Pull-Up-Widerstand (4,7–10 kΩ) auf der Platine verbaut. Sollte dein Sensor keine Werte liefern, schließe einen zusätzlichen 4,7 kΩ Widerstand zwischen VCC und DATA an.

Stecke den ESP32 und das Breadboard so auf, dass du bequem an alle Pins kommst. Der DHT22 kann direkt aufs Breadboard, das OLED verbindest du per Jumper-Kabel.

Schritt 2: Arduino IDE vorbereiten

  1. Installiere die Arduino IDE (kostenlos von arduino.cc)
  2. Füge die ESP32-Boardunterstützung hinzu:
    Datei → Voreinstellungen → Zusätzliche Boardverwalter-URLs
    Füge ein: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. Installiere die benötigten Bibliotheken über Werkzeuge → Bibliotheken verwalten:
    • DHT sensor library von Adafruit
    • Adafruit SSD1306
    • Adafruit GFX Library
    • Adafruit Unified Sensor (wird meist automatisch mitinstalliert)
  4. Wähle dein Board: Werkzeuge → Board → ESP32 Arduino → ESP32 Dev Module
  5. Wähle den richtigen COM-Port aus

Schritt 3: Der Code

Kopiere den folgenden Code komplett in die Arduino IDE und lade ihn auf deinen ESP32:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

// OLED Display Einstellungen
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// DHT22 Sensor
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  
  // OLED starten
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("OLED nicht gefunden!");
    while(1);
  }
  
  // DHT22 starten
  dht.begin();
  
  // Display einmal leeren
  display.clearDisplay();
  display.display();
  
  Serial.println("Wetterstation gestartet!");
}

void loop() {
  // Messwerte vom DHT22 lesen (max. alle 2 Sekunden!)
  float temperatur = dht.readTemperature();
  float feuchtigkeit = dht.readHumidity();
  
  // Fehlerbehandlung
  if (isnan(temperatur) || isnan(feuchtigkeit)) {
    display.clearDisplay();
    display.setTextSize(1);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 25);
    display.println("Sensorfehler!");
    display.setCursor(10, 40);
    display.println("DHT22 pruefen");
    display.display();
    Serial.println("Fehler beim Lesen des DHT22!");
    delay(2000);
    return;
  }
  
  // Werte auf seriellem Monitor ausgeben
  Serial.print("Temperatur: ");
  Serial.print(temperatur);
  Serial.print(" °C, Feuchtigkeit: ");
  Serial.print(feuchtigkeit);
  Serial.println(" %");
  
  // OLED-Anzeige aktualisieren
  display.clearDisplay();
  
  // Überschrift
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(15, 0);
  display.println("makeroo Wetterstation");
  
  // Trennlinie
  display.drawLine(0, 12, 127, 12, SSD1306_WHITE);
  
  // Temperatur groß darstellen
  display.setTextSize(2);
  display.setCursor(5, 20);
  display.print(temperatur, 1);
  display.print((char)247); // Grad-Zeichen
  display.println("C");
  
  // Luftfeuchtigkeit
  display.setTextSize(2);
  display.setCursor(5, 45);
  display.print(feuchtigkeit, 1);
  display.println("%");
  
  display.display();
  
  // DHT22 braucht min. 2 Sekunden zwischen Messungen
  delay(2000);
}

Schritt 4: Testen & erste Messwerte

Nach dem Upload sollte auf dem OLED-Display sofort die aktuelle Temperatur und Luftfeuchtigkeit erscheinen. Öffne den seriellen Monitor (Werkzeuge → Serieller Monitor, Baudrate 115200), um die Werte auch am PC zu sehen.

Halte den Sensor vorsichtig mit den Fingern – die Temperatur sollte innerhalb weniger Sekunden steigen. Puste leicht auf den Sensor – die Luftfeuchtigkeit sollte reagieren.

✅ Projekt läuft? Dann hast du erfolgreich deine erste ESP32-Wetterstation gebaut! Weiter unten findest du Ideen für Erweiterungen.

Erweiterungen & nächste Schritte

Deine Wetterstation läuft – aber das ist erst der Anfang. Mit ein paar zusätzlichen Komponenten aus dem makeroo-Shop kannst du das Projekt deutlich ausbauen:

📊 Datenlogger mit RTC und SD-Karte

Speichere Temperatur und Luftfeuchtigkeit mit Zeitstempel auf einer Micro-SD-Karte. Dafür brauchst du:

  • DS3231 Echtzeituhr (genaue Zeit, auch ohne Internet)
  • Micro SD Card Reader Modul

→ DS3231 RTC bei makeroo | → SD Card Reader bei makeroo

🌐 WLAN-Dashboard im Browser

Der ESP32 hat WLAN an Bord – warum also nicht ein kleines Web-Interface bauen? Zeige die aktuellen Werte als simple HTML-Seite im Heimnetz an. Du brauchst nur den ESP32 – kein zusätzliches Board.

📱 MQTT & Smart Home

Sende die Messwerte per MQTT an dein Smart-Home-System (Home Assistant, ioBroker, Node-RED). So hast du Temperatur und Luftfeuchtigkeit immer auf dem Smartphone – und kannst Automationen auslösen (z. B. Lüfter einschalten).

🔋 Akkubetrieb für draußen

Willst du die Wetterstation auf dem Balkon oder im Garten betreiben? Der ESP32-C3 ist stromsparend und perfekt für Akkuprojekte. Kombiniert mit einem TP4056 Lademodul und einem 18650-Akku läuft die Station tagelang autark.

→ ESP32-C3 bei makeroo | → TP4056 Lademodul (3er-Set) bei makeroo

🛒 Alle Bauteile direkt bei makeroo bestellen

In unserem Shop findest du alle Komponenten für dieses Projekt – und alles weitere für deine nächsten Maker-Ideen:

📦 Versand in 2–3 Werktagen | 1,99 € (gratis ab 15 €) | 30 Tage Rückgaberecht

Fazit

Mit einem ESP32, einem DHT22 und einem kleinen OLED-Display hast du in unter einer Stunde eine funktionierende Wetterstation gebaut. Das Projekt ist der perfekte Einstieg in die Welt der Mikrocontroller und zeigt, wie einfach du Sensordaten erfassen und anzeigen kannst.

Der ESP32 ist dabei die ideale Plattform: günstig, leistungsfähig und mit WLAN für Erweiterungen. Vom einfachen Thermometer bis zur voll vernetzten Smart-Home-Wetterstation ist alles möglich.

Viel Spaß beim Basteln! 🔧☀️

Zurück zum Blog