Für Kleine: bastel.zone
Zurück zu allen Projekten
Elektronik

ESP32-Wetterstation

Der Sensor BME280 misst Temperatur, Luftfeuchtigkeit und Luftdruck. Dein ESP32 stellt die Werte als kleine Webseite ins WLAN – jedes Handy im Haus kann sie aufrufen.

Level
Fortgeschritten
Alter
ab 12
Zeit
4 Std.
Kosten
ca. 20 €
Werkzeug
Lötkolben, ESP32, BME280

Bauteile

WasMengePreis
ESP32 DevKit V11ca. 6 €
BME280-Sensormodul (I²C, 3,3 V)1ca. 6 €
Steckbrett und 4 Steckkabel1 Satzca. 4 €
Stiftleiste zum Anlöten (liegt dem Sensor meist bei)1–
USB-Netzteil und Kabel1vorhanden

Verkabelung

BME280ESP32-PinBedeutung
VIN / VCC3V3Stromversorgung
GNDGNDMasse
SDAGPIO 21Datenleitung
SCLGPIO 22Taktleitung

Achtung bei der Bestellung: Ein BMP280 sieht fast gleich aus, misst aber keine Luftfeuchtigkeit.

Schritt für Schritt

  1. Stiftleiste anlöten

    Die Stiftleiste in das Steckbrett stecken, den Sensor darauflegen und jeden Pin kurz verlöten. Eine gute Lötstelle glänzt und sieht aus wie ein kleiner Vulkan.

    Achtung: Der Lötkolben ist etwa 350 °C heiß. Immer in den Ständer legen, Schutzbrille tragen und lüften.
  2. Verkabeln

    Sensor und ESP32 mit vier Kabeln laut Tabelle verbinden.

  3. Bibliothek installieren

    In der Arduino IDE im Bibliotheksverwalter nach „Adafruit BME280“ suchen und installieren. Die Frage nach zusätzlichen Bibliotheken mit „Alle installieren“ beantworten.

  4. WLAN eintragen

    Im Code bei WLAN_NAME und WLAN_PASSWORT die Daten eures WLANs eintragen.

    Tipp: Frag vorher deine Eltern, ob du das WLAN nutzen darfst. Teile den Code mit eingetragenem Passwort mit niemandem.
  5. Hochladen und IP finden

    Code hochladen und den Seriellen Monitor auf 115200 Baud öffnen. Dort steht die Adresse deiner Wetterstation, zum Beispiel http://192.168.178.42.

  6. Im Browser öffnen

    Die Adresse in einem Handy oder Computer im selben WLAN eingeben. Die Seite lädt sich alle 10 Sekunden neu.

  7. Richtig aufstellen

    Für echte Messwerte gehört der Sensor nach draußen in den Schatten, geschützt vor Regen. Drinnen misst er schnell die Wärme des ESP32 mit – ein paar Zentimeter Kabel dazwischen helfen.

Der Code

#include <WiFi.h>
#include <WebServer.h>
#include <Wire.h>
#include <Adafruit_BME280.h>

const char* WLAN_NAME = "DeinWLAN";
const char* WLAN_PASSWORT = "DeinPasswort";

Adafruit_BME280 bme;
WebServer server(80);

void zeigeSeite() {
  float temp = bme.readTemperature();
  float feuchte = bme.readHumidity();
  float druck = bme.readPressure() / 100.0;  // Pascal -> Hektopascal

  String seite = "<!DOCTYPE html><html><head><meta charset='utf-8'>";
  seite += "<meta name='viewport' content='width=device-width'>";
  seite += "<meta http-equiv='refresh' content='10'>";
  seite += "<title>Wetterstation</title></head>";
  seite += "<body style='font-family:sans-serif'><h1>Meine Wetterstation</h1>";
  seite += "<p>Temperatur: " + String(temp, 1) + " &deg;C</p>";
  seite += "<p>Luftfeuchte: " + String(feuchte, 0) + " %</p>";
  seite += "<p>Luftdruck: " + String(druck, 0) + " hPa</p>";
  seite += "</body></html>";
  server.send(200, "text/html", seite);
}

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

  if (!bme.begin(0x76)) {  // manche Module nutzen 0x77
    Serial.println("BME280 nicht gefunden - Kabel und Adresse pruefen!");
    while (true) delay(1000);
  }

  WiFi.begin(WLAN_NAME, WLAN_PASSWORT);
  Serial.print("Verbinde mit WLAN");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Wetterstation: http://");
  Serial.println(WiFi.localIP());

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

void loop() {
  server.handleClient();
}
Tipp: Der ESP32 funkt nur im 2,4-GHz-WLAN. Wenn euer Router ein reines 5-GHz-Netz hat, findet er es nicht.

Wenn’s nicht klappt

„BME280 nicht gefunden“

Kabel SDA und SCL vertauscht? Sonst im Code 0x76 durch 0x77 ersetzen – je nach Modul ist die Adresse anders.

Im Seriellen Monitor erscheinen nur Punkte.

Der ESP32 findet das WLAN nicht. Name und Passwort prüfen (Groß- und Kleinschreibung!) und ob es ein 2,4-GHz-Netz ist.

Die Luftfeuchte zeigt immer 0 %.

Dann ist es wahrscheinlich ein BMP280. Der kann nur Temperatur und Druck.

Weiter geht’s

  • Die Werte jede Minute speichern und als Diagramm anzeigen.
  • Ein wetterfestes Gehäuse mit Lüftungsschlitzen drucken (Stevenson-Hütte).
  • Mit Deep Sleep und Akku eine kabellose Außenstation bauen.

Mehr Projekte

Holz

Nistkasten für Meisen

Dein erstes richtiges Holzprojekt: Aus einem einzigen Brett baust du einen Nistkasten, in dem schon im nächsten Frühjahr Meisen brüten können.

Level
Einsteiger
Alter
ab 10
Zeit
3 Std.
Kosten
ca. 15 €
Werkzeug
Feinsäge, Akkuschrauber, Forstnerbohrer
Elektronik

Nachtlicht mit Bewegungsmelder

Ein Bewegungsmelder bemerkt dich im Dunkeln, und eine LED wird sanft heller.

Level
Einsteiger
Alter
ab 10
Zeit
2 Std.
Kosten
ca. 12 €
Werkzeug
Steckbrett, ESP32, USB-Kabel
3D-Druck

Schlüsselanhänger in Tinkercad

Dein erstes eigenes 3D-Modell: ein Schlüsselanhänger mit deinem Namen.

Level
Einsteiger
Alter
ab 10
Zeit
1 Std. + 30 Min. Druck
Kosten
ca. 1 €
Werkzeug
Tinkercad, 3D-Drucker, Slicer