Raspberry Pi-Funksteckdosen steuern

Raspberry Pi-Funksteckdosen steuern

18. November 2018 0 Von Frank

Oft möchten Sie (Haushalts-) Geräte mit einer höheren Spannung mit dem Pi steuern können. Raspberry Pi-Funksteckdosen sind dafür ideal, da sie sehr einfach zu steuern sind und Sie den Stromkreis nicht stören müssen. Für dieses und viele andere Projekte gibt es drahtlose Steckdosen, da sie mit kleinen Funksendern im Haus einfach ferngesteuert werden können.

In dieser Anleitung zeige ich Ihnen, wie Sie drahtlose Raspberry Pi-Steckdosen einrichten und konfigurieren und wie sie mit dem Pi gesteuert werden können.

Erforderliches Zubehör

Für die drahtlos gesteuerten Steckdosen ist es wichtig, den Code über einen DIP-Schalter einstellen zu können. Es gibt auch Modelle mit generischem Code. Ich habe einmal ein solches Gerät ausprobiert und konnte weder den korrekten Code lesen noch ein korrektes Signal senden. Obwohl es jetzt Tabellen mit den Codes gibt, kann jeder, der auf der sicheren Seite sein möchte, beispielsweise die oben verlinkten (ohne generische Codes) verwenden.

Konfiguration

Raspberry Pi-Funksteckdosen steuern
Raspberry Pi-Funksteckdosen steuern

Kommen wir zu den Einstellungen der Steckdosen und der Fernbedienung:

In der Fernbedienung kann ein 5-stelliger Code eingestellt werden, indem die DIP-Schalter eingestellt werden. Diesen Code müssen Sie auch in den Sockeln (Öffnung auf der Rückseite) eingeben. Zusätzlich muss ein Name (A-E) angegeben werden. In meinem Beispiel habe ich die 01000 als Code genommen und den Sockel als B gekennzeichnet.

Durch die verschiedenen Codes ist es möglich quasi beliebig viele Steckdosen fernzusteuern.


Software zum Steuern der 433 Mhz Raspberry Pi-Funksteckdosen steuern

Es ist wichtig, dass Sie wiringPi bereits installiert hast.

Nun aktualisieren wir erst einmal alle Pakete und installieren git, falls noch nicht vorhanden:

sudo apt-get install git-core
sudo apt-get update
sudo apt-get upgrade

Wir holen uns nun die 433 Mhz Bibliothek von Ninja Blocks und kompilieren:

git clone --recursive https://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils
make all

Als erstes muss nun der Code der Fernbedienung ausgelesen werden. Falls Sie diesen bereits kennen, können Sie den Schritt überspringen. Ansonsten starten wir

sudo ./RFSniffer

als nächstes drücken Sie auf der Fernbedienung die entsprechenden Tasten. Der empfangene Code wird nun angezeigt (bei mir ist es 6610420 für on und 6610422 für off). Nach Auslesen des Codes können Sie den 433 Mhz Empfänger auch entfernen, falls er Sie stört.

Jetzt erstellen wir eine neue C++ Datei mit folgendem Inhalt:

sudo nano steuerung.cpp
#include "../rc-switch/RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>
 
int main(int argc, char *argv[]) {
// siehe wiringPi Belegung
    int PIN = 0; 
    int codeSocketDon = 6610420;
    int codeSocketDoff = 6610422;
 
    if (wiringPiSetup() == -1) return 1;
 
    RCSwitch mySwitch = RCSwitch();
    mySwitch.enableTransmit(PIN);
 
// hier kannst du deine eigenen Bedingungen setzen
    if (atoi(argv[1]) == 1) {
        mySwitch.send(codeSocketDon, 24);
    } else {
        mySwitch.send(codeSocketDoff, 24);
    }
    return 0;
}

Anschließend muss Sie die Datei auch noch kompiliert werden:

g++ -DRPI ../rc-switch/RCSwitch.cpp steuerung.cpp -o steuerung -lwiringPi

außerdem mittels

sudo ./steuerung 1

können Sie die Steckdose anschalten. Natürlich kann man sich hier noch ganz weitere Dinge überlegen und die Datei zum Beispiel per Python einbinden. Da ist Ihre Kreativität gefragt

Empfehlen