⭐⭐⭐ Uitdaging ⏱️ 30 minuten

Slimme ventilator

Je bouwt een thermostaat. Wordt het warmer dan 25 graden, dan klikt het relais aan. Zo kan je Arduino bijvoorbeeld een ventilatortje op een batterij aanzetten. Op het scherm zie je de temperatuur en of de ventilator aan staat.

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

🧰 Wat heb je nodig?

🗺️ 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 · D7 Relais 5V · S
Arduino UNO · 5V Relais 5V · +
Arduino UNO · GND Relais 5V · -
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 relais aan: S naar pin 7, + naar 5V en − naar GND.
  3. Sluit het OLED-scherm aan: SDA naar A4, SCL naar A5, VCC naar 5V en GND naar GND.
  4. Wil je echt iets schakelen? Gebruik dan alleen een batterij of lage spanning op COM en NO, nooit het stopcontact.

💻 De code

// Slimme ventilator (thermostaat)
// Wordt het te warm? Dan schakelt het relais aan, bijvoorbeeld voor een ventilator.
// Op het scherm zie je de temperatuur en of de ventilator aan staat.

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

const int DHT_PIN = 2;        // DAT van de DHT11 op pin 2
const int RELAIS_PIN = 7;     // S van het relais op pin 7
const float AAN_BOVEN = 25.0; // Boven deze temperatuur gaat de ventilator aan
const float UIT_ONDER = 24.0; // Onder deze temperatuur gaat hij weer uit

DHT dht(DHT_PIN, DHT11);
Adafruit_SSD1306 scherm(128, 32, &Wire, -1);  // OLED: SDA = A4, SCL = A5

bool ventilatorAan = false;

void setup() {
  Serial.begin(9600);
  pinMode(RELAIS_PIN, OUTPUT);
  digitalWrite(RELAIS_PIN, LOW);   // Begin met het relais uit
  dht.begin();
  scherm.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  scherm.setTextColor(SSD1306_WHITE);
}

void loop() {
  float temperatuur = dht.readTemperature();

  if (!isnan(temperatuur)) {
    // Twee grenzen, zodat het relais niet steeds aan en uit klikt
    if (temperatuur > AAN_BOVEN) ventilatorAan = true;
    if (temperatuur < UIT_ONDER) ventilatorAan = false;
    digitalWrite(RELAIS_PIN, ventilatorAan ? HIGH : LOW);
  }

  scherm.clearDisplay();
  scherm.setTextSize(2);
  scherm.setCursor(0, 0);
  if (isnan(temperatuur)) {
    scherm.print(F("DHT11 ?"));
  } else {
    scherm.print(temperatuur, 1);
    scherm.print((char)247);
    scherm.print(F("C"));
  }
  scherm.setTextSize(1);
  scherm.setCursor(0, 22);
  scherm.print(ventilatorAan ? F("Ventilator: AAN") : F("Ventilator: uit"));
  scherm.display();

  Serial.print(F("Temperatuur: "));
  Serial.print(temperatuur);
  Serial.println(ventilatorAan ? F(" C  -> AAN") : F(" C  -> uit"));

  delay(2000);
}

🧠 Wat doet de code?

  • De DHT11 meet de temperatuur. Boven 25 graden zetten we het relais aan.
  • Pas onder 24 graden gaat het relais weer uit. Met die twee grenzen klikt hij niet steeds aan en uit.
  • Het OLED-scherm toont de temperatuur en "Ventilator: AAN" of "uit".

🎯 Probeer eens…

  • Voeg twee knoppen toe om de grens-temperatuur hoger en lager te zetten
  • Laat een LED branden zolang de ventilator aan staat
  • Laat de ventilator ook aangaan als de luchtvochtigheid boven de 70% komt

🚀 Bouw dit project met Codey: open codey.online/nl/starter-kits/uno/projects/thermostat 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