Für’s Aquarium

Sei es Urlaub oder der Beruf, jeder Tierfreund macht sich da Gedanken, wie er seine Liebsten in Abwesenheit am besten versorgen kann. Für den Urlaub geht es dem Aquarianer um regelmäßige Futtergaben. Ist die ganze Familie unterwegs und steht keine Vertretung zur Verfügung, dann tut es für die Fütterung der Fische mitunter ein Automat.

Der Automat

Futterautomaten für das Aquarium gibt es schon lange. In einer aktuellen Recherche erschienen dem Autor aber längst nicht alle wirklich praktikabel. Zudem bekommt man von den wenigsten Geräten eine Rückmeldung über Störungen, und erlebt nach der Rückkehr mitunter eine schlechte Überraschung. Um das zu verbessern, ist unser Projekt hier entstanden.


Abb.1: Futterautomat mit Kamera

Da macht sich ein Raspberry Pi Zero nicht schlecht, bringt er doch alles mit, um die Mechanik zu steuern und per PiCam Bilder aufzunehmen. Außerdem ist er kompakt genug, um in einem kleinen Gehäuse Platz zu finden. Der Zero W lässt sich drahtlos ins heimische Netzwerk einbinden, und man kann diverse Aufnahmen auch per Web für unterwegs bereitstellen. So soll er nun unsere Steuerzentrale sein.

Ziel war ein einfacher und damit für Fehler wenig anfälliger Aufbau. So kommen wir für die mechanische Steuerung mit nur einem kleinen Servomotor aus. Die Verschaltung der Elektronik gestaltet sich genauso übersichtlich. Für einen gewissen Komfort haben wir unsere eigene Ansteuerung entwickelt. Über zwei Futterspeicher schaffen wir Abwechslung, völlig ausreichend zur Überbrückung der Urlaubstage.

Inbetriebnahme

Um den Pi in Betrieb zu nehmen, laden wir wie gewohnt ein neues PiOS-Image herunter und bringen es auf eine MicroSD-Karte. Mit angestecktem Bildschirm und Tastatur lassen sich die Boot-Optionen und Netzwerkeinstellungen konfigurieren. Den Desktop brauchen wir später nicht, so wählen wir die automatische Anmeldung per CLI und aktivieren ssh und Kamera.

Wer ein fertiges Image mit aktiviertem ssh und WLAN-Zugang ins heimische Netz vorbereitet hat, braucht am Pi keine Peripherie anzuschließen und kann ihn gleich von einem anderen Netzwerkrechner aus erreichen. Von einem Terminal dort lassen sich dann alle weiteren Einstellungen vornehmen.

So soll unser Pi auch einen der Aufgabe entsprechenden Hostnamen bekommen. Bei uns heißt er „feeder“. Für die Dateien im Projekt legen wir im Homeverzeichnis ein eigenes Unterverzeichnis an. Dort findet sich auch das Steuerskript in Python3. Das soll nicht etwa beim Start des Pi als speicherresidentes Programm geladen, sondern mittels Cron in definierten Abständen immer wieder aufgerufen werden.

Alles zu seiner Zeit

Der Plan für die Fütterungen ist deshalb in der Crontab des Pi festgelegt. Den dorthin auszulagern, fand ich eine gute Methode, wo einem die Crontab doch das eigene Zeitmanagement abnimmt. So sieht unser kleiner Plan aktuell aus:

# m h dom mon dow command
# Sonntag bis Freitag
0 17 * * 0-5 python3 /home/pi/scripts/feed.py 1
# Samstag
0 17 * * 6 python3 /home/pi/scripts/feed.py 2
# Jede Minute
*/1 * * * * python3 /home/pi/scripts/feed.py 0

Damit ist festgelegt, dass jeden Tag um 17 Uhr gefüttert wird. Am Samstag startet das Skript mit der Option „2“ auf der Kommandozeile, so wird alternatives Futter aus dem zweiten Schacht des Automaten einmal pro Woche freigegeben. Der dritte Eintrag in der Tab ist für die Bereitschaftsanzeige (minütliches Aufblinken der Board-LED) und dem Einlesen der Fernsteuercodes aus dem Web vorgesehen.

Was benötigt wird

Schaut man sich käufliche Automaten an, so erscheint die Mechanik von manchen relativ kompliziert, wie beispielsweise bei einem Karussell mit bestückbaren Fächern. Im Unterschied dazu sollte unser Futterautomat möglichst einfach aufgebaut werden, so dass der Eigenbau gut beherrschbar bleibt und in Abwesenheit sicher funktioniert. Dennoch wollten wir sowohl bei der Bedienung als auch bei der Funktionalität auf einen gewissen Komfort nicht verzichten, die unseren Lieblingen bei der Versorgung zugute kommen soll. So sind wenigstens zwei Futterröhren für verschiedenes Futter vorgesehen.


Abb.2: Was benötigt wird

Länger hab‘ ich auch darüber nachgedacht, wie man von Ferne auch sicher gehen kann, dass die Tiere auch wirklich gut versorgt werden. Ein störungsfreier Betrieb ist wichtig, der gibt aber noch keine Rückmeldung, ob wirklich Nahrung in das Aquarium gelangt ist. So kam die Idee auf, das Fressen der Fische per Kamera aufzunehmen und eine Aufnahme dazu per Web bereitzustellen.

Da wir einen RPi benutzen, sind alle Bordmittel bereits vorhanden, und wir schließen an ihm noch eine PiCam an, die nach Futtergabe mit etwas Verzögerung immer ein Außenbild macht. Dazu reicht ein Ausschnitt der Front vom Aquarium, bei uns links oben, wo der Automat sitzt.

Zum Schutz haben wir Pi und Kamera jeweils noch in einem kleinen Gehäuse untergebracht. Die Anzahl der sonstigen Teile im Projekt ist überschaubar, so dass es nur eine kleine Liste an Bauteilen gibt.

Bauteilliste
Pi Zero W (1/2)
PiCam R1.3 oder höher
Gehäuse für RPi und Cam
Kamera-Verbindungskabel
Mini-Servo (MG90 oder vergleichbar)
Leiterplatte, zwei Taster, LED, diverse Widerstände
Futterturm im Eigenbau

Bauarbeiten

Bei unserer Lösung wird Futter ganz klassisch durch einen kleinen Speicherturm bereitgestellt und fällt per Schwerkraft in eine Öffnung im Aquariumgehäuse von oben ein. Einen solchen Futterturm kann man sich mit Teilen aus dem Baumarkt bauen oder Material online aus dem Bastlerbedarf bestellen. Wir haben ihn mit Hilfe eines Stiftehalters für den Schreibtisch hergestellt. Ein Teil, was man im Handel gut bekommt und oft auch aus transparentem Plastik hergestellt wird, gut, um in einem ausgesparten Fenster den notwendigen Füllstand beobachten zu können.

Jetzt hieß es, zu sägen und entsprechende Bohrungen anzubringen. Danach kamen Servo nebst Mechanik dazu. Das Ganze wurde dann auf einer Grundplatte angebracht, die außerdem noch den RPi und unsere kleine Leiterplatte mit Status-LED und Bedientastern trägt.


Abb.3: Arbeiten am Futterturm

Für den Futterauslass haben wir eine eigene Mechanik entwickelt. Je nach Drehrichtung des Servos wird eine der beiden Röhren geöffnet. Dazu geht durch beide Röhren eine gerade Welle, auf der für jede der beiden Öffnungen ein Schließkörper angebracht ist.

Durch eine im Winkel versetzte Anordnung wird bei einer kurzen Links- oder Rechtsdrehung jeweils nur einer der beiden Schächte bedient und wird kurze Zeit danach wieder geschlossen. Die Schließkörper dienen dabei als kleine Schaufeln, so dass kein Schacht permanent offen ist und immer nur die gewünschte Futtermenge transportiert wird.


Abb.4: Auslassmechanismus

Unser 160-Liter Aquarium mit moderatem Tierbesatz benötigt pro Tag nicht mehr als einen gehäuften Teelöffel an Trockenfutter. Damit ist der Vorrat im Automat ausreichend für einen dreiwöchigen Urlaub. Wer da etwa mehr Reserve benötigt, kann seinen Aufbau hinsichtlich Durchmesser und Höhe der Röhren auf seine Bedürfnisse anpassen.

Steuerung

Der Fütterungsablauf geschieht nach Anlegen der Versorgungsspannung automatisch. Wie in der Crontab des Pi festgelegt, gibt der Automat einmal am Tag eine Futtergabe ab. Samstags wird Futter aus dem zweiten Schacht geholt, in dem wir den Servo im gleichen Winkel aber in entgegengesetzter Richtung drehen lassen.


Abb.5: Schaltplan

Einmal pro Minute gibt es ein Bereitschaftszeichen über die Gehäuse-LED. Um auch alle Ereignisse am Gerät nachvollziehen zu können, zeigt die LED noch diverse Blinkcodes:

  • Alive-Status, jede Minute – 1mal lang
  • Schacht 1 öffnet plus Foto – 1mal mittellang
  • Schacht 2 öffnet plus Foto – 2mal mittellang
  • Einzelne Aufnahme – 3mal kurz
  • RPi wird heruntergefahren – 3mal sehr kurz

Nicht im Schaltplan zu sehen, sind noch zwei Taster am Gehäuse vorgesehen, die an den GPIOs des Pi hängen, um eine Futtergabe im ersten Schacht auszulösen oder den Pi geordnet herunterzufahren.

Da unser Automat im lokalen Netzwerk hängt, kann man ihn auch von dort aus warten. Dazu meldet man sich in einem Netzwerk-Terminal mittels

$ ssh pi@feeder

per ssh an und kann diverse Änderungen an der Crontab oder dem Steuerskript vornehmen. Bei Bedarf auch durch Aufruf von

$ python3 /home/pi/scripts/feed.py 4

Option „4“ stellt den Wartungsmodus ohne weitere Aktionen sicher.

Beobachtungen

Einen interessanten Mehrwert finde ich nun die Beobachtung der Fische, ob sie tatsächlich Futter aus dem Automaten bekommen haben. Dazu macht unser Steuerskript nach Bedienung des Servo mit Verzögerung von 10 Sekunden eine Aufnahme der Front des Aquarium.

Eine PiCam R1.3 reicht uns, wollen wir doch nur einen Auschnitt der Frontfläche aufnehmen, wo auch die Bildqualität eher zweitrangig ist. Damit wir vom Automat auf der Oberseite vom Aquarium vor die Glasscheibe kommen, ist je nach Höhe des Aquariumdeckels ein etwas längeres Kamerakabel (bei uns 30cm) notwendig. Ein schmales Aluminiumblech fixiert dann das kleine Kameragehäuse einige Zentimeter vor der Scheibe.


Abb.6: Beobachtung per Web – Futter fällt ein

Um scharfe Aufnahmen zu bekommen, soll an der Cam nun noch eine möglichst kurze Brennweite eingestellt werden, indem man den Einstellring des kleinen Objektivs mit einem Werkzeug ganz vorsichtig bewegt und zwischendurch Probeaufnahmen macht. Das ist ein bisschen knifflig, aber es gute Anleitung im Web dazu.

Die Anbindung ans Netzwerk hat nun vorrangig die Aufgabe, das nach einer Fütterung geschossene Foto über die Ferne verfügbar zu machen, damit man auch kontrollieren kann. Daneben haben wir auch noch ein paar Bedienelemente vorgesehen. Dazu braucht es einen HTTP-Server auf dem Pi. Die Installation von „Lighty“ und PHP auf dem Raspberry Pi braucht ein paar Schritte, ist aber gut dokumentiert, so dass auf die weitere Beschreibung hier verzichtet werden soll.

Die Website unseres Automaten, wo man das letzte Fütterungsbild beobachten und eine nachträgliche Fütterung nebst Foto über drei Button auslösen kann, ist in PHP realisiert und steht im WWW-Verzeichnis des Pi. Den Code dafür sowie das Phytonscript zur Steuerung des Pi findet man bei meinen Github-Projekten unter https://github.com/swenae/feeder.

Der Aufruf der Weboberfläche im lokalen Netz ist dann denkbar einfach, in dem man die heimische Adresse des RPi im Browser eingibt. Um Beobachtungen im Urlaub und von Ferne machen zu können, muss man den Server auf dem Pi im Router noch für das Web freigeben und ihm eine permanente IP verpassen. Wer aber etwa schon eine Website mit FTP-Zugang hat, kann sich auch das aktuelle Fütterrungsbild auf den eigenen Webspace hochladen lassen und es von da aus betrachten.

Fazit

Der Futterautomat ist nunmehr seit zwei kurzen Urlauben bei mir in Betrieb gewesen, über diese Zeit per Steckernetzteil angeschlossen und später wieder entfernt. Da ich von Anfang an auf einen Eigenbau orientiert hatte, war mir der Wettbewerb zu käuflichen Lösungen weniger wichtig. Da wollte ich eine Lösung schaffen, die meine Bedürfnisse erfüllt und daneben aber auch stabil genug sein sollte. Denn bei der Versorgung der eigenen Tiere wollte ich keine Kompromisse machen.

Und klar, die beste Rückmeldung über die Ferne nützt nichts, wenn man niemanden vor Ort hat, um im Notfall etwa einzugreifen. Da ist derjenige glücklich, der aus Familie oder Nachbarn eine Urlaubsvertretung hat, beim Blumen gießen oder eben auch bei den „kleinen“ Haustieren im Aquarium…

Schreibe einen Kommentar

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