Terrarien- und Aquariensteuerung mit dem Raspberry PiAls 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.
Als Vorbereitung wurde das komplette Internet
tagelang (eher wochenlang) nach Infos �ber den RasPi durchsucht. Und davon
gibt es reichlich! Anleitungen, Foren, Videos, Hobbyseiten.... 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
Eigentlich d�rfte es klar sein, aber damit
ich es mal erw�hnt habe, noch der Hinweis: Als erstes m�sst ihr euch folgende Software aus dem
Internet runterladen:
- 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 - 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=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
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:
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
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
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
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)
define SpruehanlageAn at *17:00:00 set FunkSteckdose2 on-for-timer 30
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�! ? Thomas Sch�ffer |