Getestet mit:RPi 3; Raspbian Jessie; Py3, Py2
Voraussetzungen:Raspberry Pi mit Raspbian Jessie und Internetverbindung (siehe Schritte 1-7 in der Einfuehrung)
Festrechner mit Netzwerkanbindung
0

CherryPy: ein eleganter Python-Webserver fuer Raspberry Pi Fernbedienungen

Webserver sind grossartig, um Fernbedienungen fuer Raspberry Pi Geraete aufzusetzen. Meist sind sie jedoch schwierig in der Handhabung. CherryPy ist eine grossartige Alternative: ein minimalistischer Webserver in Python, der mit Jinja auch HTML-Templating unterstuetzt.
In diesem Tutorial lernst du die Einrichtung eines einfachen CherryPy Servers zum Schalten einer LED. Da CherryPy in Python ist, kann die GPIO ohne ein JavaScript-Interface gesteuert werden.

Installation
Boote den Raspberry Pi und gib im Terminal ein

Start von CherryPy
Ermittle die IP-Adresse des Raspberry Pi durch die Eingabe von

und notiere sie. Verbinde eine LED mit Pin 13 in BOARD-Nummerierung (27 in BCM). Gib dann ein

und surfe auf den Raspberry Pi durch die Eingabe von

im Webbrowser eines Computers, der eine Netzwerkverbindung mit dem Raspberry Pi hat, mit der vorher ermittelten IP als RASPIIP. Ein Klick auf den Button laesst die LED jetzt leuchten.

Code Details
Der Decorator @cherrypy.expose markiert eine Funktion als Website; wenn die Funktion valides HTML zurueck gibt, kann die Website im Browser geoeffnet werden.

Das von der Funktion index generierte HTML fuehrt ein GET aus, wenn der submit-Button gedrueckt wird, mit blink als Ziel. Die Werte von Input-Eingabefeldern koennen als Parameter mit GET uebergeben werden, pin_str hier.

Die Funktion blink erwartet den Parameter pin_str und schaltet dementsprechend die LED.

Mit der Standardeinstellung bedient CherryPy nur localhost. Durch die Zeile

ist der CherryPy Server verfuegbar fuer alle Maschinen im Netzwerk.

Ganzes Script
Klicke auf Ganzes Script um den ganzen Code anzuzeigen.

Links
CherryPy website: http://cherrypy.org/
Webinterface WebIOPi tutorial: http://www.knight-of-pi.org/de/den-raspberry-pi-aus-dem-netz-kontrollieren-mit-dem-webinterface-webiopi/
HTML Templating mit Jinja auf einem CherryPy server: http://www.knight-of-pi.org/de/bessere-rpi-fernbedienungen-mit-cherrypy-und-jinja-fuer-html-templating/

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

Kommentar

Time limit is exhausted. Please reload CAPTCHA.