Raspberry Pi: GPIOs schalten: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Mit FHEM lassen sich auch die GPIO's des Raspberry Pi steuern. Generell gibt es einige Möglichkeiten, eine entsprechende Steuerung zu verwirklichen. Als Infor…“) |
|||
Zeile 44: | Zeile 44: | ||
[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] | ||
[[Kategorie:Raspberry Pi]] |
Version vom 13. Mai 2013, 20:35 Uhr
Mit FHEM lassen sich auch die GPIO's 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 Script erfolgt dann mit Angabe des Pins 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 einem 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 &")\ }\ }
Externe Links
http://elinux.org/RPi_Low-level_peripherals
http://search.cpan.org/~mikem/Device-BCM2835-1.0/lib/Device/BCM2835.pm