Raspberry Pi: GPIOs schalten: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Wikifiziert + kleinere Korrekturen)
Zeile 1: Zeile 1:
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 [http://elinux.org/RPi_Low-level_peripherals Low-Level Peripherals Seite des Embedded Linux Wiki]
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" &gt; /sys/class/gpio/gpio$PORT/value</nowiki>
echo "$STATE" &gt; /sys/class/gpio/gpio$PORT/value</nowiki>
Der Aufruf des Script erfolgt dann mit Angabe des Pins sowie des Zustands des Pins, z.B.:
Der Aufruf des Scripts erfolgt dann mit Angabe der Pinnummer sowie des Zustands des Pins, z.&nbsp;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 einem Dummy-Schalter kann das Bash-Script dann getriggert werden.  
Ü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 &")\
 }\
}

Externe Links