⭐⭐ Fortgeschrittener Anfänger ⏱️ 20 Minuten

Mini-Wetterstation

Du baust eine Mini-Wetterstation. Der DHT11 misst die Temperatur und die Luftfeuchtigkeit. Das OLED-Display zeigt sie an.

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.

🧰 Was brauchst du?

1× Arduino UNO
1× Temperatursensor DHT11
1× OLED-Display 0,91"
🔌
USB-Kabel + Jumperkabel

🗺️ Schaltplan

Folge den Drähten vom Arduino zu jedem Teil. Die Farben der Drähte darfst du selbst wählen.

Von Nach
Arduino UNO · D2 Temperatursensor DHT11 · DAT
Arduino UNO · 5V Temperatursensor DHT11 · VCC
Arduino UNO · GND Temperatursensor DHT11 · GND
Arduino UNO · A4 OLED-Display 0,91" · SDA
Arduino UNO · A5 OLED-Display 0,91" · SCL
Arduino UNO · 5V OLED-Display 0,91" · VCC
Arduino UNO · GND OLED-Display 0,91" · GND

🛠️ So baust du es

  1. Schließe den DHT11 an: DAT an pin 2, VCC an 5V und GND an GND.
  2. Schließe das OLED-Display an: SDA an A4, SCL an A5, VCC an 5V und GND an GND.
  3. Tipp: Zwei Teile brauchen 5V und GND. Nutze die + und − Streifen deines breadboard.

💻 Der Code

// Mini-Wetterstation
// Der DHT11 misst die Temperatur und die Luftfeuchtigkeit. Das OLED-Display zeigt sie an.

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

const int DHT_PIN = 2;          // DAT des DHT11 sitzt auf pin 2
DHT dht(DHT_PIN, DHT11);

Adafruit_SSD1306 display(128, 32, &Wire, -1);  // OLED mit 128 x 32 Pixeln (SDA = A4, SCL = A5)

void setup() {
  Serial.begin(9600);
  dht.begin();
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {  // 0x3C ist die Adresse des Displays
    Serial.println(F("Display nicht gefunden. Prüfe die Drähte von SDA und SCL."));
    while (true);                                   // Stopp: Ohne Display geht es nicht
  }
  display.setTextColor(SSD1306_WHITE);
}

void loop() {
  float temperatur = dht.readTemperature();  // In Grad Celsius
  float feuchte = dht.readHumidity();        // In Prozent

  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(0, 0);

  if (isnan(temperatur) || isnan(feuchte)) {   // Klappt das Messen nicht?
    display.setTextSize(1);
    display.print(F("Kein DHT11 gefunden"));
  } else {
    display.print(temperatur, 1);
    display.print((char)247);                  // Das Grad-Zeichen
    display.println(F("C"));
    display.print(feuchte, 0);
    display.print(F("% Feu."));

    Serial.print(F("Temperatur: "));
    Serial.print(temperatur);
    Serial.print(F(" C  Feuchte: "));
    Serial.print(feuchte);
    Serial.println(F(" %"));
  }

  display.display();   // Erst jetzt kommt alles wirklich auf das Display
  delay(2000);        // Der DHT11 kann nur alle 2 Sekunden messen
}

🧠 Was macht der Code?

  • Der DHT11 sitzt an pin 2. Mit readTemperature() und readHumidity() lesen wir die Werte.
  • Das OLED-Display spricht über SDA (A4) und SCL (A5). Mit print() schreiben wir Text auf das Display.
  • Alle 2 Sekunden kommt eine neue Messung. Klappt das Messen nicht? Dann siehst du eine Meldung.

🎯 Probier mal …

  • Zeige auch die Temperatur in Fahrenheit
  • Lass eine LED leuchten, wenn es wärmer als 25 Grad ist
  • Merke dir die höchste Temperatur von heute und zeige sie auch an

🚀 Baue dieses Projekt mit Codey: Öffne codey.online/de/starter-kits/uno/projects/weather-station und klicke auf BAU DAS. Dann sind der Code und der Schaltplan sofort bereit.

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.
⬇️ Diese Seite als PDF herunterladen 📚 Das komplette Tutorial herunterladen (PDF)

Codey Online ist ein Produkt von OTRONIC

Bau dein Arduino- oder ESP32-Projekt mit AI

Beschreib einfach, was du bauen willst. Codey Online schreibt den Code, zeichnet den Schaltplan, kompiliert alles und flasht dein Board direkt aus dem Browser.

Kostenlos starten