Metainformationen zur Seite
  •  

Steuern über Website

Der kleine Rechner ist klasse verwendbar, um Dinge zu steuern oder abzufragen, er lässt sich schnell in andere Projekte, z.B. Hausautomation einbauen. Elegant ist es eine solche Steuerung über eine Internetseite abzuwickeln.

Dieses wird im Folgenden beschrieben:

Webserver installieren:Webserver

Da bei Linux die Rechte sehr eingeschränkt sind ist es notwendig den Benutzer „www-data“ 1) zur Gruppe „dialout“ hinzuzufügen, die auf die serielle Schnittstelle zugreifen darf.

Benutzer zur Gruppe hinzufügen:

nano /etc/group

Und die passende Zeile ändern:

dialout:x:20:pi,www-data

Damit man nun darauf zugreifen kann, muss man den Lighttpdserver neustarten:

/etc/init.d/lighttpd restart

Im folgenden wird ein Programm namens „analog“ erstellt, das auf die serielle Schnittstelle (siehe RaspberryPi mit Arduino koppeln) zugreift. Es übergibt Daten über die serielle Schnittstelle an einen Arduino (Siehe auch: RaspberryPi mit Arduino koppeln).

nano /var/www/analog
import serial
import time
import sys

delay = 0.5
comunicacion = serial.Serial('/dev/ttyAMA0', 9600)
comunicacion.close()
comunicacion.open()

#comunicacion.write(chr(0))
#time.sleep(delay)

#comunicacion.write(chr(255))
#time.sleep(delay)

comunicacion.write(chr( int(sys.argv[1]) ))
time.sleep(delay)

Anschließend sollte das Programm „analog“ ausführbar gemacht werden:

chmod +x /var/www/analog 

Nun erstellt man eine kleine Internetseite. Der Webserver greift auf Dateien zu, die im Verzeichnis „/var/www“ liegen. Im Programm bzw. der Internetseite „bla.php“ soll das Programm „analog“ aufgegriffen werden:

nano /var/www/bla.php
<?php
echo 'Hallo ' . htmlspecialchars($_GET["v"]) . '!';
passthru("/usr/bin/python analog $_GET[v]");
?>

Damit man letztendlich auf den Pi via Website zugreifen kann, wird im Browser IP-Adresse/bla.php?v=230 geöffnet, wobei es sich bei der IP-Adresse um die des Pis und bei v= um den zu Übergebenden Parameter handelt.

1)
der Webserver läuft als Nutzer „www-data“