Wettermessstation mit ESP32

Eine einfache Wettermessstation, die Temperatur, Luftfeuchtigkeit und Luftdruck misst. Die Daten werden auf einem OLED-Display angezeigt und optional per WLAN an einen Server gesendet.

Bauteile

Bauteil Beschreibung
ESP32 DevKit Mikrocontroller mit WLAN
BME280 Sensor für Temperatur, Luftfeuchtigkeit, Luftdruck (I2C)
SSD1306 OLED 0.96" Display 128x64 Pixel (I2C)
Gehäuse 3D-gedruckt, mit Belüftungsschlitzen
USB-Kabel Stromversorgung

Verkabelung (I2C-Bus)

Beide Bauteile (BME280 und OLED) hängen am selben I2C-Bus:

Signal ESP32 Pin BME280 OLED
SDA GPIO 21 SDA SDA
SCL GPIO 22 SCL SCL
VCC 3.3V VIN VCC
GND GND GND GND

Code (MicroPython)

from machine import Pin, I2C
import bme280
import ssd1306
import time

# I2C initialisieren
i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=400000)

# BME280 Sensor
bme = bme280.BME280(i2c=i2c)

# OLED Display
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

def anzeige_aktualisieren():
    temp, druck, feuchte = bme.values

    oled.fill(0)
    oled.text("Wetterstation", 0, 0)
    oled.text("-" * 16, 0, 10)
    oled.text(f"Temp:  {temp}", 0, 24)
    oled.text(f"Feuchte: {feuchte}", 0, 36)
    oled.text(f"Druck: {druck}", 0, 48)
    oled.show()

while True:
    anzeige_aktualisieren()
    time.sleep(5)

Gehäuse (3D-Druck)

Das Gehäuse wird im FDM-Verfahren gedruckt. Wichtige Designmerkmale:

Empfohlene Druckeinstellungen:

Parameter Wert
Material PLA
Schichthöhe 0.2 mm
Füllung 20%
Stützstrukturen Nein
Wandstärke 1.2 mm

Erweiterungsmöglichkeiten


Erstellt: 26.02.2024 · Zuletzt geändert: 06.04.2026