Steckdosen via Raspberry Pi und Webinterface steuern

Um sein Zuhause oder Büro kostengünstig mit einem Raspberry Pi zu steuern benötigt es garnicht mal so viel. Steuerbare Funksteckdosen, einen Pi und ein 433 Mhz Sendemodul reichen schon aus.
Diese Woche geht es um die Steuerung der Funksteckdosen per Komandozeile und Webinterface.
pi
Raspberry Pi mit 433 MHz Sender
Hier erstmal die Liste der genutzen Teile:
Funksteckdosen von Brennenstuhl (Amazon)
433 MHz Funk-Sende- und Empfänger-Modul (Amazon)
Jumperwires female (Amazon)
Antenne (Amazon)
Schritt 1:
Zunächst müssen wir das Sendemodul an den Raspberry Pi anschließen. Bei dem vorgeschlagenen 433 MHz Sender ist dies die quadratische Platine mit drei Pins und einem Anschluss oben rechts (ANT beschriftet).

  • Pin 1 (links): ATAD (Daten)
  • Pin 2 (mitte): VCC (Versorgungsspannung)
  • Pin 3 (rechts): GND (Masse)

Anschluss: Ant (Antenne)Die ersten 3 Pins verbinden wir mit dem Raspberry Pi. Pin 1 kommt hierfür (wie in der untenstehenden Grafik zu sehen) an Pin 11 (GPIO-Pin 17) auf dem Raspberry Pi. Danach bekommt das Modul noch Strom. Dafür den Pin 2 auf Pin 4 am Raspberry Pi anschließen (Auf diesem sind 5V angelegt). Pin 3 (GND) kommt an den Groundpin des Pi’s (Pin 6).
Um die Reichweite zu erhöhen muss noch die Antenne an (ANT) angelötet werden . Ansonsten hat das Modul nur eine Reichweite von ungefähr 2 Metern. Mit Antenne beträgt die Reichweite ca. 30 Meter.rpi_433cct
(Quelle: Einplatinencomputer)
Schritt 2:
Zuerst bringen wir unser Pi auf den neusten Stand. Außerdem brauchen wir zum Installieren der benötigten Software Git , welches wir über den Paketmanager installieren.

sudo apt-get install git

Schritt 3:
Zur Ansteuerung des 433 MHz Senders benötigen wir WiringPi. Hiervon holen wir uns mit Hilfe von Git den Quellcode und führen das Build-Script aus, welches uns einige Dateien kompiliert.

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
cd ..

Schritt 4:
Außerdem brauchen wir Raspberry-remote. Diese Software bietet uns eine Anwendung mit deren Hilfe wir die benötigten Funkbefehle absetzen können.

git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
make send

Schritt 5:
Nun müssen wir noch unsere Funksteckdose einstellen (um an die Pins ranzukommen muss man die kleine Schraube an der Rückseite der Dose öffnen). Damit niemand anderes auf diese zugreifen kann, werden wir zuerst einen zufälligen Code einstellen. Dazu einfach die Kippschalter (1, 2, 3, 4, 5) hoch oder runter stellen. In meinem Fall habe ich jetzt alle Schalter hoch gestellt, was dem Unitcode 1 1 1 1 1 entspricht. Danach stellen wir noch ein auf welchem Channel die Dose hören soll. Ich habe hier “B” gewählt. Um den Channel zu setzen muss man einfach nur den gewünschten Buchstaben auf 1 (hochstellen) setzen.
dose
Schritt 6:
Nachdem alles nach unserem Wunsch eingestellt ist können wir nun testen ob wir die Funksteckdose ansteuern können. Dazu geben wir den folgenden Befehl ein:
sudo ~/raspberry-remote/send [Systemcode] [Steckdosen-Nummer] [Zustand]
Beispiel: Unsere Steckdose einschalten

sudo ~/raspberry-remote/send 11111 2 1

Schritt 7:
Um die Steckdose jetzt per Handy oder Laptop zu steuern können wir gleich das von Raspberry-Remote mitgebrachte Webinterface nutzen. Um dieses zu benutzen müssen noch weitere Pakete installiert werden. Ich werde in diesem Fall den Apache 2 Webserver und PHP5 verwenden. Zusätzlich installieren wir noch den Texteditor VIM.

sudo apt-get install apache2 php5 vim

Nun müssen wir noch den Order in das richtige Verzeichnis kopieren. Das machen wir mit:

mv ~/raspberry-remote/webinterface/* /var/www/send443

Damit das PHP-Skript ordnungsgemäßg funktioniert müssen wir noch die Datei config.php bearbeiten.

cd /var/www/send443
vim config.php

In der Datei ändern wir den Inhalt der Variable $target auf die IP-Adresse unseres Pi´s. Gleichzeitig können wir im unteren Bereich der Konfigurationsdatei die Hauscodes und Funksteckdosennummern, sowie deren Bezeichnung im Webinterface festlegen. Anschließend kann die Datei geschlossen und gespeichert werden. Damit wir diesen nutzen können, muss dieser erstmal installiert bzw. kompiliert werden.

cd raspberry-remote
make daemon

Ist der Daemon installiert können wir ihn mit folgendem Befehl starten. Das & im in der folgenden Zeile bewirkt, dass der Prozess im Hintergrund ausgeführt wird.

sudo ./daemon &

Nun können wir das Webinterface mit einem Browser unter http://<IP>/send433 erreichen.
Screenshot from 2015-11-25 09:28:42
Schritt 8:
Damit wir den Daemon nicht bei jedem Systemstart manuell starten müssen, schreiben wir uns kurz ein kleines Skript dafür:

sudo vim /home/pi/raspberry-remote/send443.sh

In die Datei schreiben wir folgenden Inhalt:

#!/bin/bash
cd /home/pi/raspberry-remote/
sudo ./daemon &
exit 0

Abschließend setzen wir noch die entsprechenden Rechte.

sudo chmod 755 /home/pi/raspberry-remote/send443.sh

Damit sich das Skript automatisch startet müssen wir noch was in der /etc/rc.local ändern.

sudo vim /etc/rc.local

Dort fügen wir folgende Zeile ein und speichern die Datei.

/home/pi/raspberry-remote/send443.sh

Geschafft! Jetzt können wir sowohl über die Konsole, als auch bequem über ein Webinterface unsere Funksteckdosen steuern.

Bastelhardware für die Feiertage: der RaspberryPi

Heut möchte ich ein wenig über den Minicomputer, den RaspberryPi, schreiben. Häufig auf diversen Newsseiten zu lesen und seit Anfang des Jahres (endlich) verfügbar, erfreut sich der RaspberryPi großer Beliebtheit. Für nur 35$ bekommt man die kleine Platine mit einer 700MHz ARM11 CPU, einer OpenGL ES 2.0 fähigen Grafikeinheit und 512MB Arbeitsspeicher. Viele bastelfreudige Menschen haben großartige Projekte mit dem RaspberryPi umgesetzt. Das Spektrum reicht vom Mediacenter daheim bis hin zu einem per Solar betriebenen Mini-Schiff, was selbstständig den Atlantik überquert.
Auch ich habe mich schon seit Ankündigung für den Rechenzwerg interessiert und darf mich nun stolzer Besitzer eines RaspberryPi’s nennen. Von dem Bastelfieber haben sich auch fünf weitere NETWAYS-Mitarbeiter anstecken lassen, was dafür sorgt, dass die kleine Platine immer wieder mal für Gesprächsstoff am Mittagstisch sorgt.
Unser Kollege Stefan aus dem Managed-Services-Team nutzt seinen Pi beispielsweise als heimische Firewall und Router, Sebastian hat seinem RPI die Aufgabe eines Mediencenters mittels der Distribution “Raspbmc” zugewiesen.
Mein eigener Raspberry dient als Bastelplattform zum Experimentieren. So waren meine ersten Gehversuche über die vorhandene GPIO-Schnittstelle ein paar LED’s zum blinken zu bringen, was auch gelang.
Da das Standardbetriebssystem für den kleinen Computer ein angepasstes Debian-Testing ist, gibt es natürlich auch Icinga als Paket für die ARM-Architektur. Somit kann man stromsparend sein eigenes kleines Monitoring für Zuhause aufbauen. Dank der GPIO-Schnittstelle können auch einfach diverse Sensoren ausgelesen werden – alternativ auch über USB. Es bieten sich also sehr viele Möglichkeiten, wie man seinen RaspberryPi einsetzen kann.
Wer neugierig geworden ist, oder gar einen RPI noch zu Weihnachten verschenken möchte, dem lege ich drei deutsche Händler ans Herz, die noch ein paar der kleinen Computer auf Lager haben und ohne lange Wartezeit verschicken können: Pollin Elektronik, Watterott Electronic, Vesaila Computer