Le RaspberryPI est une carte complète micro-ordinateur avec Linux comme système d'exploitation. Après installation il est utilisable
pour le pilotage de divers capteurs avec le bus GPIO 26 pins disponible. On utilisera une sortie bit
pour allumer une simple LED via Internet. On utilisera Apache, PHP5 et des scripts Python pour cette tâche.
Le RaspberryPI est le serveur, l'iPhone avec l'application Wagolink la télécommande distante.
Dans cette application le Raspberry PI n'est pas connecté sur un écran ou un clavier, il vous faudra connaitre
l'adresse IP du Raspberry PI dans la suite.
Vous avez avantage à fixer l'adresse IP du Raspberry PI en associant l'adresse MAC de celui-ci avec une IP fixe dans l'interface
du routeur, il sera plus simple de réaliser ensuite les routages de port pour un accès en réseau extérieur.
La commande n'utilisera que le port 80 standard.
On utilisera par la suite Wagolink ou PLClink qui est compatible dans un iPhone pour la commande.
Vous trouvez sur les sites consacrés à ce produit les détails pour le montage de base, la page descriptive donne aussi des détails.
On utilise un mode de lecture SSI, -le fichier est dans le serveur-, le serveur complète le fichier avant envoi au demandeur, on utilisera le langage PHP pour cette action.
On utilisera deux scripts Python pour cet exemple dans le dossier /usr/lib/cgi-bin/ ces scripts sont
utilisables directement dans une url avec les boutons de Wagolink. Vous devez vérifier avec un navigateur
que les scripts réalisent les opérations demandées.
Une LED est placée entre la masse et la sortie PIN 15 = GPIO22. Pour la relecture les PIN 15 et 16 sont connectées ensemble.
Vous devez vous référer à la page suivante pour des informations d'installation.
On réalise un fichier WagoML comme ci-dessous pour obtenir deux boutons ON et OFF, ce fichier sera déposé dans le dossier "/var/www/wagolink.xml" du Raspberrypi, il sera rechargé par wagolink, ce dernier pourra remplacer des balises par les valeurs demandées.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE wagoml PUBLIC "-//wagoml org//DTD WAGOML 1.0//EN" "http://pautex.fr/wago/DTD/WagoML-1.0.dtd"> <wagoml version="1.0" xmlns="http://pautex.fr/wago/"> <title>RaspberryPI-wago</title> <items> <item id="0"> <title>Raspberry</title> <name>Allume lampe</name> <description>PIN 15</description> <type>direct</type> <IW>ON</IW> <affichage>button</affichage> <link>http://192.168.0.100/cgi-bin/allume22.py</link> </item> <item id="1"> <title>Raspberry</title> <name>Eteint lampe</name> <description>PIN 15</description> <type>direct</type> <IW>OFF</IW> <affichage>button</affichage> <link>http://192.168.0.100/cgi-bin/eteindre22.py</link> </item> <item id="2"> <title>Raspberry</title> <name>Etat de la lampe</name> <description>PIN 16</description> <type>direct</type> <IW>#16#</IW> <affichage>text</affichage> </item> </items> </wagoml>
Composez aussi ce fichier à placer dans le même dossier "/var/www/wagolink.php", celui-ci remplacera
la valeur de l'état de la pin 16 dans <IW>#16#</IW>.
Cette méthode est très rapide, le traitement est côté serveur uniquement.
fichier wagoml.php :
<? $fp = popen('python /usr/lib/cgi-bin/readPin.py 16 | tail -1', 'r'); $data = fread($fp, 1024); pclose($fp); $xml = file_get_contents("wagoml.xml"); $file = str_replace("#16#", $data, $xml); echo $file; ?>
Ce script PHP relis le fichier wagoml.xml et remplace la balise #16# par la valeur de l'état de la pin 16 et retourne le le fichier wagoml.xml modifié.
Réalisez une nouvelle entrée sur wagolink avec l'url du fichier PHP ci-dessus.
url : http://IP_raspberrypi/wagoml.php
La sélection ensuite devrait montrer l'écran composé.
La documentation de Wagolink est ici : Wagolink La documentation de PLCLink est ici : PLCLink
Nancy 2012-17 - contact : Pautex JF