Universelle Temperatur-Steuerung – TempCTRL: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== '''TempCTRL V.2, Temperatur-Controller mit WLAN-Anschluss''' ==
 
== '''TempCTRL V.2, Temperatur-Controller mit WLAN-Anschluss''' ==
  
 +
[[File:templogger_logo.png|430px]]
 +
 +
{| class="wikitable"
 +
|-
 +
| ''Status'' || <font color=red>active</font>
 +
|-
 +
| ''Phase'' || <font color=green>released</font>
 +
|-
 +
| ''Kontakt'' ||
 +
* [[Oliver Schlüter]] [mailto:os@ose-germany.de <os@ose-germany.de>]
 +
|-
 +
| ''Diskussion'' ||
 +
* [https://t.me/OSEGWelcome OSEG Welcome Group] auf Telegram
 +
|-
 +
| ''Lizenz'' || [https://creativecommons.org/licenses/by-sa/4.0/deed.de CC-BY-SA 4.0]
 +
|-
 +
| ''Stichwörter'' || {{Stichwörter|Temperatur, WLAN, WiFi}}
 +
|-
 +
| ''Repositories'' || <font color=red>N/A</font>
 +
|-
 +
| ''OKH Meta-Data'' || <font color=red>N/A</font>
 +
|}
 +
 +
=== Einführung ===
  
 
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.
 
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.
Zeile 103: Zeile 127:
 
==== [[TempCTRL_v2_nodemcu_lua]] ====
 
==== [[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, ist aber auch mit neueren Versionen der Arduino-IDE direkt möglich.
+
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 [http://wiki.opensourceecology.de/Erg%C3%A4nzungs-Set_WLAN]) , ist aber auch mit neueren Versionen der Arduino-IDE direkt möglich.
 
 
  
 
=== Gehäuse ===
 
=== Gehäuse ===
Zeile 111: Zeile 134:
  
 
<gallery widths="460" heights="320" perrow="2>
 
<gallery widths="460" heights="320" perrow="2>
File:Mmintbox_1.jpg|Gesamtansicht
+
File:Mmintbox_1.jpg|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.
File:Mmintbox_exploded.jpg|Explosions-Ansicht. 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. In der obigen Abbildung ist noch ein 9V-Batterieblock mit dargestellt, dessen Platz hier aber durch die ESP-Adapterplatine belegt wird.
+
File:Mmintbox_exploded.jpg|Explosions-Ansicht.  In der obigen Abbildung ist noch ein 9V-Batterieblock mit dargestellt, dessen Platz hier aber durch die ESP-Adapterplatine belegt wird.
 
</gallery>
 
</gallery>
  
Zeile 172: Zeile 195:
  
 
==== [[TempCTRL_v1_firmware]] ====
 
==== [[TempCTRL_v1_firmware]] ====
 +
 +
== Links ==
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! Referenz !! Beschreibung
 +
|-
 +
| [http://opensourceecology.org/wiki/Water_Elf_IoT]  ||  Hier ein ähnlicher Ansatz von OSE-US, eine Aquaponiksteuerung namens Water-ELF
 +
|-
 +
| [https://github.com/science/openthermo] || Ein Open-Source-Thermostat
 +
|-
 +
| [https://blog.particle.io/2014/01/17/open-source-thermostat/?redirected=true] || Ein NEST-ähnlicher OpenSource-Thermostat
 +
|-
 +
| [http://www.instructables.com/id/ESP8266-WiFi-Module-for-Dummies/] || Sehr gute Anleitung für LED-Beispiel mit ESP-01 WiFi / DeepSleep (==> Batterie) und Arduino IDE incl. SerialMonitor
 +
|-
 +
| [https://quadmeup.com/esp8266-and-ds18b20-wireless-thingspeak-sensor] || Sehr gute Anleitung für TempSensor DS18B20 mit ESP-01 Wifi / DeepSleep und ThingSpeak
 +
|}

Version vom 30. Juni 2020, 09:42 Uhr

TempCTRL V.2, Temperatur-Controller mit WLAN-Anschluss

Templogger logo.png

Status active
Phase released
Kontakt
Diskussion
Lizenz CC-BY-SA 4.0
Stichwörter Temperatur, WLAN, WiFi
Repositories N/A
OKH Meta-Data N/A

Einführung

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.

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






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
[5] Sehr gute Anleitung für LED-Beispiel mit ESP-01 WiFi / DeepSleep (==> Batterie) und Arduino IDE incl. SerialMonitor
[6] Sehr gute Anleitung für TempSensor DS18B20 mit ESP-01 Wifi / DeepSleep und ThingSpeak