Raspberry PI 3 b+ script über gpio starten?

2 Antworten

geht das vielleicht etwas genauer..?

was soll das auslösende event sein?

gpio ist jediglich die schnittstelle

hat sich erledigt danle, hab es hinbekommen

0

Du kannst das Tool "gpio" nutzen. Die Portnummer kann entweder nach dem "wiring pi"- Schema oder nach der Broadcom-internen Verdrahtung erfolgen (letzteres dann mit "gpio -g ..."). Eine Übersicht über den kompletten Schaltzustand bekommst Du mit "gpio readall".

Einzelne Pins kann man mit "gpio [-g] read <portno>" abfragen. Das Ergebnis lässt sich auch per Shellskript verwursten.

Beispiel für ein einfaches Skript:

#!/bin/sh

portnum=12 # hier gewünschte Portnummer eintragen

state=`gpio read $portnum`
if [ "x$state" = "x1" ]
then
  # Aktion für "Bit gesetzt" hier einfügen
else
  # Aktion für "Bit nicht gesetzt" hier einfügen
fi
exit 0

Theoretisch könnte man nun sowas auch in einer Abfrageschleife laufen lassen. Allerdings ist sowas mit einem Shellskript ineffektiv.

Besser deswegen ein kleines C-Progrämmchen o. ä. schreiben, was z. B. alle 500 Millisekunden eben kurz über den Library-Call die Zustandsabfrage macht und dann ggf. bei einem Zustandswechsel des Ports per system() ein externes Handlerskript aufruft. Da kannst Du dann Deine Ein-/Ausschaltkommandos reinsetzen und hättest bezogen auf die eigentliche Pin-Abfrage dann eine generische Lösung, die Du nur einmal programmieren müsstest, und dann auch für zukünftige andere Aktionen weiterverwerten könntest.