Steuersystem für Heizkabel

Problemstellung

In einem Pferdestall sind Wasserleitungen für Pferdetränken verlegt, welche unisoliert im Winter den Temperaturen ausgesetzt waren. Zum Schutz vor Rohrbruch durch gefrierendes Wasser, wurden diese entleert und abgestellt. Die Pferde mussten während der Frostperioden mit Wassereimern getränkt werden.

Lösung

Entlang der Wasserrohre haben wir eine selbstregelnde Rohrbegleitheizung (RBH) verlegt. Diese heizt sich selbst beim Betrieb mit 230V gleichmässig auf. Das Rohr und die RBH wurden mit einer Rohrisolierung gedämmt. Da das Wasser in den Rohren bei über 30°C die Vermehrung von Bakterien wie z.B. Legionellen begünstigt, muss diese überwacht und gesteuert werden. Ausserdem sollte eine Überwachung des Stroms und der Temperaturen erfolgen sowie eine Alarmierungsfunktion den Anwender bei Störungen informieren. Für diese Aufgaben habe ich einen entsprechenden Schaltkasten entworfen und einen ESP8266-12 Microcontroller programmiert.

Schaltkasten

Funktionsbeschreibung

Wird eine Temperatur kleiner als die eingestellte minTemp, wird die Rohrbegleitheizung eingeschaltet, bis sie die maxTemp erreicht. Wenn die Umgebungstemperatur noch unter minTemp ist, hält die Steuerung die Wasserleitungstemperatur des Tiefstalls zwischen der maxTemp und dem Mittelpunkt zwischen minTemp und maxTemp. Der Erwärmungsprozess muss also nicht ständig komplett von min nach max. Im Moment ist lediglich der Tiefstall mit einem Anlegefühler direkt unter der Isolierung des Wasserrohres ausgestattet. Daher dient dieser Sensor als Referenz für die allgemeine Wassertemperatur.

Betriebssicherheit / Steuersicherheit

Folgende sicherheitsrelevante Themen wurden berücksichtigt:

Elektrischer Teil

  • Manuell geprüft: Isolationswiderstand der Rohrbegleitheizung mit 1000V gegen den Schutzleiter.
  • Überstrom auf einer Heizlinie (insgesamt 3 Linien, jeweils gesichert durch 5 Ampere Schmelzsicherungen)
  • Fehlerstrom (30mA Fehlerstromschutzschalter)
  • Erkennen von Plausibilitätsfehlern z.B.:
    – Das Relais sollte ausgeschaltet sein aber der Strom ist über Null Ampere / Relais sind an, aber 0 Ampere wird gemessen
    – Gemessene Temperaturen sind unrealistisch oder viel zu hoch / niedrigWenn dies erkannt wird, werden die Relais ausgeschaltet und gesperrt. Eine Fehlermeldung mit Details zur Störung wird mithilfe des Pushservices Pushbullet übermittelt.

Steuersicherheit

  • Um Einstellungen in der Weboberfläche der Rohrbegleitheizungssteuerung zu bearbeiten, muss der Benutzername und das Passwort eingegeben werden. Die Hauptseite ist für jeden zugänglich.
  • Da der ESP8266 in meinem Fall nicht über das Internet erreichbar ist, verzichte ich auf weitere Sicherheiten wie TLS oder eine HTTPS-Verbindung.
  • Der Hersteller des ESP8266 hat sehr schnell ein Update bereitgestellt, welches vor der „Krack Attack“ schützt.

LCD-Menü

LCD-Display und Auswahl Drehknauf (Potentiometer)

Direkt vor Ort können verschiedene Informationen am Schaltkasten abgerufen werden. Das 4 x 20 LCD hat im moment vier Auswahlmöglichkeiten:

    • Strom & Leistung
      – Stromfluss der drei Heizlinien
      – aktuelle Leistung
    • Regeltemp
      – momentan eingestellte Min- und Maxtemperatur sowie den Mittelwert der beiden für die Hysteresefunktion
    • Temperaturen
      – Anzeige aller gemessenen Temperaturen (siehe Bild)
    • WLAN
      – Name des aktuell verbundenen WLAN’s
      – Verbindungsstatus (Möglichkeiten: Ändere Status, SSID nicht gefunden, Verbunden, WLAN Passwort falsch, Nicht in STA-Mode, Unbek. WLAN-Fehler)
      – Verbindungsqualität (in annähernd präziser dBm Angabe)

Webbrowser Steuerung

Steuerbereich nach erfolgreicher Authentifizierung

Das integrierte Browsermenü wird auf Anfrage eines beliebiges Browsers vom ESP8266 gesendet und bietet, nach erfolgreicher Authentifizierung,  folgende Optionen:

  • alle Variablen können im Browser angezeigt werden. Dies kann wichtig für die Programmierung, Entwicklung von Updates etc. sein
  • min und max Heiztemperatur können aus der Ferne eingestellt werden
  • Der Flash-Modus zum Hochladen des kompilierten Codes kann mit einem automatischen 2-Minuten-Countdown aktiviert werden. Nach diesen 2 Minuten kehrt das Programm zum Normalbetrieb zurück. Wenn der Flashmodus aktiv ist, informieren das Browsermenü und der LCD-Bildschirm vor Ort über den aktuellen Zustand.
  • Alle gespeicherten EEPROM-Werte können zurückgesetzt werden
  • WiFi-Verbindung kann neu verbunden werden (um in einem WLAN Netzwerk mit gleicher SSID aber mehreren AP’s zwischen diesen zu wechseln)
  • Ein I2C-Scanner zeigt Adressen von antwortenden I2C-Slave-Geräten
  • der ESP8266 μC kann neu gestartet werden
  • eine Test-Pushbenachrichtigung kann gesendet werden

MariaDB (SQL Datenbank)

Graphen Darstellung der in der SQL-Datenbank aufgenommenen Werte

Die interessantesten Werte werden alle 2 Stunden (während die Heizung aktiv ist, alle 15 min) in einer lokalen Datenbank gespeichert. Dies kann sowohl hilfreich bei der Fehlersuche sein als auch zur Überwachung der Rohrtemperatur.

Die Datenbank ist auf einem lokalen Linux-Server gespeichert, so dass das System nicht von externen Internetdiensten abhängig ist. Falls dies erwünscht ist, kann natürlich auf einen externen SQL-Server gewechselt werden.

Hardware

Relaiskarte, vierfach

Um die erforderlichen 230V zu schalten, benutze ich eine 4-Relais-Platine, die an die Steuerung angeschlossen ist. Die Steuerung des Schaltstroms der Relaisspulen ist hierbei durch Optokoppler in Verbindung mit Transistoren auf der Platine gewährleistet.

DS18B20 unverkapselt

Die Temperaturen werden mit DS18B20 Sensoren gemessen. Diese gibt es bereits fertig verkapselt, eingegossen und somit wasserdicht zu kaufen.  Sie sind zuverlässig lesbar (digital) und haben bei einem Meßbereich von -55 °C bis +125°C gerade mal eine Abweichung von +/- 0,5 °C. Da diese auf einem Onewire Bussystem laufen, ist es möglich eine sehr große Anzahl dieser Sensoren mit nur einem Pin des μC auszulesen (exklusive VCC und GND).

Stromsensor ACS-712 20A

Um den Strom der einzelnen Heizstränge zu messen, entschied ich mich für den ACS-712 20A. Diese skalieren den gemessenen Wechselstrom auf ein sinusförmiges Gleichspannungssignal um.

ADS 1015 I2C analog/digital Erweiterungskarte

Um die analogen Werte der Stromsensoren und des Potentionmeters ( für die Menüauswahl)  zu erfassen, musste eine analoge Erweiterungsplatine mit eingebunden werden. Diese stellt bis zu vier analoge Eingänge bereit, welche von 0-5V in einer Auflösung von 3mV messen können ( bei diesem Modul ist genaueres Messen mit mehreren Eingängen auch möglich).

Logic Level Converter (Rückseite)

Da der ESP8266 auf 3,3V Basis arbeitet, wurde zur Ansteuerung der Relaisplatine ein Logic-Level-Converter eingesetzt. Dieser wandelt bidirectional 3,3V zu 5V Signalen um. Zusätzlich wird über diesen auch der onewirebus der Temperatursensoren betrieben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.