🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Arduino UNO R3 mit DS18B20 Sensor & Relais

Veröffentlicht am 15. August 202229. April 2023 von 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

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);
  }
}

4 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

Schreibe einen Kommentar Antworten abbrechen

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x