Inhaltsverzeichnis:
- Schritt 1: Beschreibung des Ethernet-Thermostats
- Schritt 2: Webinterface
- Schritt 3: HTML-Seiten, die auf Webserver ausgeführt werden, Schaltpläne, Quellcode
Video: Raumthermostat - Arduino + Ethernet - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
In Bezug auf die Hardware verwendet das Projekt:
- Arduino Uno / Mega 2560
- Ethernet-Schirm Wiznet W5100 / Ethernet-Modul Wiznet W5200-W5500
- Temperatursensor DS18B20 am OneWire-Bus
- Relais SRD-5VDC-SL-C zur Kesselschaltung
Schritt 1: Beschreibung des Ethernet-Thermostats
Arduino ist eine praktische eingebettete Plattform, mit der beispielsweise ein Raumthermostat gebaut werden kann, den wir heute zeigen. Der Thermostat ist über das LAN-Netzwerk, in dem er sich befindet, zugänglich, während er mit einer Webschnittstelle ausgestattet ist, mit der alle Elemente des Thermostats konfiguriert werden können. Das Webinterface läuft direkt auf dem Arduino im Webserver-Modus. Der Webserver ermöglicht das Ausführen mehrerer unabhängiger HTML-Seiten, die informativ oder sogar funktional sein können. Der Webserver läuft auf Port 80 -
Das im Projekt verwendete elektromagnetische Relais SRD-5VDC-SL-C ermöglicht das Schalten von bis zu 10A bei 230V - Leistung 2300W. Beim Schalten eines Gleichstromkreises (Last) können 300W (10A bei 30V DC) geschaltet werden. Alternativ ist das OMRON G3MB-202P SSR-Relais voll kompatibel zum Schaltplan, der nur für nicht-induktive Lasten und ausschließlich für Wechselstromkreise geeignet ist. Maximale Schaltleistung 460W (230V, 2A). Der Verbrauch von Arduino mit Ethernet-Shield und anderen Peripheriegeräten liegt bei 100-120 mA bei geöffnetem Relais. Im geschlossenen Zustand unter 200mA bei 5V Versorgung.
Schritt 2: Webinterface
Die Weboberfläche des Thermostats ermöglicht:
- Sehen Sie sich die Echtzeittemperatur des DS18B20-Sensors an
- Echtzeit-Relaisstatus mit dynamischer Ausgangsänderung auf Seite anzeigen
- Ändern Sie die Ziel-(Referenz-)Temperatur im Bereich von 5 bis 50 ° C mit einem 0,25 ° C-Schritt
- Ändern Sie die Hysterese im Bereich von 0 bis 10 ° C mit einem 0,25 ° C-Schritt
Die Weboberfläche ist für größere und kleinere Bildschirme ausgelegt. Es ist reaktionsschnell, unterstützt Breitbild-High-Definition-Bildschirme, aber auch mobile Geräte. Die Schnittstelle verwendet importierte CSS-Stile des Bootstrap-Frameworks von einem externen CDN-Server, der das clientseitige Gerät lädt, wenn eine Seite geöffnet wird, die auf Arduino ausgeführt wird. Da der Arduino Uno speicherbegrenzt ist, kann er nur Seiten mit einer Größe von wenigen KB ausführen. Durch den Import von CSS-Stilen von einem externen Server wird die Leistung und Speicherbelastung des Arduino reduziert. Die Softwareimplementierung (für Arduine Uno) verwendet 70% des Flash-Speichers (32kB - 4kB Bootloader) und 44% des RAM-Speichers (2kB).
Statische Teile einer Webseite (HTML-Dokument-Header und -Fußzeile, Bootstrap-CSS-Verknüpfung, Meta-Tags, HTTP-Response-Header, Inhaltstyp, Formular und mehr) werden direkt im Flash-Speicher von Arduino gespeichert, was den für den Benutzer verwendeten RAM erheblich reduzieren kann -generierte Inhalte. Der Webserver ist dadurch stabiler und kann die Mehrfachverbindung mehrerer Geräte im Netzwerk gleichzeitig verarbeiten.
Um die eingestellten Werte auch nach einem Stromausfall beizubehalten, werden diese im EEPROM-Speicher des Arduino abgelegt. Referenztemperatur auf Offset 10, Hysterese auf Offset 100. Jeder der Werte belegt maximal 5B im EEPROM-Speicher. Die EEPROM-Transkriptionsgrenze liegt bei 100.000 Transkripten. Daten werden nur überschrieben, wenn das HTML-Formular gesendet wird. Falls das Gerät beim ersten Start nichts auf den genannten EEPROM-Offsets gespeichert hat, wird automatisch mit Standardwerten geschrieben - Referenz: 20,25, Hysterese 0,25 ° C
Das Meta-Tag Refresh aktualisiert die gesamte Arduino-Seite alle 10 Sekunden. Zu diesem Zeitpunkt ist es notwendig, die Änderung für den Thermostat zu schreiben, ansonsten werden die Eingabefenster beim Aktualisieren der Seite zurückgesetzt. Da die Ethernet-Bibliothek die Verwendung eines asynchronen Webservers nicht beinhaltet, muss die gesamte Seite neu geschrieben werden. Die sich hauptsächlich ändernden dynamischen Daten sind der aktuelle Wert des Ausgangs - Ein / Aus.
Schritt 3: HTML-Seiten, die auf Webserver ausgeführt werden, Schaltpläne, Quellcode
HTML-Seiten, die auf Arduino ausgeführt werden:
- / - Stammseite mit dem Formular, der aktuellen logischen Ausgangsliste für das Relais, Temperatur
- /action.html - verarbeitet Werte aus dem Formular, schreibt sie in den EEPROM-Speicher, leitet den Benutzer zurück zur Stammseite
- /get_data/ - verteilt Daten zur aktuellen Temperatur, Referenztemperatur und Hysterese an Dritte (Computer, Mikrocontroller, anderer Client …) im JSON-Format
Es gibt auch eine erweiterte Version dieses Thermostats, die Folgendes umfasst:
- Manueller Modus für Relais (unbegrenzte Zeit, hart EIN / AUS)
- Watchdog-Timer
- Weitere Sensoren verfügbar, zum Beispiel: SHT21, SHT31, DHT22, BME280, BMP280 und andere
- Kühlmodus
- Steuerung und Konfiguration über RS232 / UART unabhängig von Ethernet
- PID-Temperaturregelung für Thermostat
- Möglichkeit, ESP8266-, ESP32-Plattformen für Thermostat zu verwenden
Die Programmimplementierung für das Projekt finden Sie unter: https://github.com/martinius96/termostat-ethernet/ Die Implementierung enthält Programme für die dem Ethernet-Shield zugewiesene statische / dynamische IPv4-Adresse.
Der Thermostat ist nur für Innentemperaturen bestimmt! (über 0°C), an die die Systemlogik angepasst ist. Es ist möglich, einen vorhandenen Raumthermostat durch einen Thermostat zu ersetzen, es ist möglich, einen Thermostat in einem Kühlschrank vorübergehend zu ersetzen, eine konstante Temperatur in einem Terrarium zu halten und dergleichen.
Empfohlen:
Ein Ethernet-Kabel herstellen: 5 Schritte
So stellen Sie ein Ethernet-Kabel her: Hallo! Heute lernen wir, wie Sie Ihr eigenes Ethernet-Kabel nach Industriestandard herstellen! Womit Sie beim Kabelbedarf Geld sparen können! Warum also bin ich qualifiziert, Sie zu unterrichten? Nun, ich bin ein IT-Profi, ich habe die letzten 2
So finden Sie IP-Adressen von Ethernet-Geräten?: 4 Schritte
So finden Sie IP-Adressen von Ethernet-Geräten?: Bei dieser Gelegenheit werden wir ein Problem ansprechen, das uns passiert ist, wenn wir die IP-Adresse eines Ethernet-Geräts abrufen müssen. In unserem Fall kann es sich um einen PC, ein Smartphone oder eine SPS handeln sei ein Arduino mit Shield Ethernet, ESP8266 oder ESP32.Wenn wir nicht h