MagPI 9 Page 34

De Le French MagPi
Aller à : Navigation, rechercher

Dans le repaire du Python de ce mois, nous vous montrerons comment contrôler votre Raspberry Pi avec votre téléphone intelligent grâce au cadre web.py de www.webpy.org.

Cet article propose une alternative à l'utilisation de Vala, également abordé dans ce numéro.


Web.py vous permet de présenter des formulaires web sur des clients (Chrome sur Android et Safari sur iOS) et de récupérer le contenu via HTTP POST sur le serveur web (votre Pi). Les valeurs retournées sont fournies directement à votre script Python qui peut alors exécuter toute commande de votre choix. Installer Apache ou Lighttpd est inutile car web.py embarque un serveur web.


Comme exemple, nous utiliserons le navigateur de votre téléphone connecté à votre réseau local en WiFi et votre Pi effectuera un contrôle distant basique de LedBorg (www.piborg.com). LedBorg est une matrice de DEL préassemblée capable d'afficher 27 couleurs. Cependant, pour cette démonstration, nous n'utiliserons que rouge, vert et "noir" (tout éteint). La technique décrite peut aussi bien fonctionner pour tout autre projet de contrôle distant du Pi. Le code spécifique à LedBorg doit juste être remplacé pour correspondre à vos besoins.


Web.py peut être installé depuis la ligne de commande via PIP (voir comment installer PIP dans le numéro 8) :

sudo pip install web.py

Créez ensuite sur votre Pi un répertoire (pyserver dans cet exemple) qui servira de racine au serveur web que web.py va lancer. Créez deux sous-dossiers et enregistrez dans ceux-ci les fichiers suivants :

pyserver/ledborg.py
pyserver/templates/index.html
pyserver/static/styles.css

Concentrons-nous sur les deux premiers fichiers : ledborg.py contient notre code Python et index.html le modèle de page web qui sera appelé lors de l'exécution du programme. La feuille de styles, styles.css, est optionnelle et remplace les boutons traditionnels gris terne des formulaires web par ceux de la capture d'écran, plus grands et colorés. Les styles ont été générés sur www.cssbuttongenerator.com.


Lancez le programme sur votre Pi et naviguez sur son adresse IP depuis votre téléphone, en ajoutant le numéro de port 8080. Cela vous présente le formulaire, permettant l'envoi de commandes à votre script Python par l'appui sur les boutons. Sur cette capture d'exemple, le téléphone se connecte au Pi sur http://192.168.1.69:8080 - l'adresse IP peut être obtenue en exécutant ifconfig en ligne de commande.

ledborg.py
# web.py : contrôlez votre Pi depuis un téléphone intelligent
# avec LedBorg (www.piborg.com) comme exemple
# ColinD 27/12/2012

import web from web import form
VERSION PYTHON : 2.7.3rc2
VERSION PYGAME : 1.9.2a0
O.S. : Debian 7
TESTÉ !
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils