#include <OneWire.h>
#include <DallasTemperature.h>
// Definieer de pinnen
#define ONE_WIRE_BUS 4 // Pin voor de DS18B20 data
#define OUTPUT_PIN 11 // De digitale uitgang, bijvoorbeeld een LED op pin 13
// Instellingen voor de sensor en bibliotheken
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Definieer de temperatuurdrempels
const float LOWER_THRESHOLD = 5.0; // Onder deze temperatuur gaat de uitgang hoog
const float UPPER_THRESHOLD = 7.0; // Boven deze temperatuur gaat de uitgang weer laag
void setup() {
// Setup de pinmodi
pinMode(OUTPUT_PIN, OUTPUT);
digitalWrite(OUTPUT_PIN, LOW); // Zet de uitgang standaard uit
// Start seriële communicatie en temperatuursensoren
Serial.begin(9600);
sensors.begin();
}
void loop() {
// Lees de temperatuur van de DS18B20
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0); // Leest de temperatuur van de eerste sensor
// Print de temperatuur in de seriële monitor
Serial.print("Temperatuur: ");
Serial.print(temperatureC);
Serial.println(" °C");
// Controleer of de temperatuur onder de 5°C is
if (temperatureC < LOWER_THRESHOLD) {
digitalWrite(OUTPUT_PIN, HIGH); // Zet uitgang hoog
}
// Controleer of de temperatuur boven de 7°C is
else if (temperatureC > UPPER_THRESHOLD) {
digitalWrite(OUTPUT_PIN, LOW); // Zet uitgang laag
}
// Wacht een seconde voordat je de temperatuur opnieuw leest
delay(1000);
}