Aquarium Controller

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Die folgende Artikel beschreibt den Aquarium Controller, ein Gerät, mit dem alle elektischen Geräte eines Aquariums zentral gesteuert werden.

Einleitung

AquaCtrlHousing2.jpg

Ziel war es, ein Gerät zu entwickeln, welches nicht nur als kurzweiliges Experiment meinen Hobbyzwecken dienen sollte. Vielmehr war es wichtig, die Liste der Features so einzugrenzen, dass in endlicher und der mir zur Verfügung stehenden Zeit ein nutzbringendes Gerät entsteht, welches zuverlässig seinen Dienst verrichtet.

Anschlußmöglichkeiten

Steuerung folgender Geräte:

  • Taglicht (Leuchtstoffröhren, 230V)
  • Nachtlicht (LED-Leiste, 12V)
  • CO2 (230V)
  • Heizung (230V)
  • Pumpe (230V)

Anschluß für folgende Messwertaufnehmer:

  • 1 × Temperatursensor (NTC)
  • 1 × pH-Sonde

Sonstiges:

  • Eingebautes Netzteil, Anschluß direkt an 230V
  • Eingebaute Steckdosen für die 230V-Verbraucher
  • RS232-Schnittstelle zum Debuggen und Fernsteuern
  • Anschluß eines DCF77-Empfängers

Elektronik

Das Herz des Designs ist ein AVR-Prozessor ATmega644, an den sämtliche Komponenten direkt angeschlossen sind:

AquaCtrlSchematic001.png

Temperatursensor

Als Temperatursensor kommt ein NTC-Sensor, Typ Epcos B57861S0103, 10kΩ zum Einsatz.

Die Begradigung der Kennlinie erfolgt über einen Polynom 3. Grades.

Der Abgleich erfolgt rein in Software über zwei Messpunkte, bei denen Soll- und Istwert anzugeben sind.

pH-Sonde

Tatsächlich ist diese Schnittstelle bis heute (Stand 6.09.2009) ungetestet, müßte aber theoretisch funktionieren (Ich liebe diesen Satz: Damit ist die Schaltung zum Scheitern verurteilt)

Der Abgleich erfolgt rein in Software über zwei Messpunkte, bei denen Soll- und Istwert anzugeben sind.

Leuchtstoffröhren (Taglicht)

Die Leuchtstoffröhren können per Software geschaltet werden und über eine 1-10V-Schnittstelle in der Helligkeit gesteuert werden.

LED-Leiste (Mondlicht)

Die LED-Leiste wird über einen PWM-Ausgang in der Helligkeit gesteuert, wobei eine Spannung von 12V für die Versorgung der LEDs verwendet wird.

DCF77-Empfänger

Um eine optimale Ausrichtung der Antenne zu erzielen, wird der DCF77-Empfänger über eine 3-poligen Klinkenstecker extern angeschlossen. Im Einsatz befindet sich jener Empfänger aus dem Doppelheft der Elrad 7/8 '85 (welche ich eigenhändig gekauft habe ;-)..

Firmware

Ooops, das riecht nach Arbeit. Behelfsmäßig kann hier der sich praktisch selbst erklärende Quelltext ;-) herunter geladen werden: Aquarium Controller Firmware V0.16

Praxisbetrieb

Das Gerät ging am 11.06.2009 mit der Softwareversion V0.15 unter Realbedingungen in den Dauerbetrieb. Seitdem ergaben sich die Änderungen in der Firmware, ansonsten sind keine Auffälligkeiten zu verzeichnen (Stand 6.09.2009).

Im Hochsommer kam es zu einer übermäßigen Wassererwärmung (>29°C), welche das Gerät ordnungsgemäß als Alarmsignal ausgab. Die Abhilfe ist in diesem Fall rein manueller Natur: Klappen auf, um das Wasser herunterzukühlen.

Impressionen

Hier ein paar Bilder von den ersten Tests, im rechten Bild sieht man die mit Silikon an die Leuchtstoffröhreneinheit angeklebte LED-Leiste.

AquaCtrl 1st Test 01.jpg AquaCtrl 1st Test 02.jpg

Das geöffnete Gerät und das Aquarium komplett (die Steuerung ist rechts unten zu sehen):

AquaCtrl Opened.jpg Aquarium Complete.jpg

Verbesserungen

  • Das Design verzichtet komplett auf geschaltete Stromversorgungen um Problemen mit der Meßwertaufnahme vorzubeugen. Damit ist das Gerät aber nicht gerade ein Stromsparwunder: Die Umstellung der Erzeugung der Betriebsspannungen 5V/12V auf Stepdown wären sinnvoll. Weiterhin würde man in diesem Fall die Hintergrundbeleuchtung an 5V anschließen, was eine deutliche Reduzierung der Leistungsaufnahme bedeuten würde.
  • Einsatz einer Anzeige mit mehr Zeilen oder gleich ein Grafikdisplay um alle relevanten Informationen gleichzeitig darstellen zu können.
  • Enstörmaßnahmen an den Schaltkontakten der Relais.

Firmware-History

V0.14

  • Erste veröffentlichte Version

V0.15

  • Unterstützung der Alarmfunktionen
  • Bugs bereinigt in den Funktionen 'NewSwitchEvent' und 'NewDimEvent'

V0.16

  • Minimal einstellbare Temperatur ist 0°, um auch eine kleine Hysterese bei der Temperaturregelung einstellen zu können
  • Default Temperatur-Hysterese ist 2.0°
  • Default pH-Hysterese 0.2
  • Verlängerte Alarm-Wiederholzeit