Um das ganze nochmal zusammen zu fassen, um zu verstehen was ich da veranstalte:
Einen Fabrikfrischen Pi genommen, einmal Raspbian, Apache2 und PHP5 installiert.
Code
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
echo "1" > /sys/class/gpio/gpio17/value
sudo chmod 666 /sys/class/gpio/gpio17/value
ausgeführt.
Eine PHP im var/www ordner erstellt welche wie folgt aussieht:
Rufe ich die Datei auf sagt der Apache2 log:
Danach habe ich das sudowebscript.sh erstellt
darin steht:
Bash
#!/bin/bash
#
# sudo web script allowing user www-data to run commands with root privilegs
#
# required for GPIO Control:
# git clone git://git.drogon.net/wiringPi
# cd wiringPi/
# ./build
#
# required /etc/sudoers Entry:
# www-data ALL=NOPASSWD:/var/sudowebscript.sh
#
case "$1" in
rpirev) gpio -v | grep "Raspberry Pi is a revision" | awk {'print $7'} ;;
gpio) gpio $(echo $@ | cut -d' ' -f2-) ;;
gpiodirection) echo $2 > /sys/class/gpio/gpio${3}/direction ;;
gpiovalue) echo $2 > /sys/class/gpio/gpio${3}/value ;;
getdirection) cat /sys/class/gpio/gpio${2}/direction ;;
getvalue) cat /sys/class/gpio/gpio${2}/value ;;
*) echo "ERROR: invalid parameter: $1 (for $0)"; exit 1 ;;
esac
exit 0
Alles anzeigen
danach
ausgeführt
danach
ausgeführt
irgendwo
eingetragen
Danach meine PHP datei editiert zu:
PHP
<?php
# RaspberryPI Rev1 GPIO pin's
$GPIO["1"] = "0,1,4,17,21,22,10,9,11,18,23,24,25,8,7";
# RaspberryPI Rev2 GPIO pin's
$GPIO["2"] = "2,3,4,17,27,22,10,9,11,18,23,24,25,8,7";
# get RaspberryPI Revision
exec('sudo /var/sudowebscript.sh rpirev', $output, $error);
$RPIrevision = $output[0];
foreach (explode(",",$GPIO[$RPIrevision]) AS $pin) {
if (file_exists("/sys/class/gpio/gpio".$pin."")) {
$fontcolor="009900";
$Direction = exec("sudo /var/sudowebscript.sh getdirection ".$pin."");
$Value = exec("sudo /var/sudowebscript.sh getvalue ".$pin."");
echo "GPIO ".$pin.": ".$Value." (".$Direction.")<br/>\n";
}
}
?>
Alles anzeigen
Die Ausgabe sieht so aus:
Code
ERROR
2
GPIO 2: ()
GPIO 3: ()
GPIO 4: ()
GPIO 17: ()
GPIO 27: ()
GPIO 22: ()
GPIO 10: ()
GPIO 9: ()
GPIO 11: ()
GPIO 18: ()
GPIO 23: ()
GPIO 24: ()
GPIO 25: ()
GPIO 8: ()
GPIO 7: ()
Alles anzeigen
Danke für eure Hilfe, weiß ich wirklich zu schätzen!