Raspberry Pi: GPIOs schalten: Unterschied zwischen den Versionen
K (Wikifiziert + kleinere Korrekturen) |
|||
Zeile 1: | Zeile 1: | ||
Mit FHEM lassen sich auch die | Mit FHEM lassen sich auch die '''GPIOs''' des [[Raspberry Pi]] steuern. Generell gibt es einige Möglichkeiten, eine entsprechende Steuerung zu verwirklichen. Als Informationsquelle empfiehlt sich hier die [http://elinux.org/RPi_Low-level_peripherals Low-Level Peripherals Seite des Embedded Linux Wiki] | ||
== Bash Script == | == Bash Script == | ||
Zum schalten der GPIOs via Bash kann folgendes Script (fhem-gpio.sh) verwendet werden: | Zum schalten der GPIOs via Bash kann folgendes Script (fhem-gpio.sh) verwendet werden: | ||
Zeile 16: | Zeile 17: | ||
fi | fi | ||
echo "$STATE" > /sys/class/gpio/gpio$PORT/value</nowiki> | echo "$STATE" > /sys/class/gpio/gpio$PORT/value</nowiki> | ||
Der Aufruf des | Der Aufruf des Scripts erfolgt dann mit Angabe der Pinnummer sowie des Zustands des Pins, z. B.: | ||
<nowiki>fhem-gpio.sh 17 1 # Pin 17 in High-Zustand versetzen | <nowiki>fhem-gpio.sh 17 1 # Pin 17 in High-Zustand versetzen | ||
Zeile 27: | Zeile 28: | ||
== Dummy-Schalter == | == Dummy-Schalter == | ||
Über | Über einen Dummy-Schalter kann das Bash-Script dann getriggert werden. | ||
Im Fall von FS20 sähe eine entsprechende Schalter-Definition beispielsweise so aus: | Im Fall von [[FS20 Allgemein|FS20]] sähe eine entsprechende Schalter-Definition beispielsweise so aus: | ||
<nowiki>define gpio_17 FS20 [Hauscode] [Devicecode] | <nowiki>define gpio_17 FS20 [Hauscode] [Devicecode] | ||
Zeile 41: | Zeile 42: | ||
}</nowiki> | }</nowiki> | ||
== Externe Links == | == Externe Links == | ||
[http://elinux.org/RPi_Low-level_peripherals http://elinux.org/RPi_Low-level_peripherals] | * [http://elinux.org/RPi_Low-level_peripherals http://elinux.org/RPi_Low-level_peripherals] | ||
* [http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm] | |||
[http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm] | |||
{{SORTIERUNG:GPIOs schalten}} | |||
[[Kategorie:Raspberry Pi]] | [[Kategorie:Raspberry Pi]] |
Version vom 23. September 2013, 12:04 Uhr
Mit FHEM lassen sich auch die GPIOs des Raspberry Pi steuern. Generell gibt es einige Möglichkeiten, eine entsprechende Steuerung zu verwirklichen. Als Informationsquelle empfiehlt sich hier die Low-Level Peripherals Seite des Embedded Linux Wiki
Bash Script
Zum schalten der GPIOs via Bash kann folgendes Script (fhem-gpio.sh) verwendet werden:
#!/bin/bash PORT=$1; if ! [ -d /sys/class/gpio/gpio$PORT ] then echo "$PORT" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio$PORT/direction fi STATE=$2; if [ $STATE -gt 1 ] then STATE=1 fi echo "$STATE" > /sys/class/gpio/gpio$PORT/value
Der Aufruf des Scripts erfolgt dann mit Angabe der Pinnummer sowie des Zustands des Pins, z. B.:
fhem-gpio.sh 17 1 # Pin 17 in High-Zustand versetzen fhem-gpio.sh 17 0 # Pin 17 in Low-Zustand versetzen
Wichtig: Das Script muss leider unter root (z.B. per sudo) aufgerufen werden. Der Einfachheithalber kann das Script unter /usr/sbin kopiert werden.
Perl-Modul
In Arbeit: Perl-Modul basierend auf BCM2835-Modul
Dummy-Schalter
Über einen Dummy-Schalter kann das Bash-Script dann getriggert werden.
Im Fall von FS20 sähe eine entsprechende Schalter-Definition beispielsweise so aus:
define gpio_17 FS20 [Hauscode] [Devicecode] attr gpio_17 dummy 1 define act_on_gpio_17 notify gpio_17 {\ if ("%" ne "off") {\ system("sudo fhem-gpio.sh 17 1 &")\ } else {\ system("sudo fhem-gpio.sh 17 0 &")\ }\ }