Arduino - Heizsystem

In diesem Tutorial werden wir die Raumtemperatur mithilfe eines Heizelements und des DS18B20-Temperatursensors steuern. Wenn die Temperatur zu kalt ist, schalten Sie das Heizelement ein. Wenn die Temperatur zu warm ist, schalten Sie das Heizelement aus. Sie können den Code auch für andere Temperatursensoren wie DHT11 oder DHT22 bzw. LM35 anstelle des DS18B20-Temperatursensors anpassen.

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×4.7 kΩ Resistor
1×Relais
1×Heizelement
1×12V Netzteil
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 Heizelement und DS18B20-Temperatursensor

Das in diesem Tutorial verwendete Heizelement nutzt eine 12-Volt-Stromversorgung. Wenn dem Heizelement Strom zugeführt wird, erzeugt es Wärme. Um das Heizelement über den Arduino zu steuern, muss dazwischen ein Relais verwendet werden.

Wenn Sie nichts über Temperatursensoren und Heizelemente (Pinbelegung, Funktionsweise, Programmierung ...) wissen, informieren Sie sich in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

  • Schaltplan mit Steckbrett
Schaltplan eines Arduino-Heizsystems

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

  • Schaltplan mit Adapter (empfohlen)
Schaltplan der Arduino-Temperaturregelung des Heizsystems

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

Wie das System funktioniert

  • Arduino misst die Temperatur des Temperatursensors
  • Wenn die Temperatur unter einen unteren Schwellenwert fällt, schaltet Arduino die Heizungen ein
  • Wenn die Temperatur über einen oberen Schwellenwert steigt, schaltet Arduino das Heizelement aus

Der obige Prozess wird in der Schleife unendlich oft wiederholt.

Arduino-Code für Kühlsystem mit DS18B20-Sensor

/* * 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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 2 // Arduino pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN A5 // Arduino pin connected to relay which connected to heating element const int TEMP_THRESHOLD_UPPER = 20; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial sensors.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { sensors.requestTemperatures(); // send the command to get temperatures temperature = sensors.getTempCByIndex(0); // read temperature in Celsius if(temperature > TEMP_THRESHOLD_UPPER) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Im obigen Code schaltet der Arduino das Heizelement ein, wenn die Temperatur unter 15 °C fällt, und hält es eingeschaltet, bis die Temperatur über 20 °C steigt.

Schnelle Schritte

  • Verbinden Sie Arduino über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino IDE, wählen Sie das richtige Board und den richtigen Port aus.
  • Navigieren Sie zum Libraries-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suchen Sie “DallasTemperature”, dann finden Sie die DallasTemperature-Bibliothek von Miles Burton.
  • Klicken Sie auf die Install-Schaltfläche, um die DallasTemperature-Bibliothek zu installieren.
Arduino Dallas Temperature-Bibliothek
  • Sie werden aufgefordert, die Bibliotheksabhängigkeit zu installieren
  • Klicken Sie auf die Schaltfläche Alle installieren, um die OneWire-Bibliothek zu installieren.
Arduino OneWire-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf Arduino hochzuladen
  • Stellen Sie die Umgebung des Sensors wärmer oder kälter ein
  • Überprüfen Sie die Temperatur des Heizelements und Ihres Raums

Fortgeschrittenes Wissen

Die oben beschriebene Regelungsmethode ist der Ein-/Aus-Regler, auch bekannt als Signaller oder "Bang-Bang"-Regler. Diese Methode ist sehr einfach umzusetzen.

Es gibt eine alternative Methode namens PID-Regler. Mit dem PID-Regler ist die gewünschte Temperatur stabiler, aber sehr schwer zu verstehen und umzusetzen. Daher ist der PID-Regler in der Temperaturregelung nicht beliebt.

※ 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!