Dnes se opět vrátíme k současnému bestseleru, tentokrát s první z možností jak RaspberryPi rozšířit o vstupy a výstupy. Tou nejednoduší možností je využití GPIO pinů přímo na destičce RaspberryPi.



Raspberry Pi má k dispozici 8 volně přístupných GPIO portů. které je možné ovládat. Na následujícím obrázku jsou vybarveny zeleně. Pozor !! GPIO jsou 3.3V a netolerují 5V !! Maximální proud je 16mA!!Bylo by jich možné změnou konfigurace využít víc. Při oživování  jsem vycházel z tohoto německého návodu.

Nejprve je třeba nainstalovat ligthhttpd (nebo apache ) server a PHP5:
sudo groupadd www-data
sudo apt-get install  lighttpd
sudo apt-get install php5-cgi
sudo lighty-enable-mod fastcgi
sudo adduser pi www-data
sudo chown -R www-data:www-data /var/www
Do konfigurace lighthttpd

je třeba přidat:
bin-path" => "/usr/bin/php5-cgi
socket" => "/tmp/php.socket"

Nyní je třeba restartovat lighthttpd:
sudo /etc/init.d/lighttpd force-reload

Tím nám běží webserver s PHP.

Nyní se dostáváme k vlastnímu ovládání GPIO.  Porty můžeme používat jako vstupní i výstupní.  Vše třeba dělat jako root.

Nejprve je třeba port zpřístupnit:
echo "17" > /sys/class/gpio/export

Pak nastavíme jestli je to vstup  (in)  nebo výstup (out):
echo "out" > /sys/class/gpio/gpio17/direction

Hodnotu nastavíme takto:
echo 1 > /sys/class/gpio/gpio17/valu

Stav vyčteme:
cat /sys/class/gpio/gpio17/value

Tímto způsobem můžeme GPIO ovládat přímo z příkazové řádky. Pokud budeme využívat pro ovládání www rozhraní je třeba všem portům nastavit práva tak aby je mohl  ovládat i jiný uživatel než root.
chmod 666 /sys/class/gpio/gpio17/value
chmod 666 /sys/class/gpio/gpio17/direction

Toto je třeba udělat pro všechny porty, které chceme použít. Součástí přiloženého souboru je script, který to udělá za nás. Scripty rozbalíme do /var/www.
Spustíme script na nastavení GPIO:
sudo ./gpio.sh

Nyní můžeme spustit prohlížeč a zadat adresu našeho Raspberry Pi a mělo by se objevit následující rozhraní:

Scripty je samozřejmě možné upravit k obrazu svému