⭐⭐ Gevorderde beginner ⏱️ 20 minuten

Mini-weerstation

Je maakt een mini-weerstation. De DHT11 meet de temperatuur en de luchtvochtigheid, en het OLED-schermpje laat ze zien.

Je logt eerst even in. Daarna staat je project meteen klaar.

🧰 Wat heb je nodig?

1× Arduino UNO
1× Temperatuursensor DHT11
1× OLED-schermpje 0,91"
🔌
USB-kabel + Jumperkabels

🗺️ Aansluitschema

Volg de draden van de Arduino naar elk onderdeel. De kleuren van de draden mag je zelf kiezen.

Van Naar
Arduino UNO · D2 Temperatuursensor DHT11 · DAT
Arduino UNO · 5V Temperatuursensor DHT11 · VCC
Arduino UNO · GND Temperatuursensor DHT11 · GND
Arduino UNO · A4 OLED-schermpje 0,91" · SDA
Arduino UNO · A5 OLED-schermpje 0,91" · SCL
Arduino UNO · 5V OLED-schermpje 0,91" · VCC
Arduino UNO · GND OLED-schermpje 0,91" · GND

🛠️ Zo bouw je het

  1. Sluit de DHT11 aan: DAT naar pin 2, VCC naar 5V en GND naar GND.
  2. Sluit het OLED-scherm aan: SDA naar A4, SCL naar A5, VCC naar 5V en GND naar GND.
  3. Tip: twee onderdelen hebben 5V en GND nodig. Gebruik de + en − strips van je breadboard.

💻 De code

// Mini-weerstation
// De DHT11 meet de temperatuur en de luchtvochtigheid. Het OLED-schermpje laat het zien.

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

const int DHT_PIN = 2;          // DAT van de DHT11 zit op pin 2
DHT dht(DHT_PIN, DHT11);

Adafruit_SSD1306 scherm(128, 32, &Wire, -1);  // OLED van 128 x 32 pixels (SDA = A4, SCL = A5)

void setup() {
  Serial.begin(9600);
  dht.begin();
  if (!scherm.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {  // 0x3C is het adres van het scherm
    Serial.println(F("Scherm niet gevonden. Kijk de draden van SDA en SCL na."));
    while (true);                                   // Stoppen: zonder scherm heeft het geen zin
  }
  scherm.setTextColor(SSD1306_WHITE);
}

void loop() {
  float temperatuur = dht.readTemperature();  // In graden Celsius
  float vocht = dht.readHumidity();           // In procent

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

  if (isnan(temperatuur) || isnan(vocht)) {   // Lukt het meten niet?
    scherm.setTextSize(1);
    scherm.print(F("Geen DHT11 gevonden"));
  } else {
    scherm.print(temperatuur, 1);
    scherm.print((char)247);                  // Het graden-teken
    scherm.println(F("C"));
    scherm.print(vocht, 0);
    scherm.print(F("% vocht"));

    Serial.print(F("Temperatuur: "));
    Serial.print(temperatuur);
    Serial.print(F(" C  Vocht: "));
    Serial.print(vocht);
    Serial.println(F(" %"));
  }

  scherm.display();   // Pas nu komt alles echt op het scherm
  delay(2000);        // De DHT11 kan maar eens per 2 seconden meten
}

🧠 Wat doet de code?

  • De DHT11 zit op pin 2. Met readTemperature() en readHumidity() lezen we de waarden.
  • Het OLED-scherm praat via SDA (A4) en SCL (A5). Met print() zetten we tekst op het scherm.
  • Elke 2 seconden komt er een nieuwe meting. Lukt het meten niet? Dan zie je een melding.

🎯 Probeer eens…

  • Laat ook de temperatuur in Fahrenheit zien
  • Laat een LED branden als het warmer is dan 25 graden
  • Onthoud de hoogste temperatuur van vandaag en laat die ook zien

🚀 Bouw dit project met Codey: open codey.online/nl/starter-kits/uno/projects/weather-station en klik op MAAK DIT. Dan staan de code en het aansluitschema meteen klaar.

Je logt eerst even in. Daarna staat je project meteen klaar.
⬇️ Download deze pagina als PDF 📚 Download de complete tutorial (PDF)

Codey Online is een product van OTRONIC

Bouw je Arduino- of ESP32-project met AI

Beschrijf wat je wilt bouwen. Codey Online schrijft de code, tekent het aansluitschema, compileert het en flasht je board rechtstreeks vanuit de browser.

Gratis starten