Cette semaine, nous continuons notre série d'articles "Yoctopuce pour les débutants". Nous allons voir comment tester et configurer un module Yoctopuce. Plus particulièrement, nous allons voir comment configurer un YoctoHub-Wireless-g pour qu'il se connecte sur un réseau sans fil.
Note: Si vous avez déjà utilisé les modules Yoctopuce, vous n'allez probablement pas apprendre beaucoup de choses dans cet article, mais la semaine prochaine on devrait annoncer une nouveauté sympa.
Comme nous l'avons vu dans le premier article de cette série, les modules Yoctopuce sont avant tout conçus pour être utilisés depuis vos propres programmes. Il est possible d'effectuer la configuration de tous les modules directement depuis votre programme en utilisant l'API de programmation, mais pour des petits projets ou lors de votre première fois, il est beaucoup plus facile et pratique d'utiliser les outils fournis. Cette semaine, nous allons voir comment utiliser le VirtualHub pour effectuer ces tâches.
Le VirtualHub
Comme son nom l'indique, le VirtualHub permet de "d’émuler" un YoctoHub sur votre ordinateur. Le but du VirtualHub est à la fois de rendre accessible sur le réseau local les modules connectés par USB, mais aussi de permettre d'utiliser et de configurer rapidement les modules Yoctopuce. Il permet aussi de poster automatiquement les mesures des senseurs connectés dans le cloud, mais cette fonctionnalité sera détaillée dans un prochain article.
Ce qui peut être déroutant la première fois que l'on lance le VirtualHub est que ce n'est pas une application graphique, mais un service qui est prévu pour tourner en tâche de fond. Si vous double-cliquez sur l’exécutable, au mieux l'OS ouvrira un terminal avec quelques lignes de log, au pire l'OS ne saura pas comment lancer l'application. Pour exécuter le VirtualHub, il faut le lancer depuis un terminal. Ensuite, pour accéder à l'interface du VirtualHub, il faut ouvrir un browser Web et se connecter au port 4444 à l'aide de l'URL http://127.0.0.1:4444.
Quel binaire utiliser ?
En fonction de l'OS et de l'architecture de votre ordinateur, on ne va pas utiliser le même exécutable. Nous avons quatre archives pour les quatre systèmes d'exploitation que nous supportons:
- Windows
- Mac OX
- Linux
- QNAP
La version Windows fonctionne sur tous les Windows 32 et 64 bits depuis Windows XP. Nous ne supportons cependant pas les versions Mobile et IoT Windows 10.
L'archive contient deux exécutables. A la racine de l'archive se trouve la version 32 bits du VirtualHub et dans le répertoire amd64 se trouve la version 64 bits du VirtualHub. Honnêtement, il n'y a pas de gain significatif de performance avec la version 64 bits. Par conséquent, vous pouvez vous simplifier la vie et utiliser la version 32 bits sur toutes vos machines Windows.
La version Mac OS fonctionne sur toutes les versions 64 bits de Mac OS X et l'archive ne contient qu'un seul exécutable.
Pour la version Linux, c'est un peu plus compliqué. Nous supportons les architectures Intel 32 bits (/32bits), Intel 64 bits (/64bits), ARM hard float (/armhf), ARM soft float (/armel), ARM 64 bits (/aarch64), mips (/mips) et depuis peu mipsel (/mipsel).
Concrètement, si votre machine est un PC, il faut utiliser la version 32 ou 64 bits Intel; si vous utilisez un Raspberry Pi avec une distribution officielle, il faut utiliser la version ARM hard float qui se trouve dans le répertoire /armhf. Pour les autres cas, vous pouvez regarder ce que la commande "uname -i" retourne ou essayer tous les binaires jusqu'à ce qu'il y en ait un qui s'exécute, c'est moins propre mais ça marche aussi :-)
Par défaut, le VirtualHub a besoin d'être exécuté avec les droits root. Il faut donc le lancer avec la commande
sudo ./VirtualHub
Il est possible de ne pas lancer le VirtualHub avec les droits root, mais cela nécessite de bien configurer les règles udev. Nous en reparlerons dans un prochain article.
Enfin, la version QNAP est un package qui peut être installé sur un NAS de la marque QNAP.
L'interface web du VirtualHub
L'interface web du VirtualHub liste le VirtualHub et les modules branchés à l'ordinateur.
L'interface du VirtualHub avec un Yocto-Meteo branché à l'ordinateur
En cliquant sur le numéro de série d'un module, la fenêtre détails du module s'ouvre. Généralement cette fenêtre affiche l’état du module et permet d'utiliser les fonctions basiques d'un module, comme par exemple commuter un relais ou afficher la valeur des senseurs.
La fenêtre détails du Yocto-Meteo
Les boutons "configure" permettent d’ouvrir le panneau de configuration du module en question. Ces paramètres sont stockés directement dans la mémoire du module, cela veut dire que si vous attribuez le nom "myMeteoSensor" au Yocto-Meteo, il gardera le même nom même si vous branchez ce module sur une autre machine.
Il en va de même pour le bouton "view log file" qui permet d'afficher les logs internes du module. Chaque module possède son propre fichier de log.
Enfin, les vrais modules Yoctopuce ont un troisième bouton "beacon" qui permet d'allumer la led de localisation du module.
Verrouillage du port USB
Si on lance le VirtualHub alors qu'une application ou un autre VirtualHub utilise déjà les modules Yoctopuce de la machine, le VirtualHub ne va pas pouvoir accéder aux ports USB et va afficher le message suivant:
Pour des raisons techniques, une seule application peut accéder aux ports USB, mais nous verrons dans un prochain article qu'il y a des moyens de contourner cette limitation.
Exemple 1: Tester le Yocto-Meteo
Pour tester le Yocto-Meteo, il suffit de brancher le module sur un port USB pour qu'il apparaisse dans le VirtualHub.
Comme pour tous les modules, le panneau détail du Yocto-Meteo affiche le nom du module, la révision du firmware, sa consommation électrique, un bouton qui permet de contrôler la LED de localisation et d'autre informations.
En plus de ces informations, le Yocto-Meteo affiche la température, l'humidité et la pression atmosphérique courante, ainsi que les valeurs minimales et maximale enregistrées pour ces mêmes capteurs.
Une fois que l'on a fini de jouer vérifié que le module fonctionne comme prévu, on peut déjà le brancher sur le YoctoHub-Wireless-g à l'aide d'une des nombreuses solutions possibles.
Exemple 2: Configurer le YoctoHub-Wireless-g
Pour configurer le YoctoHub-Wireless-g à un réseau sans fil, il faut entrer les paramètres du réseau (SSID, clef WPA etc...). Il suffit de le brancher le YoctoHub-Wireless-g par USB sur un ordinateur qui exécute le VirtualHub. Le YoctoHub va apparaître dans l'interface du VirtualHub. Il est ainsi possible de configurer tous les paramètres du YoctoHub en cliquant sur son bouton "configure".
Notez que si le YoctoHub est listé dans le VirtualHub, ce n'est pas le cas des modules qui sont branchés sur les ports du YoctoHub. Le VirtualHub liste uniquement les modules qui sont branchés directement à l'ordinateur.
La fenêtre de configuration du YoctoHub-Wireless-g
Le panneau de configuration du YoctoHub-Wireless-g contient plusieurs sections dont une section "Network configuration" qui permet d’éditer les paramètres du réseau sans fil.
La fenêtre de configuration des paramètres WiFi
Une fois les bons paramètres rentrés, le YoctoHub-Wireless-g se connecte au réseau sans fil. Une fois la connexion établie, le YoctoHub est accessible à la fois par USB en utilisant le VirtualHub mais aussi directement par le réseau en utilisant l'adresse IP qui lui a été attribuée. L'adresse IP utilisée par le YoctoHub est affichée dans la fenêtre de configuration et dans la fenêtre détails.
Se connecter au YoctoHub-Wireless-G
Contrairement au VirtualHub qui répond uniquement au requêtes HTTP sur le port 4444, les YoctoHubs peuvent être accédés par le port 4444 et le port 80. Par exemple dans notre cas, les deux URLs http://192.168.1.69 et http://192.168.1.69:4444 fonctionnent.
Maintenant que le YoctoHub-Wireless-g est configuré pour se connecter au réseau sans fil, on peut le débrancher du PC et l'alimenter par avec un chargeur USB ou tout autre source de courant 5V.
L'inteface Web du YoctoHub-Wireless-g
Conclusion
Vous savez dorénavant comment configurer et tester rapidement les modules Yoctopuce que vous venez de commander. Le prochain article de cette série présentera les différentes librairies de programmation que nous proposons.