back | Hardware | Software | Screenshots

TerraDuino - Eigenbau Terrarium Steuerung

/images/terraduino.png

Das Terraduino ist ein von mir entworfener und gebauter Controller für ein Terrarium basierend auf dem Microcontroller Arduino Mega 2650. Der Controller hat 7 220V Ausgangskanäle, die man damit steuern kann, man kann einen Lüfter anschliessen (zur Klimasteuerung) sowie einen Temperatur- und Luftfeuchtigkeitssensor.

Der Controller hat folgende Features:

  • Per Hauptschalter kann zwischen manuellem und automatischem Betrieb umgeschaltet werden.

  • Wenn auf Manuell umgeschaltet ist, kann man über die Schalter 1-6 die Kanäle 1-6 ein- und ausschalten. Kanal 7 ist nicht manuell steuerbar (der ist später dazugekommen, weil ich beim Entwurf einen Fehler gemacht und den später korrigiert hatte).

  • Jeder Schalter verfügt über eine LED, die anzeigt, ob der Kanal geschaltet ist. Im automatischen Modus sind die Schalter-LEDs aber abgeschaltet.

  • Zur automatischen Steuerung kann man ein Programm von 32 möglichen auswählen und einem Kanal zuordnen. Ein Programm bietet folgende Features:

    Astronomischer Betrieb

    Der Kanal wird basierend auf Sonnenauf- und Untergangszeiten geschaltet. Die Schaltzeiten sind vorberechnet für den Breitengrad+Zeitzone, in der ich lebe, in Sunrise.h.

    Start- und Stoppverzögerung

    Zustätzlich kann eine Start- und Stoppverzögerung in Minuten angegeben werden. Der Kanal wird dann entsprechend später ein- und früher ausgeschaltet. Verwendet man auf den verschiedenen Kanälen verschiedene Verzögerungszeiten, kann man einen Sonnenaufgang simulieren (Anmerkung: nein, man kann das nicht mit einer Dimm-Funktion machen, da jedenfalls bei mir ausnahmslos alle Lampen mit Vorschaltgeräten laufen, die das nicht unterstützen).

    Winterruhe Modus

    Man kann ein Datum und einen Inkrementwert in Minuten angeben. Ab dem angegebenen Datum wird dann die Winterruhe eingeleitet und der angegebene Inkrementwert auf die Verzögerung addiert. Beispielformel für Einschaltzeit:

     ( (HeuteTagDesJahres - StartWinterruheTagDesJahres) * Inkrement) + StartVerzögerung 
    Betrieb mit festen Zeiten

    Statt astronomischer (und damit variabler) Zeiten kann man auch eine konkrete Start- und Stoppzeit angeben. Die angeschlossene Lampe leuchtet dann also jeden Tag gleich lange.

    Herausnahme aus der Steuerung

    Mit dem Programmodus "Manuell" kann man einen Kanal aus der Automatik herausnehmen. Er ist dann manuell über den Schalter steuerbar, obwohl der Hauptschalter auf Automatik steht. Für uns ist das wichtig, weil unser Terrarium teilbar ist und man auf diese Weise zum Beispiel auf der einen Seite Winterruhe fahren kann (also Lampen aus) und auf der anderen Normalbetrieb und man dann auf der Winterruheseite trotzdem ab und zu mal die Lampe anmachen kann, ohne die Automatik für das ganze Terrarium abschalten zu müssen.

    Einschaltverzögerung

    Pro Kanal kann man eine Einschaltverzögerung in Minuten angeben. Wenn ein Kanal ausgeschaltet war und eingeschaltet wird (sei es manuell oder automatisch spielt dabei keine Rolle), bleibt der Kanal solange abgeschaltet, bis die Einschaltverzögerungszeit abgelaufen ist.

    Damit werden Vorschaltgeräte von Metalldampflampen geschützt, die es nicht allzu gut vertragen, in schneller Folge ein- und ausgeschaltet zu werden. Laut Hersteller(n) verfügen diese EVGs zwar über eine Schutzschaltung für solche Fälle, aber die Erfahrung hat gezeigt, dass ein EVG trotzdem den Dienst einstellen kann, wenn man es zu häufig hintereinander ein- und ausschaltet.

  • Es gibt eine Klimasteuerung, bei der man eine Maximaltemperatur angeben kann, ab der der Lüfter eingeschaltet wird und eine Minimaltemperatur, die erreicht sein muss, damit der Lüfter wieder ausgeschaltet wird. Um Flapping zu vermeiden, wird die Klimasteuerung prozessintern nur alle 10 Minuten abgefragt.

  • Man kann einen Temperaturalarm einstellen, der eine kurze Melodie abspielt, wenn die Temperatur unter einen angegebenen Wert fällt. Das kann z.b. passieren, wenn man vergessen hat, die Scheibe vom Terrarium nach Arbeiten zu schliessen. Bei Inbetriebnahme des Systems pro Tag (erste Schaltung des ersten Kanals) wartet die Alarmroutine 2 Stunden. Am Anfang des Tages gibt es also keinen Alarm, weil da logischerweise das Terrarium noch kalt ist, was da aber normal ist.

  • Über ein Webinterface kann man alle aktuellen Stati anschauen, Programme bearbeiten, diese Kanälen zuweisen, Datum, Uhrzeit, IP-Adresse und Klima-Einstellungen ändern.

    Der eingebaute Webserver bietet ausserdem eine URL über die man maschinenlesbare Daten abfragen kann, die ich mit Hilfe von RRD visualisieren werde.

  • Es gibt ausserdem eine serielle Console, in der diverse interne Informationen angezeigt werden. Von der Console aus kann man das System ausserdem booten und die IP Adresse sowie Datum und Uhrzeit ändern.

Die Steuersoftware für den Controller, die ich erstellt habe, ist so wie die Arduinoplatform selbst, Opensource, siehe auch TerraDuino Software und kann frei verwendet werden.

Im Forum TCS-Terrarien kann man die Entwicklung verfolgen.

Zur Veranschaulichung habe ich ein Video von einem Schalttest gemacht: