Universelle Temperatur-Steuerung – TempCTRL
TempCTRL V.2, Temperatur-Controller mit WLAN-Anschluss
TempCTRL ist eine universelle Temperatur-Steuerung mit remote-Data-Logging und -Visualisierung (IoT-enabled), die eine vollständige Kontrolle über temperaturabhängige Prozesse und automatisierbare Schaltvorgänge ermöglicht.
Die Einsatzmöglichkeiten sind sehr vielfältig, hier ein paar Beispiel in den Bereichen Green-Energy und Nachhaltigkeit:
- Biogasanlagen, Fermentations-Prozesse, Kompostierung
- Aquaponic-Systeme und Gewächshäuser, Bewässerung
- Heizung, Kühlung, Belüftung: Umwälzpumpen, Ventilatoren
- Solarthermie: Warmwasser- und Warmluft-Kollektoren,
- Steuerung für SolarDörrgerät
- Langzeit-Messung, Datalogging und Visualisierung, hilfreich bei vielen R&D-Projekten
- kann eine Tiefkühltruhe in einen horizontalen Niedrigenergie-Kühlschrank umwandeln
- kann eine Heizplatte in einen temperaturgesteuerten Kocher umwandeln
- kann einen Kühlschrank in einen Brutschrank umwandeln
TempCTRL ist komplett OpenSource/OpenHardware und basiert auf Verwendung von offenen Plattformen wie Arduino und RaspberryPi
Funktion
Angezeigt wird die gemessene IST-Temperatur und die vorgegebene bzw. durch Tastenauswahl einstellbare Soll-Temperatur, sowie die ebenfalls einstellbare Schwankungsbreite. Ausserdem wird noch der Schaltzustand des Relais mit 0 = off und 1 = on dargestellt.
Erweiterbarkeit
Am OneWire-Bus des Temperatursensors können noch weitere DS18B20 TemperaturSensoren angehängt werden, m.E. bis zu einem theoretischen Maximum von 64 pro Bus. Falls das noch nicht reicht könnten an freie Pins am Arduino weitere Busse angehängt werden, benötigt wird pro Bus 1 Pin als Datenleitung und Anschluss an GND und 5V.
Auch weitere Relais können noch angehängt werden, da nur ein kleiner Teil der vielen Pins des ArduinoMega2560 bereits belegt ist, pro zusätzlichem Relais wird jeweils 1 Pin benötigt.
Datalogging und Visualisierung
Die Visualisierung der Prozessdaten kann zum einen extern erfolgen, mittels Diensten wie ThingSpeak https://thingspeak.com/ (wozu allerdings noch die LUA-Scripte enprechend angepasst werden müssten !!!), oder intern, d.h., mittels eines irgendwo im lokalen Netzwerk befindlichen RaspberryPi (oder eines vergleichbaren kleinen Linux-Servers, wie zB. Odroid).
Dabei werden die Logging-Data-samples periodisch (via crontab) mit einfachen Unix-Shell-Scripten vom TempCTRL abgeholt und in einer roundrobbin-Datenbank namens rrdtool gesammelt. Ebenfalls periodisch (etwa alle 1 bis 2 Minuten) werden daraus Kurvendiagramme generiert und Webseite bereitgestellt, d.h., sie können von jedem Arbeitsplatzrechner aus mit einem normalen Webbrowser betrachtet werden. Da sich die Webseite automatisch refresht handelt es sich hier um ein aktives live-monitoring System, welches sehr komfortabel ist und maximale bzw. detaillierte Überwachung der jeweiligen Temperatur-gesteuerten Prozesse ermöglicht.
Visualisierung, 4h-Zeitfenster. Man erkennt als grüne Linie die vorgegebene Soll-Temperatur, um welche die Ist-Temperatur zyklisch schwankt (je nach der an der TempCTRL eingestellten Schwankungsbreite, meist 2 oder 3 Grad, damit das Relais am Grenzwert nicht dauernd hin- und her schaltet). Die Blaue Linie zeigt den Relaiszustand an, der normalerweise auf 0=off oder 1=on steht. In der Darstellung wurde die 1 aber durch den Wert 10 ersetzt, damit das ganze optisch ergonomischer zu erkennen ist.
BOM
TempCTRL V.2 ist der zweite Prototyp und besteht aus folgenden Modulen:
- Arduino Mega2560
- WLAN-Modul ESP8266
- OneWire-Temp.Sensor DS18B20 mit Adapter
- Relais bis 10A / 230VAC, 28VDC
- Arduino-LCD-Keypad mit 6 Micro-Tastern und Hitachi-kompatiblen 2x16-LCD
- Adapterplatine für ESP-modul mit 3.3V-Stromversorgung und Anschlussterminals für Relais und Temp.Sensor
Aufbau
Die Datenkommunikation ins LAN erfolgt über ein ESP8266 WLAN-Modul. Die Stromversorgung erfolgt mittels 7V,2A-Steckernetzteil am externen Power-Eingang des Arduino.
Auf den Arduino wird in Sandwich-Bauweise ein LCD-Keypad aufgesteckt. Die Display-Beleuchtung kann durch ein auf der Keypad-Platine Trimmpotentiometer auf optimalen Kontrast eingestellt werden.
Ausserdem ist noch Platz für eine ESP8266-Adapterplatine welche neben der 3.3V-Stromversorgung für den ESP auch noch die Anschlüsse für den Temp.Sensor und das Relais beinhaltet.
Schnittstellen
todo: Pinbelegungen der Anschlüsse (kann auch dem source-code entnommen werden !), Schaltplan
Software
Die aktuelle Software-Version unterstützt bislang nur einen Sensor und ein Relais, bei Erweiterungen müssen hier in der Software entsprechende Anpassungen vorgenommen werden.
Die Software besteht aus mehreren unahbhängigen Bestandteilen:
TempCTRL_v2_firmware
Dies ist die Firmware für den Arduino. Sie kann mittels der Arduino-IDE bearbeitet und auf den Arduino übertragen werden.
TempCTRL_v2_nodemcu_lua
Für das ESP8266 WLAN-Modul wird eine eigene Firmware namens NodeMCU benötigt. Dazu werden LUA-Scripte per USB hochgeladen, welche die jeweilige Funktionen implementieren. Die Bearbeitung kann mittels eines speziellen IDE namens ESPlorer erfolgen (siehe dazu mein kleines Tutorial unter [1]) , ist aber auch mit neueren Versionen der Arduino-IDE direkt möglich.
Gehäuse
still todo, aber es kann auch mit ein paar einfachen Modifikationen (= 2 Löcher ausschneiden) ein fertiges bzw. 3d-druckbares Gehäuse namens "Mmintbox" (von User Vector_Mayhem) von Thingiverse runtergeladen werden : https://www.thingiverse.com/thing:142282
Gesamtansicht. Interessant sind hier die Gummi-Knöpfe, diese können zum einen in starrer Form 3d-gedruckt werden, es sind in dem Projekt aber auch "Cast-Molds" enthalten, also 3d-druckbare Abdruckformen, mittels derer man sich ein ein weiches gummi-artiges button_pad aus dem OpenMaterial "Oogoo" selbst erstellen kann.
TempCTRL V.1, Temperatur-Controller mit LAN-Anschluss
Dies ist die ältere Vorgänger-Version und ursprünglicher Prototyp, bei welchem die Datenübertragung ins LAN noch per Ethernetkabel erfolgt.
BOM
TempCTRL V.1 besteht aus folgenden Modulen:
- Arduino Mega2560
- Ethernet Modul ENC28J60
- OneWire-Temp.Sensor DS18B20 mit Adapter
- Relais bis 10A / 230VAC, 28VDC
- LCD-Keypad mit 5 Tastern und Hitachi-kompatiblen 2x16-LCD
Aufbau
Die Datenkommunikation ins LAN erfolgt über ein Standard CAT5/STP Ethernet-Kabel. Die Stromversorgung erfolgt mittels 7V,2A-Steckernetzteil am externen Power-Eingang des Arduino. Der Temperatursensor ist über eine Kleine Adapterplatine verbunden, bei der im Schraubterminal noch ein 4.7K Widerstand zwischen 5V und Data mit eingeklemmt wird. Die Display-Beleuchtung kann durch einen auf der Keypad-Platine befindlichen Micro-Schalter manuell je nach Bedarf eingeschaltet werden.
Mit je zwei Tasten können Soll-Temperatur (blau) und Schwankungsbreite (gelb) eingestellt werden. Eine fünfte Taste (schwarz) ist mit einer Direktschaltung des Relais belegt, ähnlich einer Not-Aus-Schaltung.
Schnittstellen
todo: Pinbelegungen der Anschlüsse (können auch dem Source-Code entnommen werden !), Schaltplan
Software
Dies ist die Firmware für den Arduino. Sie kann mittels der Arduino-IDE bearbeitet und via USB-Anschluss auf den Arduino übertragen werden.
Die aktuelle Software-Version unterstützt bislang nur einen Sensor und ein Relais, bei Erweiterungen müssen hier in der Software entsprechende Anpassungen vorgenommen werden.
TempCTRL_v1_firmware
Links
Referenz | Beschreibung |
---|---|
[2] | Hier ein ähnlicher Ansatz von OSE-US, eine Aquaponiksteuerung namens Water-ELF |
[3] | Ein Open-Source-Thermostat |
[4] | Ein NEST-ähnlicher OpenSource-Thermostat |