Skip to content

Heizstabsteuerung (Platine und Software) zur Ansteuerung eines Heizstabs in einem Pufferspeicher (Heizung)

License

Notifications You must be signed in to change notification settings

DieWaldfee/Heizstabsteuerung

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heizstabsteuerung

Heizstabsteuerung (Platine und Software) zur Ansteuerung eines Heizstabs in einem Pufferspeicher (Heizung)

zugehörige Repositories

  • PowerGuard (Steuerungsplatine Link )
  • Heizstabsteuerung (dieses Repository)
  • Heizstab_ioBroker (Ansteuerungs-Blockly - ein MQTT-Broker wird benötigt - Link)

Funktion:
Der ESP32 steuert 3 Temperatursensoren (DS18B20) an und liest diese aus. Zwei der Sensoren sollen am Referenzpunkt der Heizungsanlage (an Pufferspeichers der Heizung) angebracht werden, in dem auch der elektrische Heizstab eingeschraubt ist. Die beiden Werte werden einerseits verglichen und andererseits benutzt, um die Pufferspeichertemperatur zu überwachen. Liegt die Temperatur zu hoch, dann ist zu viel Energie im Pufferspeicher und vermutlich ist der Heizstab dafür ursächlich -> der Heizstabsteuerung abgeschaltet (L1, L2, L3)und damit in den sicheren Zustand überführt.

Liegt die Temperatur der beiden Sensoren über der eingestellten, kritischen Temperatur, so schaltet sich der ESP32 ganz ab und meldet dies optisch über die rote LED. Die Standardschaltung erfolgt über die beiden Sensoren. Eine Fehlerabschaltung erfolgt auch, wenn die Werte der Sensoren zu stark differieren (float deltaT = 2.0;). Der dritte Sensor wird am höchsten Punkt des Pufferspeichers angebracht und dient der Überwachung der maximal zulässigen Puffertemperatur. Der Sensorwert wird zur Notabschaltung des ESP verwendet, sollte der Puffer signifikat zu heiß werden. Die Kommunikation mit dem ESP32 wird über WiFi abgewickelt und über das Protokoll MQTT umgesetzt. Es stehen mehrere Befehle zur Verfügung, die ebenfalls via MQTT an den ESP gesendet werden kann. Neben "restart" (führt zu einem Neutstart des ESP32) kann die ganze Konfiguration un der debug-Level angepasst werden. Alle Anpassungen sind nach einem Neustart verlohren, da diese nicht permanet gespeichter werden (aber neue Parameter flashen geht ja fix). Befehle werden unter der MQTT-Hierarchie in folgendem Ort empfangen: "SmartHome/Keller/Heizung/ESP32_PowerGuard2/command" (MQTT_SERIAL_RECEIVER_COMMAND)

Entwicklungsumgebungen:
Die Software für den ESP32 habe ich in der Arduino-IDE geschrieben. Hier wird der ESP als Board ausgewählt (ggf. muss das Board noch nachinstalliert werden). Compile und flash sind hier per Knopfdruck möglich. Die Installation ist sehr einfach und manigfaltig im Netz dokumentiert.
Die Platine (PCB) habe ich in Eagle von AutoCAD modelliert. Für Maker gibt es eine kostenfreie Version. Die CAM-Daten (PCB-Produktionsdaten), sowie die BOM (Stückliste) sind ebenfalls aus Eagle ausgegeben. Eine Übersichtsversion der Platine ist mit Fritzing umgesetzt und enthält auch einige Notizen zur Pinbelegung.

benötigte Umgebung:

  • ioBroker zur Ansteuerung (geht natürlich auch mit anderen SmartHome-Systemen, solange diese MQTT sprechen können)
  • ioBroker MGTT-Adapter
  • MQTT-Broker: z.B. mosquitto unter Linux/Debian/Raspian...
  • 230V Stromversorgung oder alternativ eine 5V Versorgung über z.B. ein USB-Ladegerät (muss 2 ESP32 sicher versorgen können -> 2A reicht völlig aus) oder über die Schraubklemmen anderweitig versorgt.

aktuelle Versionen:

  • ESP-Software V2.0.2
  • PCB (Eagle) V2.0.1
  • CAM V1.0
  • BOM V2.0
  • Fritzing V2.0

Die PCB V2.x ist für einen Platinenhersteller konstruiert => CAM-files können einfach der Bestellung beigefügt werden (z.B. bei https://jlcpcb.com für 2$ 5St Stand 11.11.2023) und ein paar Tage später ist die Platine fertig.. In der BOM findet sich die Stückliste für die Bestückung wieder.

Zugehöriges Projekt: https://github.com/users/DieWaldfee/projects/1

Installation:

  • Hostname, WLAN-SSID + WLAN-Passwort setzen in /ESP32DevKitV4/Heizstabsteuerung.ino
       
  • MQTT-Brokereinstellungen setzen in /ESP32DevKitV4/Heizstabsteuerung.ino
       
  • MQTT-Pfade setzen in /ESP32DevKitV4/Heizstabsteuerung.ino
       
  • Adressen der DS10B20-Sensoren ermittel und in /ESP32DevKitV4/Heizstabsteuerung.ino eintragen. Hierzu muss der Debuglevel auf 1 (Zeile 14) gestellt werden und die Ausgabe im serial Monitor beobachtet werden. OnStart gibt der ESP32 diese Daten dann aus.
       
  • Kalibrierung der Stromsensoren in /ESP32DevKitV4/Heizstabsteuerung.ino
    Die STC013-Sensoren sind bezüglich der Einbaulage empfindlich. Die Kalibrierung lohnt erst im Endmontierten Zustand. der Istwert je Phase wird hierzu im geschalteten Zustand per Zangenampermeter gemessen. hierzu kann dem ESP das Kommando z.B. "L1 ein" auf /command gesendet werden. Bei eingestelltem Debuglevel auf 1 (Zeile 14) gibt der ESP32 die ermittelten Ströme aus. über die Formel ADC_L1_corr = Asoll/Aist * 15A kann der Korrekturwert (hier am Beispiel eines 15A-Sensors) berechnet werden. Nachdem die Schaltung mit dem Kommando z.B. "L1 aus" auf /command wieder ausgeschaltet wurde kann der gemessene 0-A-Wert abgelesen und als Korrekturwert in ADC_L1_zeroCorr angegeben werden.    
  • bei Fehlern kann in Zeile 14 der Debug-Level für die Ausgaben auf den serial Monitor eingestellt werden: 0 = BootUp only; 1 = Basic; 2 = Advanced; 3 = Absolut
  • ESP-Software wird über die Arduino-IDE aus das "ESP32 Dev Kit V4" compiliert und übertragen.
  • Platine entweder via Eagle an PCB-Hersteller übermitteln oder mit einer Lochrasterplatine per Hand aufbauen.
  • Platine bestücken + ESP und Level-Shifter (3.3V <-> 5V) aufsetzen.
  • Relais anschließen.
  • 12V Versorgung der Heizstabsteuerung wird über LED-Treiber realisiert.

Displayinhalte:

  • Zeile 1;
    • L1 => Leiter 1 / Phase 1
    • L2 => Leiter 2 / Phase 2
    • L3 => Leiter 3 / Phase 3
    • hinter Lx: "-" => nicht geschaltet; "*" => geschaltet
    • hinter Schaltzustand: "-" => ungeprüft; "x" => Fehler zwischen Strommessung und Soll-Schaltzustand; ":heavy_check_mark:" => Strommessung korrekt vs. Sollschaltzustand geprüft
    • hinter dem Block L3 folgt das Symbol für den Lüfterzustand: " " => Lüfter nicht geschaltet; ">>Lüftersymbol<<" => Lüfter geschaltet
    • hinter dem Lüftersymbol folgt MQTT-Symbol: " " => kein MQTT-Verbindung gegeben; "<>" => MQTT-Verbingung aktiv Zeile 2:
    • T_Top: Temperatursensor am obersten Messpunkt - dient der Safety, um nicht zu überhitzen [°C]
    • T_Messpunkt_1: erste Messung auf der Entschiedungsebene (in der Regel parallel zum Sensor der Heizung) [°C]
    • T_Messpunkt_2: zweite Messung auf der Entschiedungsebene [°C]

Bezugsquellen:

fertige Steuerung: 20230820_131926 (Displayanzeige mit Schaltzustand der Phasen L1-L3, Lüfter, MQTT-Connect in der ersten Zeile. DIe zweite Zeile zeigt die Temperaturen Max am höchsten Punkt und den Sensor 1 und 2 am Relegungspunkt) 20231111_231950 (bestückte Heizstabsteuerung mit angeschlossenen Strom-Sensoren und Display - ohne Temperatursensoren) 20231112_000352 (bestückte Heizstabsteuerung mit angeschlossenen Strom-Sensoren und Display - ohne Temperatursensoren) 20230820_132003 (Gesamtschaltung am Pufferspeicher - links die Steuerung und rechts die SSR-Relais und deren Kühlkörper)

About

Heizstabsteuerung (Platine und Software) zur Ansteuerung eines Heizstabs in einem Pufferspeicher (Heizung)

Resources

License

Stars

Watchers

Forks

Packages

No packages published