Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Arduino UNO R3 mit DS18B20 Sensor & Relais

Posted on 15. August 202210. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du am Arduino UNO R3 den Temperatursensor DS18B20 auslesen und temperaturabhängig ein Relais steuern kannst.

Schalten eines Relais am Arduino UNO R3 mit Temperatursensor DS18B20
Dieses Video auf YouTube ansehen.

Den Temperatursensor DS18B20 habe ich dir bereits in diversen Beiträgen vorgestellt, vor allem für die Arduino Familie habe ich dir gezeigt wie dieser programmiert wird.

  • Arduino Lektion 48: Temperatursensor DS18B20
  • Arduino Lektion 81: ESP-01S Temperatursensorshield DS18B20
  • Weekendprojekt: Relais & Temperatursensor DS18B20 steuern
  • Ausgeben der Temperaturwerte des DS18B20 Sensors auf dem M5StickC
  • Programmieren mit MicroPython #6: digitaler Temperatursensor DS18B20 am ESP32

Hier soll es nun darum gehen wie du die Temperatur auslesen kannst du bei einem bestimmten Wert ein Relais aktivierst und bei Erreichen einem anderen Wert das Relais wieder deaktivierst.

Die Idee dazu kam von einem Leser meines Blogs und diesem möchte ich den Beitrag widmen.

  • Benötigte Ressourcen für dieses Projekt
  • Pinout des Temperatursensor DS18B20
  • Aufbau der Schaltung – Temperatursensor DS18B20 mit Relais am Arduino UNO R3
  • Programmieren des Sensors und des Relais
    • Installieren der benötigten Bibliothek für den Temperatursensor DS18B20
  • Quellcode

Benötigte Ressourcen für dieses Projekt

Für dieses kleine Projekt benötigst du:

  • einen Arduino UNO R3*,
  • ein USB Datenkabel*,
  • einen Temperatursensor DS18B20*,
  • ein 4,7 kOhm Widerstand*,
  • ein 400 Pin Breadboard*,
  • ein paar Breadboardkabel*, männlich – männlich, 10 cm

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Für den Temperatursensor DS18B20 gibt es auch eine passende Adapterplatine, auf welchen du den Sensor einfach stecken kannst und somit die kleine Schaltung mit dem 4,7 kOhm Widerstand entfällt.

Pinout des Temperatursensor DS18B20

Der hier verwendete Sensor vom Typ DS18B20 verfügt über 3 Beinchen, welche wie folgt belegt sind:

Temperatursensor DS18B20
Temperatursensor DS18B20
Pinout - Temperatursensor DS18B20
Pinout – Temperatursensor DS18B20

Aufbau der Schaltung – Temperatursensor DS18B20 mit Relais am Arduino UNO R3

Die Schaltung am Arduino UNO R3 ist recht übersichtlich, denn der Sensor und das Relais belegen jeweils einen digitalen Pin und werden mit GND und 5V am Arduino verbunden.

BauteilArduino UNO R3
Sensor DS18B20
GNDGND
DATAdigitaler Pin D3
VCC5V
Relais
VCC5V
IN1digitaler Pin D4
GNDGND

Die Schaltung sieht in meinem Fall wie folgt aus:

Schaltung - Arduino UNO R3 mit Temperatursensor DS18B20 und einfach Relaisplatine
Schaltung – Arduino UNO R3 mit Temperatursensor DS18B20 und einfach Relaisplatine

Programmieren des Sensors und des Relais

Kommen wir nun dazu, das Programm zu erstellen. Wie am Anfang erwähnt wollen wir die Temperatur messen und bei einem bestimmten minimalen Wert soll ein Relais geschaltet werden, bei Erreichen eines höheren maximalen Wertes soll das Relais wieder deaktiviert werden.

Installieren der benötigten Bibliothek für den Temperatursensor DS18B20

Zum einfachen Auslesen der Temperatur benötigen wir eine kleine Bibliothek. Diese installieren wir über den Bibliotheksverwalter der Arduino IDE, welchen du über das Hauptmenü „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten…“

Im geöffneten Bibliotheksverwalter suchen wir zunächst nach „ds18b20“ (1) und wählen in den Suchergebnissen am Eintrag „DallasTemperature by Miles Burton“ die Schaltfläche „Installieren“ (2) wenn alles installiert ist können wir den Dialog über die Schaltfläche „Schließen“ schließen.

Bibliotheksverwalter der Arduino IDE - installieren der Bibliothek für den Sensor DS18B20
Bibliotheksverwalter der Arduino IDE – installieren der Bibliothek für den Sensor DS18B20

Für die installierte Bibliothek wird zusätzlich die Bibliothek OneWire benötigt hier müssen wir die Schaltfläche „Install all“ betätigen.

installieren der zusätzlich benötigten Bibliothek "OneWire"
Installieren der zusätzlich benötigten Bibliothek „OneWire“

Wenn alles installiert ist, wird dieses über den kleinen, grünen Text „INSTALLED“ angezeigt.

erfolgreich installierte Bibliothek für den Sensor DS18B20
Erfolgreich installierte Bibliothek für den Sensor DS18B20

Quellcode

//Bibliotheken für die Kommunikation mit dem Sensor
//DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>

//der digitale Temperatursensor vom Typ DS18B20
//ist am digitalen Pin D3 angeschlossen
#define SENSOR 3

//die einfach Relaisplatine ist am
//digitalen Pin D4 angeschlossen
#define RELAIS 4

//minimale Temperatur
const int MIN_TEMP = 26;
//maximale Temperatur
const int MAX_TEMP = 30;

//initialisieren der Kommunikation über OneWire
OneWire oneWire(SENSOR);
DallasTemperature sensors(&oneWire);

void setup(void) {
  //beginn der seriellen Kommunikation mit 9600baud
  //diese wird nur benötigt um die Sensordaten
  //auf der seriellen Schnittstelle auszugeben
  Serial.begin(9600);

  //beginn der Kommunikation mit den Sensoren
  sensors.begin();

  //definieren das der digitale Pin des Relais
  //als Ausgang dient
  pinMode(RELAIS, OUTPUT);
}

void loop(void) {
  //Anfordern der Temperaturwerte
  sensors.requestTemperatures();
  //Auslesen der Temperatur des ersten Sensors
  //da die Sensoren über eigene Adressen verfügen, können wir mehrere
  //Sensoren des Typs DS18B20 über eine Schnittstelle anschließen
  float tempC = sensors.getTempCByIndex(0);

  //Wenn erfolgreich eine Temperatur gelesen wurde, dann...
  if (tempC != DEVICE_DISCONNECTED_C) {
    //Ausgeben der Temperatur auf der seriellen Schnittstelle
    Serial.print("Temperatur des Sensors mit ID 0 ist: ");
    Serial.println(tempC);
  } else {
    //andernfalls soll eine Fehlermeldung ausgegeben werden
    Serial.println("Fehler: Es konnten keine Daten ermittelt werden!");
    //verlassen der Loop Funktion
    return;
  }

  //Wenn die gelesene Temperatur kleiner / gleich als der Wert der Konstante MIN_TEMP ist,
  //dann soll das Relais aktiviert werden.
  if (tempC <= MIN_TEMP) {
    digitalWrite(RELAIS, LOW);
  } else if (tempC >= MAX_TEMP) {
    //Ist der gelesene Wert jedoch größer / gleich als der Wert der Konstante MAX_TEMP so
    //soll das Relais deaktiviert werden.
    digitalWrite(RELAIS, HIGH);
  }
}

5 thoughts on “Arduino UNO R3 mit DS18B20 Sensor & Relais”

  1. Ralph F. sagt:
    16. August 2022 um 00:58 Uhr

    Super Anleitung und schnelle Reaktion.
    Vielen Dank dafür.
    Gruß Ralph

    Antworten
  2. Achim Baumgarten sagt:
    24. Mai 2023 um 20:43 Uhr

    Hallo Stefan,
    danke für die tolle Anleitung.
    Habe mir zwar extra das Arduino Kochbuch zugelegt, bekomme aber das Verstellen der Sollwerte mittels Tastern nicht hin.
    #define Rauftaster_PIN 7
    #define Runtertaster_PIN 6

    Pinmode(Rauftaster,INPUT_PULLUP);
    Pinmode(Runtertaster,INPUT_PULLUP);

    Ab dann klappt nichts mehr.?
    Habe die gesamte Heizungssteuerung mit 8 XH-W3001 gebaut.
    Leider schwimmen die Temperaturen, da die Leitungslängen der NTC wohl zu lang sind.
    Vielleicht geht es ja mit den DS 18B20 besser?
    Auf jeden Fall ist Dein Sketch schon mal prima um die Warmwassertemperatur anzuzeigen.
    Super!
    Achim

    Antworten
    1. Stefan Draeger sagt:
      27. Mai 2023 um 09:05 Uhr

      Hi, heute erscheint ein neuer Beitrag Maßgeschneidert zu deinem Thema ich denke das wird dir weiterhelfen.

      Gruß

      Stefan Draeger

      Antworten
  3. Pingback: Arduino-Temperaturüberwachung: Relais per Schwellwert & Tastersteuerung mit LCD-Anzeige - Technik Blog
  4. Pingback: OPEN SMART Rich Shield TWO für den Arduino UNO - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}