Raspberry Pi

Raspberry Pi: Funksteckdosen steuern mit RC-Switch

Geschrieben von Tony

Das Schalten von 433 MHz Funksteckdosen ist eine beliebte Aufgabe für den Raspberry Pi aus dem Bereich der Hausautomation. Eine eigene Hausautomatisierung mit dem Pi ist gegenüber einer fertigen Lösung aus dem Handel kostengünstiger und bietet mehr Raum für Individualität. Im Artikel Raspberry Pi: 433 MHz Funksteckdosen schalten wurde bereits gezeigt wie man mit dem Tool raspberrypi-remote einen 433 MHz Sender ansteuert und kompatible Geräte schaltet. Raspberrypi-remote basiert auf dem Programm RC-Switch: Die Installation von RC-Switch wird im Folgenden vorgestellt.

Kompatible Funksteckdosen

Funksteckdosen, welche auf der Frequenz 433 Mhz arbeiten, gibt es in diversen Ausführungen im Handel. Überlicherweise sind Funksteckdosen dahingehend konzipiert, dass man einen 1-0-Code über einen DIP-Schalter einstellen kann. Mit Hilfe von diesem kann dann die Steckdose angesprochen werden. Funksteckdosen vom Typ Elro AB440S sind für die Arbeit mit dem Raspberry Pi sehr beliebt und kompatibel. Konkret verwende ich für dieses Tutorial CSL Funksteckdosen von Amazon.

Neben Funksteckdosen mit konfigurierbarem DIP-Schalter sind einige neuere Modelle selbstlernend. Dabei ist kein DIP-Schalter an den Geräten vorhanden, sondern die Steckdose besitzt einen Lernmodus. Während des Lernmodus übernimmt diese das erste gültige Signal und ist anschließend immer darüber ansprechbar. Für selbstlernende Funksteckdosen müsste man mit dem 433 MHz Empfängermodul zunächst den Code empfangen, welches man auch von der Fernbedienung aus sendet um die Steckdose zu schalten. Ein Problem können dabei auch die abweichenden und herstellerspezifischen Protokolle sein.

433 MHz Funkmodul

Zum Schalten von Funksteckdosen benötigt man zunächst einen 433 MHz Sender. Dieses gibt es oftmals in Kombination mit einem Empfängermodul für wenig Geld.

433 MHz Sende- und Empängermodul

433 MHz Funk- Sende und Empfänger Modul

433 MHz Funk- Sende und Empfänger Modul

Links im Bild ist das für uns relevante 433 MHz Sendemodul dargestellt. Dieses verfügt über 3 bzw. 4 Anschlüsse:

  • Pin 1: ATAD (Daten)
  • Pin 2: VCC (Versorgungsspannung)
  • Pin 3: GND (Masse)
  • Pin 4: Ant (Antenne)

Pin 1, 2 und 3 verbinden wir mit dem Raspberry Pi. An Pin 4 (Ant) können wir eine Antenne anschließen bzw. anlöten um die Reichweite des Sendemoduls zu erhöhen. Für die Antenne genügt ein Stück Draht mit der Länge 17 cm. Die Pinbelegung von anderen Modulen kann abweichen, sollte aber dennoch eine ähnliche Struktur aufweisen.

Schaltungsaufbau

Versprgt wird der Sender mit einer Betriebsspannung von 3,3 Volt bis 5 Volt. Wir verwenden hier eine Betriebsspannung von 5Volt um eine größere Sendeleistung und damit auch eine größere Reichweite zu schaffen. Im Detail bedeutet das, dass wir den Pin 2 (VCC) des Moduls mit Pin 2 oder 4 (5V) am Raspberry Pi verbinden. Weiterhin verbinden wir Pin 3 GND mit einem Ground-Pin vom Pi. Für dieses Tutorial verwenden wir Pin 6 des Raspberry Pi. Zuletzt schließt man die Datenleitung des 433 MHz Sendemoduls (Pin 1 ATAD) an Pin 11 (GPIO-Pin 17) am Pi an.

Raspberry Pi 433 MHz Sendemodul Schaltung (Bild: Eagle)

Raspberry Pi 433 MHz Sendemodul Schaltung (Bild: Eagle)

WiringPi installieren

Auf dem Raspberry Pi benötigen wir zunächst die Programmbibliothek wiringPi zum ansteuern der GPIO-Pins. Dazu laden wir uns WiringPi von Guthub herunter:

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

Nachdem das Tool heruntergeladen wurde wechseln wir in das neue Verzeichnis und führen zur Instalaltion von WiringPi den Build-Skript aus.

cd wiringPi
./build

Ist die Installation abgeschlossen, welchseln wir zurück in das Homeverzeichnis.

cd

RC-Switch installieren

Nachdem das Sendemodul angeschlossen und WiringPi heruntergeladen wurde, kann das Tool RC-Switch zum Ansteuern des Sendemoduls bzw. zum Schalten der Funksteckdosen installiert werden. RC-Switch laden wir uns ebenfalls von Github herunter.

git clone https://github.com/r10r/rcswitch-pi.git

Anschließend wechseln wir in das neue Verzeichnis und führen zum installieren das Makefile aus.

cd rcswitch-pi
make

Fertig! Jetzt können wir mit RC-Switch unsere Funksteckdosen schalten. Dazu muss der konfigurierte 1-0-Code über das Funkmodul gesendet werden. Der einzustellende Code setzt sich wie folgt zusammen:

(Systemcode, 5 Stellen)(Unitcode, 5 Stellen)

Der Systemcode, oder auch Hausecode genannt, sollte einheitlich sein. Weiterhin empfiehlt es sich den Hauscode entwas abzuändern, damit nicht zufällig der Nachbar den gleichen verwendet und eure Geräte schaltet – oder umgekehrt. Der Unitcode spiegelt die Steckdosennummer wieder und sollte bei jeder Steckdose unterscheidlich sein, es sei denn, mann will 2 Steckdosen gleichzeitig senden. Der Unitcode ist wie folgt zu übersetzen:

(Unitcode) = 01000 bedeutet Steckdosennummer:2
(Unitcode) = 00001 bedeutet Steckdosennummer:5

Mehr Informationen zur Zusammensetzung und Bedeutung des 1-0-Codes sind im Artikel zu raspberrypi-remote nachzulesen.

Zum Senden des 1-0-Codes an die Steckdose führen wir den Send-Skript von RC-Switch mit entsprechenden Parametern aus.

sudo ./send (Systemcode)(Steckdosennummer)(Zustand 1 An, 0 Aus)

Der Systemcode wird dabei als 1-0-Code eingegeben, die Steckdosennummer jedoch als Übersetzung. Mit dem folgenden Befehl schalten wir zum Beispiel die Steckdose mit der Nummer 2 und dem Systemcode 11101 auf An (1):

sudo ./send 11101 2 1

Die hier vorgestellte Funktionsweise und Handhabung der Send-Funktion ist auf andere Funksteckdosen mit DIP-Konfiguration übertragbar.

Quelle (Stand 08.06.2015): raspberrypi.org

Über den Autor

Tony

Ich bin Tony, begeistert von Einplatinencomputer und berichte über meine Erfahrungen und Projekte mit dem Raspberry Pi, Banana Pi und anderen Minicomputern.

Hinterlasse eine Antwort