Funksender an einem alternativen GPIO-Port

433senderIn einem Kommentar zum Artikel “Funksteckdosen mit dem Raspberry Pi steuern” wurde ich gefragt, ob der Funksender auch an einem anderen GPIO-Port als 17 betrieben werden kann. In diesem Artikel möchte ich zeigen, wie das zu bewerkstelligen und was dabei zu beachten ist.

Zunächst bedarf es natürlich der gleichen Vorbereitung, wie im Originalbeitrag. Das heißt, Funksteckdosen besorgen und diese zu einem System konfigurieren.
Der Anschluss des Sendemoduls erfolgt ebenfalls wie im Beitrag beschrieben: VCC mit einem freien 5V-Anschluss verbinden (beispielsweise PIN 2), der auch mit anderen Geräten geteilt werden kann; der Ground-PIN des Senders wird wieder an einen freien GND-PIN des Raspberry angeschlossen (z.B. PIN 6). Sollte nun der GPIO-Port 17 (also PIN 11) bereits belegt sein, wählt man einen alternativen GPIO-Port. Die Portbelegung des Raspberrys ist in diesem Beitrag beschrieben.

 

In unserem Beispiel verwenden wir nun den GPIO-Port 22, welcher der wiring-Pi-Zählweise von 3 entspricht.

Wenn nicht bereits geschehen, installieren wir wie bekannt nun die wiring-Pi-Bibliothek wie folgt als Nutzer “root” auf unserem Raspberry Pi:

apt-get update
apt-get upgrade
apt-get install git-core
cd ~
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Anschließend laden wir das Programm “raspberry-remote” herunter:

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

Nun erfolgt die eigentliche Änderung zum Eingangsbeitrag. Wir ändern vor dem kompilieren im Quellcode den Ausgangsport, an welchem der Sender angeschlossen ist.
Dazu öffnen wir im Verzeichnis “raspberry-remote” die Datei “send.cpp” mit einem favorisierten Editor:

nano send.cpp

und Ändern die Zeile 108 von

int PIN = 0;

in

int PIN = 3;

und die Zeile 24 von

unsigned int PIN = 0;

in

unsigned int PIN = 3;

 

Anschließend übersetzen wir das Programm um eine ausführbare Datei zu erhalten und kopieren diese in das entsprechende Zielverzeichnis:

make send
cp send /usr/local/bin/

Sollte dort bereits die Datei “send” vorhanden sein, überschrieben wir diese.

Nun sollten die Funksteckdosen durch den Programmaufruf

send 11011 2 1

vom Raspberry Pi aus zu steuern sein.