Arduino - Temperatursensor - Relais

Dieses Tutorial zeigt, wie man einen Arduino und einen DS18B20-Temperatursensor verwendet, um ein Relais zu steuern. Konkret wird der Arduino so programmiert, dass er kontinuierlich die Temperatur mit dem DS18B20-Sensor misst. Das Relais wird dann entsprechend den folgenden Regeln angepasst:

Das Relais kann dann mit dem Lüfter, Heizelement, Kühlelement oder anderen Dingen verbunden werden.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×DS18B20 Temperatursensor (mit Adapter)
1×DS18B20 Temperatursensor (ohne Adapter)
1×Relais
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Viele DS18B20-Sensoren auf dem Markt sind von geringer Qualität. Wir empfehlen dringend den Kauf des Sensors von der Marke DIYables über den obigen Link. Wir haben ihn getestet und er funktionierte gut.

Über Relais und Temperatursensor

Wenn Sie nichts über Relais und Temperatursensoren wissen (Pinbelegung, Funktionsweise, Programmierung ...), lernen Sie in den folgenden Tutorials mehr darüber:

Verdrahtungsdiagramm

  • Verdrahtungsdiagramm mit Breadboard
Arduino-Temperatursensor-Relais-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Schaltplan mit Adapter (empfohlen)
Arduino DS18B20 Temperatursensor Relais Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wir empfehlen den Kauf eines DS18B20-Sensors, der mit einem Verdrahtungsadapter geliefert wird für eine einfache Verbindung. Der Adapter verfügt über einen integrierten Widerstand, sodass kein separater Widerstand in der Verdrahtung erforderlich ist.

Arduino-Code - Temperatursensor löst Relais aus

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-temperature-sensor-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMPERATURE_THRESHOLD) relay_state = HIGH; // set relay_state to HIGH else relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

Schnelle Schritte

  • Verdrahten Sie Arduino, Temperatursensor und Relais gemäß dem obigen Diagramm.
  • Verbinden Sie den Arduino über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen Port aus.
  • Gehen Sie zum Symbol Libraries in der linken Leiste der Arduino IDE.
  • Suchen Sie “DallasTemperature”, und finden Sie dann die DallasTemperature-Bibliothek von Miles Burton.
  • Klicken Sie auf die Schaltfläche Install, um die DallasTemperature-Bibliothek zu installieren.
Arduino Dallas Temperatur-Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren.
  • Klicken Sie auf die Alle installieren-Schaltfläche, um die OneWire-Bibliothek zu installieren.
Arduino OneWire-Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE
  • Klicke in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino hochzuladen.
  • Ändere die Temperatur in der Nähe des Temperatursensors
  • Beobachte die Änderung des Relais
  • Sieh dir das Ergebnis im Serial Monitor an. Es sieht wie folgt aus:
COM6
Send
Temperature: 19.1°C => relay's state: 0 Temperature: 19.3°C => relay's state: 0 Temperature: 19.7°C => relay's state: 0 Temperature: 19.8°C => relay's state: 0 Temperature: 20.1°C => relay's state: 1 Temperature: 20.6°C => relay's state: 1 Temperature: 21.4°C => relay's state: 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Arduino-Code - Temperatursensor löst Relais mit Toleranz aus

Während des Betriebs kann die Temperatur Schwankungen oberhalb oder unterhalb des festgelegten Schwellenwerts aufweisen, was zu häufigen und plötzlichen Zustandsänderungen am Relais führt und unvorhergesehene Betriebsprobleme verursachen kann. Um dieses Problem zu lösen, ist es möglich, dem Schwellenwert eine Toleranzmarge hinzuzufügen. Der unten stehende Code zeigt, wie diese Lösung implementiert werden kann:

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-temperature-sensor-relay */ #include <OneWire.h> #include <DallasTemperature.h> const int RELAY_PIN = A5; // Arduino pin connected to the relay's pin const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DATA pin const float TEMPERATURE_THRESHOLD = 20; // °C const float TOLERANCE = 0.5; // °C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensor(&oneWire); // pass oneWire to DallasTemperature library float temperature; int relay_state; void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); sensor.begin(); // initialize the sensor } void loop() { sensor.requestTemperatures(); // send the command to get temperatures temperature = sensor.getTempCByIndex(0); // read temperature in Celsius if (temperature > (TEMPERATURE_THRESHOLD + TOLERANCE)) relay_state = HIGH; // set relay_state to HIGH else if (temperature < (TEMPERATURE_THRESHOLD - TOLERANCE)) relay_state = LOW; // set relay_state to LOW digitalWrite(RELAY_PIN, relay_state); // control the relay // print to serial Serial.print("Temperature: "); Serial.print(temperature); Serial.print("°C => relay's state: "); Serial.println(relay_state); }

Der oben dargestellte Code legt einen Schwellenwert von 20 °C fest und eine Toleranz von 0,5 °C. Die folgenden Bedingungen gelten:

  • Wenn die Temperatur unter 19,5 °C liegt, wird das Relais ausgeschaltet.
  • Wenn die Temperatur über 20,5 °C liegt, wird das Relais eingeschaltet.
  • Wenn die Temperatur zwischen 19,5 °C und 20,5 °C liegt, bleibt der Zustand des Relais unverändert.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!