MBED et iPhone ou iPod

le MBED et l'iPhone

Comment faire pour piloter ce microcontrôleur via un iPhone ou un iPod, la solution est avec Wagolink, c'est initialement une application sur AppStore qui permet la commande d'un ou plusieurs automates de type WAGO. Cette application iPhone/iPod est adaptable pour un autre dispositif sur le réseau capable de fournir et de parser un fichier XML.

Il serait possible de faire une page web et des formulaires dans un serveur sur le module MBED mais la solution de WagoLink est plutôt pratique, le fichier XML nécessaire est petit et il sera appelé souvent, le refresh est automatique, coté MBED les ressources sont donc moins sollicités.

WagoLink

Cette application iPhone ou iPod lis régulièrement un fichier XML présent dans le serveur - ici le serveur sera le module MBED. Le fichier XML sera de type wagoML un langage simple et finalisé de passage d'informations vers l'iPhone, L'application se contente de lire et présenter les informations disponibles de façon plutôt simple, le fichier XML décrit les paramètres disponibles, le serveur insère  au passage la valeur des variables si besoin. C'est idéal pour la réalisation de télécommandes. Le site descriptif traite le problème de l'accès réseau au dispositif cible dans divers situations.

On trouvera une description de Wagolink ici : http://pautex.fr/wago/

Il reste à implanter dans le MBED un simple serveur web avec un module RPC, le test des commandes est à faire avec un navigateur. Les exemples sont disponibles sur ce site pour installer un serveur. Le fichier WagoML est aussi à réaliser, une aide est disponible sur la page suivante : wagomlMaker c'est un éditeur de fichier wagoML, les commandes importantes pour le MBED seront du style suivant :

Par exemple pour un bouton : <link>http://mbed_IP/rpc/variable/write+1</link>

la commande est à placer dans un élément <link>, elle sera effectuée en mode GET par WagoLink lors de l'action sur le bouton également pour un slider mais avec sa valeur : <link>http://mbed_IP/rpc/variable/write+%d</link>

Elements disponibles dans Wagolink

  • Affichage de texte simple.
  • Commande par un simple bouton poussoir.
  • Commande par un switch (1 ou 0)
  • Commande par un slider pour la valeur d'une variable.

Le bouton et le slider :

L'implantation sera simple, ces éléments feront une action via une commande RPC sur le module MBED et la directive <link>.  La configuration du fichier WagoML - à placer dans le serveur- consiste à réaliser une URL de type RPC qui sera exécuté à chaque action sur le bouton.

Affichage de valeur :

L'affichage via WagoLink est plus délicat car le module devra remplacer des valeurs dans le fichier XML lors de l'appel. On fera pour commencer un remplacement simple sur une chaine de genre : @M0READ pour lire une variable M0 par exemple.
Une solution est de faire un nouveau Handler de lecture du fichier XML, ce dernier devra fournir le fichier mais insérer au passage les variables demandées dans des emplacements précis.

On utilisera la syntaxe suivante par exemple dans une balise : <IW>@M0READ</IW>
Le handler recherche la chaine "@MnREAD" et la remplace par la valeur numérique de Mn en ASCII, la longueur du fichier XML n'est pas altérée.

Le slider à besoin de la valeur de la variable qu'il va modifier, elle sera renvoyée dans la balise <IW> correspondante. Une première approche est d'utiliser des variables uniquement entières dans la gamme 0...32768, la mise à l'échelle est incluse dans la définition du slider dans wagoML.

Une version de base du Handler est ici : wagoHandler

Installation

Sur le module MBED vous installez votre serveur, choisir un IP fixe et notez-le.
Dans le disque du module vous placez le fichier wagoML réalisé.
Sur l'application Wagolink ajoutez un serveur, remplir l'IP de votre module et l'URL du fichier wagoML.
Réaliser l'URL de façon à pouvoir utiliser le handler spécifique (wagoHandler) en exemple.
Vous devez pouvoir afficher des variables de module et faire des commandes pour allumer une lampe par exemple via l'iPhone. La télécommande est prête !


0 comments

You need to log in to post a comment