Stand: 08.10.2014
Status: -in Überarbeitung -
Homeautomatisierung mit dem Raspberry Pi
Einleitung
Die Ideen zur Verwendung des Raspberry Pi kamen mir, als der Bau einer Entlüftungsanalge für ein Badezimmer geplant wurde. Im Ursprung wurde eine einfache Entlüftung für ein Badezimmer geplant um die vorhandene Feuchtigkeit abzutransportieren. Nach der Anfangsplanung kam mir der Gedanke, der abgeführten Luft die Wärme zu entnehmen und diese der zugeführten Frischluft wieder zuzufügen. Das Projekt der Realisierung der Lüftungsanlage werde ich später auch hier veröffentlichen.
Da durch gegebene Faktoren (Feuchtegehalt und Temperatur, innen sowie außen) eine Steuerung hermusste, fiel nach kurzer Recherche im Internet die Wahl auf den Raspberry Pi. Begeistert hatte mich vor allem, dass es sich um einen kompletten Computer handelte. CPU, RAM und sogar SD-Kartenleser, LAN- und USB-Anschluss. Am wichtigsten aber die Tatsache der vorhandenen IO-Schnittstellen und eines DEBIAN-basierten Linux. Da kannte ich mich schon aus!
Zunächst aber musste ein Weg ermittelt werden. Wie soll das nachher aussehen? Um den richtigen Einstieg zu finden, hatte ich mich Entschieden, erst einmal eine einfache Lichtsteuerung zu erstellen. Diese sollte dann mit dem Smartphone, Tablet und auch einem normalen Webbrowser zu bedienen sein. Also HTML oder App. Mit HTML und PHP hatte ich bereits ein wenig Erfahrung sammeln können. Eine App für das Smartphone zu entwickeln ist für mich Neuland aber durchaus spannend. Im Laufe der Ermittlungen, bin ich auf den http://ai2.appinventor.mit.edu/ gestoßen, mit dem ich meine erste App gebaut hatte.
Â
Voraussetzung
Die einzelnen Schrite detailliert auszuschmücken macht hier wenig Sinn. Vielmehr werde ich versuchen, allgemeine Informationen zu verlinken oder weise auf die Suchmaschinen hin. Die Suchbegriffe appinventor, raspberry pi oder Hinweise zu HTML, PHP oder PERL führen zu mengen von guten Ergebnissen.
Die hier aufgezeigten Lösungen beinhalten u.a. folgende Komponenten:
Hardware
- Raspberry Pi – als zentrale Einheit.
- SD-Karte – hier 16GB (geht auch weniger) für Betriebs- und Dateisystem
- Relaisplatine – gibt’s sehr günstig passend zum Raspberry Pi.
- Temperatur- und Feuchtesensoren
- Gehäuse – HENSEL-Kasten, damit das ganze auch robust unterzubringen ist.
- diverse Elektroartikel – Klemmen, Sicherung etc.
- Debian-Linux – wheezy als SD-Kartenimage
- apache – dient der Kommunikation zu Endgeräten
- xml-rpc – kann, muss aber nicht
- ADAFRUIT_DHT.c – zum auslesen der Temperaur- und Feuchtesensoren
- wiringPi – komfortable Steuerung der IO-Pins des Raspi
- HTML – z.Teil auch HTML5-Elemente, geht aber auch ohne
- CSS – Stylesheet
- PHP – Kopplung von Webbasierter Kommunikation zum Betriebssystem
- perl – Hintergrundprozesse (Schalten der Relais)
- Appinventor – zur Erstellung von Android-Apps
- Startskript in /etc/init.d – damit die nötigen Programme auch nach einem Systemstart automatisch geladen werden.
Implementierung
Debian-wheezy
http://www.raspiprojekt.de/anleitungen/betriebssysteme/1-raspbian-installieren-und-einrichten.html
Apache
- Apache2 neustarten -> /etc/init.d/apache2 restart
skripte
Webseite:
Dateien für die weitere Verarbeitung
Startskript
Dateien der Webseite
- form_m.php
- sensoren_V2.php
Darstellung der Temperatur- und Feuchtedaten in Tabellarischer Form. Ist der verwendete Browser auch HTML5 -fähig, gibt es eine zusätzliche grafische Ausgabe. Der Aufruf dieser Seite ist bewusst nicht PIN-geschützt.
-
css/default.css
Stylesheet zur Darstellung verschiedener Bereiche. So werden hier z.B. die Knöpfe in Abhängikeit des Schalterzustandes grafisch veränder (grün/gelb/rot).
- ../Bad.php
Es können verschiedene Betriebsmodi für die Badentlüftung ausgewählt werden. Der Abluftmotor verfügt über zwei Geschwindigkeitsstufen, die hier eingeschaltet werden können. Ebenso kann der Lüfter deaktiviert oder auf automatischen Betrieb umgestellt werden.
- ../hidden/parameter.php
- rpc.php
Â
Android-App
Der „MIT Appinventor 2“ hat bisher gute Dienste geleistet. Es ist zwar nur eine BETA-Version verfügbar aber dennoch können damit auch komplexe Apps erstellt werden. Besonderheiten des AppInventors sind neben der ONLINE-Verwendbarkeit auch die Tatsache, dass der Programmcode mit grafischen elementen zusammengesetzt wird. So ist es möglich, auch ohne spezielle Kenntnisse von bestimmten Programmiersprachen, CODE zu erzeugen.
Auf der Einstiegseite sind acht Tasten angeordnet, die jeweils ein Relais des Raspi schalten. Die Tastenbeschriftungen werden vom Server gelesen und sind in der Datei parameter.php hinterlegt. Damit können die Beschriftungstexte also zentral gepflegt werden. Bei jedem Tastendruck wird der Zustand, per Methode POST, an die rpc.php gesendet. Auf dem Server erfolgt dann ein Eintrag in eine Datei und es wird ein XML-formatierter Text an die App zurückgegeben. Dieser Text enthält die Zustände aller Tasten und wird auseinandergefriemelt (geparst). Die Tasten erscheinen dann entsprechend dem Schalterzustand in verschiedenen Farben.
Im zweiten Screen können Einstellungen vorgenommen werden.
-
-
- URL der rpc.php => Damit die RPC-Schnittstelle gefunden wird
- URL der sensoren.php => HTML-Seite zur Darstellung der Sensorendaten
-
Â
Schlusswort
Mittlerweile habe ich den Weg über html weiter verfolgt. Das erstellen einer App hat mir zwar Freude bereitet aber die Abhängigkeit zu verschiedenen Gerätetypen und Displaygrößen hat mich dazu gebracht, nur noch Browser zu bedienen. Eine Plattform unabhängige Darstellung begünstigt einen universellen Einsatz. Â Wegen der Elemente von HTML5 ergibt sich hier eine erhebliche Vereinfachung in der Erstellung von Webseiten.