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
zeitabä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ß! Copyright Thomas Schäffer |