ESP8266 - Heizsystem

In diesem Tutorial werden wir den ESP8266, ein Heizelement und den DS18B20-Temperatursensor verwenden, um die Temperatur in einem Raum zu regulieren.

Zusätzlich kann der Code für andere Temperatursensoren wie DHT11, DHT22 oder LM35 angepasst werden, statt des DS18B20-Sensors.

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (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) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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 benötigt eine 12-Volt-Stromversorgung. Wenn dem Heizelement Strom zugeführt wird, erzeugt es Wärme. Um das Heizelement mit dem ESP8266 zu steuern, muss ein Relais als Zwischenstufe verwendet werden.

Wenn Sie mit Temperatursensoren und Heizelementen (Pinbelegungen, Betrieb, Programmierung usw.) nicht vertraut sind, können Ihnen die folgenden Tutorials helfen.

Verdrahtungsdiagramm

Schaltplan der Heizungsanlage mit ESP8266 NodeMCU

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Wie das System funktioniert

  • ESP8266 überwacht die Temperatur des Temperatursensors.
  • Wenn die Temperatur unter eine bestimmte Untergrenze fällt, wird ESP8266 die Heizelemente aktivieren.
  • Wenn die Temperatur eine bestimmte Obergrenze überschreitet, wird ESP8266 die Heizelemente deaktivieren.

Die Schleife wird kontinuierlich wiederholt.

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

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN D7 // The ESP8266 pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN D1 // The ESP8266 pin connected to relay which connected to heating element const int THRESHOLD_OFF = 20; // upper threshold of temperature, change to your desire value const int THRESHOLD_ON = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if(temperature > THRESHOLD_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < THRESHOLD_ON){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Im obigen Code aktiviert der ESP8266 das Heizelement, wenn die Temperatur unter 15 °C liegt. Das Heizelement bleibt eingeschaltet, bis die Temperatur über 20 °C steigt.

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Einsatz von ESP8266 ist.
  • Verbinde die Komponenten wie im Diagramm gezeigt.
  • Verbinde das ESP8266-Board mit deinem Computer über ein USB-Kabel.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
  • Verbinde deinen ESP8266 mit dem Computer über ein USB-Kabel
  • Öffne die Arduino IDE und wähle das richtige Board und den richtigen Port aus
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suche nach “Dallas”, und finde dann die DallasTemperature-Bibliothek von Miles Burton.
  • Drücke den Installieren-Knopf, um die DallasTemperature-Bibliothek zu installieren.
ESP8266 NodeMCU Dallas-Temperatur-Bibliothek
  • Sie werden aufgefordert, die Abhängigkeit zu installieren. Klicken Sie auf die Alle installieren Schaltfläche, um die OneWire-Bibliothek zu installieren.
ESP8266 NodeMCU OneWire-Bibliothek
  • Kopieren Sie den Code oben und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
  • Ändern Sie die Temperatur in der Umgebung des Sensors.
  • Überprüfen Sie die Temperatur des Heizelements und des Raums.

Fortgeschrittenes Wissen

Die oben genannte Technik ist ein Ein-Aus-Regler, der auch als Signalisierer oder „Bang-Bang“-Regler bezeichnet wird. Die Implementierung dieser Methode ist sehr einfach.

Ein alternativer Ansatz, bekannt als der PID-Regler, existiert. Diese Methode der Temperaturregelung ist stabiler, aber komplex und schwer zu verstehen und in die Praxis umzusetzen. Folglich wird der PID-Regler nicht weit verbreitet eingesetzt.

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