5. června 2012

Raspberry Pi - ovládáme GPIO přes web

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 toho 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  /etc/lighttpd/lighttpd.conf
 je třeba přidat:

fastcgi.server = ( ".php" => ((
"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 dostavá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/value
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í balíčku kde je www rozhraní je script, který to udělá za nás. Balíček je možné stáhnout zde.
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 si můžeme upravit dle vlastních potřeb.

1 komentář:

Tomáš Túček řekl(a)...
Tento komentář byl odstraněn autorem.