ESP32 Wetterstation mit OLED Display

ESP32 Wetterstation mit OLED Display
Baue ein kleines, sauberes Maker-Projekt: Der ESP32 liest Temperatur, Luftfeuchtigkeit und Luftdruck vom BME280 und zeigt die Werte live auf einem OLED Display an. Ideal als Einstieg in I2C, Sensorik und Display-Ausgabe.

Was du am Ende gebaut hast
Du hast eine kleine Wetterstation auf dem Breadboard: Der ESP32 fragt den BME280 über I2C ab und schreibt die aktuellen Messwerte auf das OLED Display. Das Projekt ist klein genug für den ersten Abend, aber nützlich genug, um danach direkt erweitert zu werden.
Nur ein I2C-Bus
Arduino IDE
Sofort sichtbares Ergebnis
Die Bauteile im Projekt verstehen
Für das Projekt brauchst du drei zentrale Bauteile: einen Controller, einen Sensor und ein Display. Technisch lernst du damit das Grundmuster vieler Maker-Projekte: Daten erfassen, im Mikrocontroller verarbeiten und direkt sichtbar ausgeben.

ESP32
Steuert Sensor und Display.
- liest die BME280-Messwerte per I2C
- schreibt Temperatur, Feuchte und Druck auf das OLED
- bringt WLAN/Bluetooth für spätere Erweiterungen mit

BME280
Misst die Umweltdaten.
- liefert Temperatur, Luftfeuchtigkeit und Luftdruck
- nutzt typischerweise I2C-Adresse 0x76 oder 0x77
- passt für Wetterstationen, Raumklima und Datenlogger

OLED Display
Zeigt die Werte direkt an.
- macht den Aufbau sofort sichtbar testbar
- läuft ebenfalls über I2C mit SDA und SCL
- reicht mit 128×64 Pixeln für kompakte Statusanzeigen
Verdrahtung
OLED und BME280 hängen gemeinsam am I2C-Bus. Beim ESP32 sind die Standardpins meistens GPIO 21 für SDA und GPIO 22 für SCL.
| ESP32 | OLED SSD1306 | BME280 |
|---|---|---|
| 3V3 | VCC | VCC |
| GND | GND | GND |
| GPIO 21 / SDA | SDA | SDA |
| GPIO 22 / SCL | SCL | SCL |
Schritte
Arduino IDE vorbereiten
Installiere die ESP32-Boards über den Boardverwalter und wähle dein ESP32 Dev Board aus. Danach den passenden USB-Port auswählen.
Bibliotheken installieren
Installiere über den Bibliotheksverwalter: Adafruit BME280 Library, Adafruit Unified Sensor, Adafruit SSD1306 und Adafruit GFX Library.
Verdrahten
Verbinde OLED und BME280 parallel mit 3V3, GND, SDA und SCL. Beide Module dürfen am gleichen I2C-Bus hängen.
Code hochladen
Kopiere den Beispielcode, lade ihn auf den ESP32 und öffne bei Problemen zuerst den seriellen Monitor.
Arduino-Code
Der Sketch sucht den BME280 auf den üblichen I2C-Adressen 0x76 und 0x77 und aktualisiert das OLED Display einmal pro Sekunde.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_BME280.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_BME280 bme;
void setup() {
Serial.begin(115200);
Wire.begin(21, 22);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED nicht gefunden");
while (true) delay(10);
}
bool sensorFound = bme.begin(0x76);
if (!sensorFound) sensorFound = bme.begin(0x77);
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
if (!sensorFound) {
display.println("BME280 nicht gefunden");
display.display();
while (true) delay(10);
}
display.println("Makershop Wetterstation");
display.println("Sensor bereit");
display.display();
delay(1200);
}
void loop() {
float temperature = bme.readTemperature();
float humidity = bme.readHumidity();
float pressure = bme.readPressure() / 100.0F;
display.clearDisplay();
display.setCursor(0, 0);
display.setTextSize(1);
display.println("ESP32 Wetterstation");
display.println("-------------------");
display.print("Temp: ");
display.print(temperature, 1);
display.println(" C");
display.print("Luft: ");
display.print(humidity, 0);
display.println(" %");
display.print("Druck: ");
display.print(pressure, 0);
display.println(" hPa");
display.display();
delay(1000);
}Was du mit der Wetterstation machen kannst
In der Grundversion ist die Schaltung eine kleine lokale Anzeige für Temperatur, Luftfeuchtigkeit und Luftdruck. Das ist praktisch für den Schreibtisch, den Werkraum, das Gewächshaus oder als Testaufbau auf dem Breadboard. Der eigentliche Wert liegt aber darin, dass du damit ein wiederverwendbares Muster lernst: Sensor auslesen, Daten strukturieren und auf einem Ausgabegerät darstellen.
Ausbau Richtung WLAN und Dashboard
Der ESP32 ist für den nächsten Schritt gut geeignet, weil WLAN schon integriert ist. Du kannst später einen kleinen Webserver auf dem Board starten, die Werte per MQTT veröffentlichen oder sie an Home Assistant übergeben. Dann bleibt das OLED als lokale Anzeige erhalten, während die Messdaten zusätzlich in einem Dashboard, Verlauf oder Automationssystem landen.
Worauf du beim festen Einbau achten solltest
Für einen dauerhaften Aufbau solltest du die Jumper-Verbindungen durch sauber gesteckte oder gelötete Verbindungen ersetzen. Das BME280-Modul sollte nicht direkt neben warmen Bauteilen, Netzteilen oder dem ESP32-Spannungsregler sitzen, weil die Temperaturmessung sonst verfälscht werden kann. Für Raumklima-Messungen ist ein luftdurchlässiges Gehäuse sinnvoller als eine komplett geschlossene Box.
Wenn etwas nicht funktioniert
0x3C.0x76 oder 0x77 testen.Nächste Ausbaustufen
Wenn die Anzeige läuft, kannst du das Projekt schnell erweitern: Messwerte per WLAN senden, einen Webserver auf dem ESP32 starten, Daten an Home Assistant übergeben oder einen Akku-Betrieb vorbereiten.
Idee für Teil 2: ESP32 Wetterstation mit Webserver und Smartphone-Ansicht.











