Terrarien- und Aquariensteuerung mit dem Raspberry Pi




Als Terrarianer bzw. Aquarianer steht man immer vor der Aufgabe, irgendwelche Steuerungen und Regelungen durchf�hren zu m�ssen. Das f�ngt schon mit der einfachen Aufgabe an, das Licht an- und abzuschalten. OK, dieses ist mit einer billigen Schaltuhr locker zu machen. Hat man dann aber auch noch eine Spr�hanlage, eine Nebelanlage und eine Heizung, die alle gesteuert oder sogar geregelt werden sollen, wird das Ganze schon komplizierter. Noch schlimmer wird es, wenn man mehrere Becken hat, die auch noch unterschiedlich beheizt werden sollen. Dann braucht man f�r jedes einzelne Becken einen Temperaturregler, der jeweils ganz sch�n ins Geld geht.

Vor ca. 20 Jahren hatte ich dieses Problem mit einem alten 386er PC gel�st, der mittels einer Analog-Digital-Wandlerkarte und einem selbstgeschriebenen Programm den Froschkeller automatisierte. Hilfe, war das ein Aufwand, bis endlich dieses C++-Programm lief, man hat sich Tage und N�chte um die Ohren geschlagen. Irgendwann �rgerte es mich aber, dass der PC, der eigentlich nur die Regelungen und Schaltungen f�r den Froschkeller machen sollte, selber schon ca. 50 Watt zog! Und das, obwohl ich bereits s�mtlichen unn�tzen Ballast ausgebaut hatte, der Monitor immer aus war und ich sogar nur von Diskette gebootet habe, um auch noch die Energie f�r die Festplatte zu sparen. 50 Watt, davon kann man mindestens ein Froschbecken beleuchten und heizen! Daher wurde der PC nach ein paar Jahren ausrangiert und gegen eine C-Control Station ersetzt. Das Ganze l�uft auch nun schon seit einigen Jahren zuverl�ssig und hat sich gut bew�hrt, schaltet Licht, Spr�hanlage und regelt die Temperatur.

Der Zustand wenn alles l�uft ist zwar gut, allerdings f�r einen T�ftler kaum auszuhalten! Man ist fertig und hat nichts mehr zu frickeln!  Zum Gl�ck kam dann die Rettung: der Raspberry Pi tauchte auf dem Markt auf! Dabei handelt es sich um einen scheckkartengro�en Minicomputer, der f�r ca. 30 EUR zu haben und daher f�r T�ftelzwecke geradezu ideal ist! Auf dem Raspberry Pi l�uft ein Linux- Betriebssystem (Raspbian) und man kann ihn f�r alle m�glichen Zwecke einrichten, beispielsweise als Medienserver, NAS-Server, Webserver, Webcam usw. Und auch zur Automatisierung von Terrarienanlagen! Und darum soll es im Folgenden gehen.

fertig angeschlossenen Raspberry Pi

Als Vorbereitung wurde das komplette Internet tagelang (eher wochenlang) nach Infos �ber den RasPi durchsucht. Und davon gibt es reichlich! Anleitungen, Foren, Videos, Hobbyseiten....
Nach einiger Zeit stand f�r mich fest: so ein Raspberry Pi muss her! Weiterhin besorgte ich mir noch eine SD-Karte (mindestens 8 GB), ein paar 1-Wire Temperatursensoren, ein 433 MHz Sendemodul und einen 3er Satz Funksteckdosen. Ein altes Handyladeger�t braucht man noch als Netzteil. Das hat man meistens noch irgendwo rumliegen. Damit konnte es schon losgehen. Die genaue Einkaufsliste seht ihr weiter unten. F�r ca. 50 ?EUR hat man alles was man f�r unsere Zwecke braucht. Wenn ihr das mit dem Preis von einer programmierbaren Steckerleiste vergleicht, kommt ihr in etwa auf denselben Betrag.  Nur, dass man mit dem RasPi viel mehr m�glich ist.

Die ganzen Temperatursensoren k�nnte man durch diverse Programme, die alle frei zu haben sind, auslesen und die Funksteckdosen durch einfache Shell-Befehle schalten, also auch rein zeitabh�ngige Schaltungen mit der Crontab beispielsweise. Viel bequemer und leichter geht das Ganze aber mit der Software FHEM ("Freundliche Hausautomatisierung und Energie-Messung") ein Open Source Projekt von Rudolf Koenig u.a. gestartet. Diese Software ist, wie der Name schon sagt, eigentlich zur Hausautomatisierung gedacht, l�sst sich aber auch als Terrarien- und Aquarienautomatisierung hervorragend verwenden!

Damit ihr nicht auch so lange suchen und rumprobieren m�sst wie ich, habe ich hier im Anschluss eine Anleitung zusammengefasst, die eigentlich f�r mich den Zweck hatte, einen RasPi mal schnell neu aufsetzen zu k�nnen, wenn er sich mal bei mir verabschiedet haben sollte, was aber unwahrscheinlich ist, da er ja mit Linux l�uft. Der Text auch recht kurz und ohne viel Prosa. Falls ihr, genau wie ich, keine Linux-Spezialisten seid, keine Panik! Ihr m�sst einfach nur die folgenden Codes kopieren, euch mit Putty auf dem RasPi einloggen und per rechter Maustaste dort auf der Konsole einf�gen.

Zun�chst Schritt muss man sich jedoch folgende Bauteile besorgen:

Einkaufsliste:

- RaspberryPi je nach Typ: 28 - 38 EUR
- Netzteil mit Mikro-USB-Anschluss (oder altes Handyladeger�t mind. 1 A) 5 EUR
- SD-Karte mit 4 oder besser 8 GB: 5 EUR
- Eventuell ein Geh�use f�r Raspberry Pi: 3 EUR?
- Temperatursensor 1-Wire DS1820: 1,90 EUR oder gleich mit wasserdichtem Kabel: 3,60 EUR
- 433 MHz Sendemodul: 6,20 EUR
- Funk-Steckdosen-Set 433 MHz: z.B. Brennenstuhl Comfort RCS 1000N 3 St�ck im Set: 17 EUR
- einen 4,7 K-Ohm Widerstand: 0,1 EUR

S�mtliche Sachen gibt es z.B. bei
www.reichelt.de


Raspberry Pi einrichten

Eigentlich d�rfte es klar sein, aber damit ich es mal erw�hnt habe, noch der Hinweis:
F�r Sch�den und Unf�lle, die durch das Basteln nach dieser Anleitung entstehen, �bernehme ich keinerlei Haftung. Alles geschieht auf eigene Gefahr. Elektroarbeiten d�rfen nur duch einen geschulten Fachmann ausgef�hrt werden!

Als erstes m�sst ihr euch folgende Software aus dem Internet runterladen:
- das Bertiebssystem f�r den Raspberry Pi von  http://downloads.raspberrypi.org/raspbian_latest herunterladen und entpacken.

- den Win32 Disk Imager suchen, herunterladen und installieren. Dieses Programm wird braucht man, um mit Windows das o.g. Betriebssystem ?Raspbian? auf die SD-Karte zu bekommen. Den Win32 Disk Imager installieren, im entsprechenden Feld das o.g. Image von Raspbian anklicken , SD-Karte in den Kartenleser und dann auf ?Write? dr�cken.

Wenn das Programm Erfolg meldet, die SD-Karte in den RasPi stecken. Der RasPi muss �ber ein Netzwerkkabel mit dem Router verbunden sein. Dann kann man ihn das erste Mal booten.

Jetzt braucht man Zugriff auf den RasPi.  Dazu benutze ich das Programm Putty, darum taucht es auch in dieser Beschreibung immer wieder auf. Putty  kann hier heruntergeladen werden: http://www.putty.org/.

Bevor man sich verbinden kann, muss man auf seienem Router nachsehen, welche IP-Adresse der PasPi von ihm bekommen hat. Dieser ist n�mlich standardm��ig auf DHCP eingestellt, bekommt also seine IP vom Router zugeteilt. Wenn man die rausbekommen hat, startet man Putty und verbindet sich �ber diese IP mit dem Raspberry Pi. Der Benutzername zum Einloggen ist pi und das Passwort rasbperry, alles klein geschrieben.

Dann das Kommando

sudo raspi-config

auf der PasPi-Konsole, d.h. in Putty eingeben. In dem nun angezeigtem blauen Screen dann unter
Punkt
4: Tastatur auf de_DE.Utf-8 umstellen und die Zeitzone einstellen und
Punkt 1: Exand filesystem
- (evtl. Passwort f�r pi �ndern)

- RasPi neu booten  mit

sudo reboot

Gl�ckwunsch, wenn die Kiste neu bootet und auf Benutzernamen und Passwort wartet (ihr wisst schon: pi und raspberry), habt ihr das Betriebssystem erfolgreich installiert! Dieses und die Firmware des RasPi sollte jetzt erstmal auf den neusten Stand gebracht werden. Dazu folgende Befehle auf der Konsole eingeben:

sudo apt-get update

sudo apt-get dist-upgrade -f

sudo rpi-update

sudo reboot

Damit l�uft schon mal der RasPi und ihr habt Zugriff darauf �ber Putty.

Wer das alles nochmal also Video sehen m�chte, dem kann ich diese Links empfehlen:

https://www.youtube.com/watch?v=jwVuhpqvSGI

https://www.youtube.com/watch?v=CL61H2B5SvU

 

Funksender

Jetzt geht es daran den Sender f�r die Funksteckdosen am RasPi einzubauen und die ben�tigte Software zu installieren.

Auf dem RasPi ist eine 26-polige Steckerleiste, die GPIO-Schnittstelle. Damit wird der Sender verbunden und zwar so, wie in folgender Abbildung:

Die Antenne sollte ein 17,3 cm langer Draht sein, dann funkt es am besten. Die Kabel sollten am Sender angel�tet werden. F�r die GPIO-Schnittstelle am RasPi besorgt euch ein Flachbandkabel aus einem alten PC, beispielsweise das Diskettenkabel, siehe Fotos.

Da kommt mal wieder mein Lieblingsmotto zum Tragen: ?Schmei� nie was weg, man kann alles irgendwann mal wieder gebrauchen?. Die Flachbandstecker von den Diskettenlaufwerken haben zwar 34 Pins, aber mit einer S�ge lassen sie sich auf 26 Pins stutzen. Wer einen Raspberry Pi B+ oder 2 hat, muss nicht s�gen, der hat n�mlich 40 GPIO Pins, kann also den Stecker so verwenden. Wir ben�tigen die letzten paar GPIO Pins nicht Die Belegung der ersten 26 Pins bleibt gleich..

Habt ihr den Sender mit dem RasPi verbunden muss noch die Software installiert werden. Einfach folgende Codes kopieren und nach einander mit der rechten Maustaste in Putty einf�gen und mit Enter best�tigen.

sudo apt-get install git-core

sudo git clone git://git.drogon.net/wiringPi

cd wiringPi

sudo ./build

cd ..

sudo git clone git://github.com/xkonni/raspberry-remote.git

sudo cd raspberry-remote

sudo make send

Jetzt sollte man an den Funksteckdosen die Hauscodes einstellen. Das sind auf dem M�useklavier (bzw. DIP-Schalter) die ersten 5 Schalter. Standardm��ig sind diese bei Auslieferung meistens auf 11111 eingestellt. Das sollte direkt ge�ndert werden, wenn ihr nicht wollt, dass der Nachbar euch versehentlich (oder absichtlich) die Spr�hanlage auf Dauerregen stellt. Im Beispiel stellen wir den Hauscode auf 10101. Die 4 Schalter daneben sind mit ABCD bezeichnet, da stellt man den Code f�r die jeweilige Steckdose ein. Warum die Sets, die man im Baumarkt bekommt immer aus 3 Steckdosen bestehen, obwohl es 4 Codes gibt und auch die dazu geh�rige Fernbedienung ebenfalls  4 Schaltm�glichkeiten hat, hat sich mir bis heute auch noch nicht erschlossen.

Egal, zum Testen schalten wir jetzt erst mal die Steckdose C, die nat�rlich in der Steckdose stecken muss, an. Dazu gebt ihr in Putty folgenden Befehl ein oder kopiert ihn:

sudo ./send 10101 3 1

Dabei ist 10101 der Hauscode, 3 die Nummer der Dose (ABCD) und 1 bedeutet AN.

Wenn es jetzt Klick gemacht hat, habt ihr gewonnen! Man m�chte nat�rlich nicht immer am RasPi diesen Befehl eingeben, um eine Steckdose zu schalten. Das k�nnte man ja bequemer mit der Fernbedienung haben. Das ginge aber beispielsweise zeitgesteuert �ber die Crontab, die Linux von Hause aus mitbringt. Aber wir wollen das ja sp�ter bequem machen mit Hilfe von FHEM. Vorher klemmen wir aber der Vollst�ndigkeit halber aber noch die 1-Wire Temperatursensoren an. Wer die nicht braucht, kann das �berspringen und direkt weiter hinten bei FHEM weiter machen.

Auch hierzu gibt es ein hervorragendes Video:

https://www.youtube.com/watch?v=ZOgJtNaJZ_4&index=24&list=PL3-bM7Aq1pUrkASwtwM636PKyyeohGoQa

 
1-Wire Temperatursensoren installieren

Bei den Temperatursensoren handelt es sich um Dallas DS1820. Ich habe die ?nackten? Sensoren gekauft und ein 3-adriges Kabel selbst angel�tet. Es gibt die Sensoren auch fertig mit Kabel, wasserdicht vergossen. Diese kosten kaum mehr als die einzelnen Sensoren, leider wusste ich das nicht, als ich die Dinger bestellt habe. In Zukunft w�rde ich aber nur die fertig konfigurierten kaufen.

Man klemmt die DS1820 laut Abbildung an:

1-wire temperatursensoren

Die Software installation ist einfach.  In die Datei  /boot/config.txt m�ssen lediglich folgende Zeilen eingef�gt werden.

sudo nano /boot/config.txt

Folgende Zeile eintragen:

dtoverlay=w1-gpio-pullup

Danach startet man das System neu mit

sudo reboot

Wenn man alles richtig gemacht hat, ist im Verzeichnis

/sys/bus/w1/devices

ein Unterverzeichnis f�r jeden gefundenen Sensor.

Das kontrolliert man mit:

ls sys/bus/w1/devices

Dort muss jetzt pro angeschlossenem Sensor ein Verzeichnis angelegt worden sein. Die Namen der Verzeichnisse bestehen aus Zahlen und Buchstaben, der eindeutigen Adresse der Sensoren. 

FHEM Installieren

Zuerst Pearl installieren, das ist Voraussetzung f�r FHEM:

sudo apt-get install perl libdevice-serialport-perl 

sudo apt-get install libio-socket-ssl-perl

FHEM Runterladen und installieren(fhem-X.Y.deb eventuell mit der aktuellsten, stabilen Version ersetzen, diese Anleitung ist Stand April 2015):

wget  http://fhem.de/fhem-5.6.deb

sudo dpkg -i fhem-5.6.deb

sudo apt-get install -f

sudo reboot

Um die GPIO-Schnittstelle in FHEM zu nutzen muss  das Modul 58_GPIO4.pm aus dem Verzeichnis /opt/fhem/contrib in das Hauptverzeichnis /opt/fhem/FHEM/ kopieren:

cp /opt/fhem/contrib/58_GPIO4.pm  /opt/fhem/FHEM/58_GPIO4.pm 

Um in FHEM Funksteckdosen schalten zu k�nnen, muss noch ein fehlendes Modul geladen werden, d.h. das  #00_GenShellSwitch.pm runterladen und nach FHEM kopieren:

Auf der Konsole (Putty) eingeben:

wget  http://www.froschkeller.de/download/00_GenShellSwitch.pm

sudo cp 00_GenShellSwitch.pm /opt/fhem/FHEM/00_GenShellSwitch.pm

cd /home/pi/wiringPi/raspberry-remote

sudo chown root ./send
sudo chmod 4711 ./send

Damit ist schon FHEM installiert und f�r unsere Zwecke eingerichtet.

 

FHEM

FHEM starten man, indem man in seinem Web-Browser die IP (kennt man ja schon von Putty) gefolgt von :8083 eingibt, also z.B. 192.168.178.155:8083. Damit hat man die Startseite erreicht. Am besten als erstes f�r WEB, WEBPhone und WEBTablet Basic auth einrichten, damit die Warnmeldungen nicht mehr aufschlagen. Dazu muss man sich zuerst ein verschl�sseltes Passwort besorgen, z.B. bei  http://ostermiller.org/calc/encode.html. Dort gibt man in dem gro�en Feld seinen Benutzernamen und das Passwort durch einen Doppelpunkt getrennt ein, z.B. Mustermann:Passwort und klickt dann auf Encode vor Base64. Dann wird einem ein Zahlen-Buchstabensalat produziert, der das verschl�sselte Passwort darstellt, z.B. QmVudXR6ZXJuYW1lOlBhc3N3b3J0. Diesen Salat kopiert ihr bitte.

Dann geht man auf die FHEM-Seite und tr�gt den Salat als basicAuth ein:  WEB anklicken, unter Room basicAuth ausw�hlen, das codierte Benutzername und Passwort einf�gen und attr anklicken. Das Gleiche f�r WEBPhone und WEBTablet. Dann Save config anklicken!

Dann noch FHEM auf den neusten Stand bringen. Dazu in Befehlszeile update eintragen und anklicken und warten. Nach dem Update shutdown restart in die FHEM-Befehlszeile eingeben.

Damit ist FHEM grundlegend konfiguriert und man kann loslegen.

Um 1-wire-Komponenten auslesen zu k�nnen muss aber noch der Busmaster im FHEM konfiguriert werden:

define RPi GPIO4 BUSMASTER

FHEM Beispiel

Wenn man folgenden Code in die Befehlszeile eingibt, installiert man eine Funksteckdose:

define FunkSteckdose1 GenShellSwitch /home/pi/wiringPi/raspberry-remote/send 10101 3 1 0

Dadurch ist FunkSteckdose1 definiert und kann geschaltet werden. Die ersten 5 Ziffern sind der Hauscode, die 3 ist die Nummer der Steckdose (also C am M�useklavier) die 1 und 0 sind die Zust�nde, die die Dose annehmen kann also 1=AN, 0=AUS.

Unter GPIO4 sollten eure Temperatusensoren auftauchen, falls ihr welche installiert habt. Die kann man mit dem Befehl rename AlterName NeuerName umbenennen. In den Namen d�rfen keine Leerzeichen vorkommen!

Hier noch ein Beispiel f�r eine simple Temperaturregelung: 

define Temp_Regelung DOIF ([Tempsensor1:temperature]  < 25) (set FunkSteckdose1 on) DOELSE (set FunkSteckdose1 off)

Mit folgendem Befehl k�nnte man die Spr�hanlage t�glich um 17 Uhr f�r 30 Sekunden anschalten:

define SpruehanlageAn at *17:00:00 set FunkSteckdose2 on-for-timer 30

Die Messwerte k�nnen auch grafisch dargestellt werden, wie in folgendem Beispiel:

SVH-Plott

Weitere M�glichkeiten entnehmt bitte dieser Anleitung.

Das soll es jetzt erst mal gewesen sein. FHEM ist sehr m�chtig und umfangreich, aber auch sehr leicht zu bedienen, wenn man einmal kapiert hat wie der Hase l�uft. Ich empfehle die Anleitungen von www.fhem.de und das Forum. Au�erdem gibt es auch dazu auf YouTube sehr gute Videos!

Ich hoffe, euch erstmal etwas auf den Geschmack gebracht zu haben und w�nsche euch viel Spa�!


Links zum Thema:


www.fhem.de
www.datenreise.de/ Anleitungen zum Raspberry Pi
Fhem Tutorial Serie Teil 04 - SVG Plots erstellen & einrichten


? Thomas Sch�ffer