Lorsqu'on veut simplement afficher une mesure physique à l'aide d'un capteur Yoctopuce, il existe plusieurs solutions: écrire son propre programme pour afficher les données du capteur ou utiliser le data logger et l'API en ligne de commande pour exporter les données. Mais il existe une solution encore plus simple: configurer un YoctoHub pour poster les valeurs dans le cloud. Les produits Yoctopuce supportent nativement Xively et Emoncms. Cette semaine nous vous proposons un guide pas à pas pour utiliser ces services avec un YoctoHub.
Ces deux services web permettent d'enregistrer des valeurs mesurées et de représenter les données sous la forme d'un graphique. Bien évidemment, cette solution ne fonctionne que si vous utilisez un YoctoHub (ou un VirtualHub) pour connecter les capteurs environnementaux USB ou les capteurs électriques USB à un réseau local (filaire ou WiFi).
Ces services ont plusieurs avantages par rapport à une solutions "home made":
- Il n'est pas nécessaire de savoir programmer pour utiliser ces outils
- Plus besoin d'un ordinateur pour enregistrer les données. Tout est sauvegardé dans le "cloud"
- Il est possible de consulter les graphiques n'importe où, car on ne se connecte pas au modules Yoctopuce mais au service web. Du moment que l'on a accès à internet, nos données sont accessibles.
- Pas besoin changer la configuration de son routeur ADSL pour accéder au capteur quand on est loin de son domicile
- Pas besoin de maîtriser HTML, Javascript ou CSS pour avoir une page web qui s'affiche correctement sur n'importe quel écran (pc, smartphone, tv, ...)
Cependant, certains de ces avantages sont à double tranchant: si votre connexion internet tombe, les données ne seront plus enregistrées. Les options de customisation de la page web sont peu nombreuses (surtout pour Xively). Et les données sont stockées sur le serveur d'une entreprise, qui peut faire faillite, changer le prix de ses prestations, ou transmettre ces données au côté obscure de la force. Il faut noter que Emoncms est open source et qu'il est donc possible d'installer son propre serveur et ainsi avoir un contrôle complet sur les données.
Dans cet exemple, nous allons vous montrer comment surveiller la température, l'humidité, et le taux de CO2 d'une chambre d'enfant. C'est typiquement le scénario qui se prête bien à ce genre de services: pas besoin de passer une soirée à coder une application, et les données ne sont pas critiques.
Pour le matériel, nous allons utiliser un YoctoHub-Wireless-g sur lequel on branche un Yocto-Meteo et un Yocto-CO2. Une fois configuré, il suffira d'alimenter le YoctoHub-Wireless-g avec un chargeur de téléphone.
La configuration réseau
La première étape consiste à paramétrer correctement le YoctoHub-Wireless-g pour qu'il se connecte sur le réseau WiFi existant. La méthode la plus simple consiste à brancher le port USB de contrôle du YoctoHub-Wireless-g à un PC (ou Mac) et de lancer le VirtualHub. Le VirtualHub est une application (disponible pour Windows, Mac OS X et Linux) qui démarre un serveur web accessible avec le port 4444. Pour accéder à l'interface web du VirtualHub, il faut ouvrir un browser à l'adresse http://localhost:4444.
L'interface du VirtualHub liste les modules connectés par USB sur la machine
Le bouton configure du YoctoHub-Wireless-g ouvre le panneau de configuration du module et la section Network Configuration affiche la configuration actuelle du YoctoHub-Wireless-g. Le bouton edit permet de lancer le wizard de connexion WiFi. Une fois le wizard terminé, le module applique la configuration et, après quelques secondes, l'état du réseau et l'adresse IP du module sont mis à jour. Il ne faut pas oublier de sauver la configuration en cliquant sur le bouton save sinon la configuration précédente sera restaurée lors du prochain démarrage du YoctoHub-Wireless-g.
La dernière étape consiste à vérifier que l'on peut accéder au YoctoHub-Wireless-g par le réseau local. Pour cela, il suffit d'entrer l’adresse IP du YoctoHub-Wireless-g dans un browser web. On peut maintenant stopper le VirtualHub et brancher le Yocto-Meteo et le Yocto-CO2 au YoctoHub. Ces deux modules doivent apparaître dans l'interface web du YoctoHub-Wireless-g.
Pour que le YoctoHub poste les valeurs de tous les capteurs connectés sur un service web (Xively ou Emoncms), il faut accéder au wizard de configuration du Callback HTTP qui se trouve dans la section Outgoing callback de la page de configuration du YoctoHub.
La configuration Xively
Voici une vidéo de toutes les étapes pour de la configuration:
Le wizard de configuration du Callback HTTP a besoin du Feed Id et de l'API Key de Xively. Pour récupérer ces informations, il faut se logger sur Xively et créer un Device (menu DEVELOP, cliquez sur Add Device). Sur la page du Device, le Feed ID figure en haut à droite de la page et l'API Key figure dans la colonne de droite.
Une fois ces deux paramètres entrés, il faut impérativement tester que le callback fonctionne avec le bouton test. Quand tout fonctionne, la page de test doit afficher:
[Connection closed]
Si un message d'erreur est affiché, c'est probablement que vous avez mal copié le Feed ID ou l'API Key.
Le dernier paramètre du wizard permet de définir à quel intervalle les données doivent être envoyées à Xively. Il est tentant de mettre à jour les données chaque seconde mais, en fonction de votre abonnement, Xively se réserve le droit d'ignorer certaines valeurs si vous dépassez votre quota. Avec un compte gratuit, cela ne sert à rien d'envoyer plus souvent qu'une fois par minute. Une fois le wizard terminé, n’oubliez pas de sauver votre nouvelle configuration avec le bouton save.
Si vous retournez sur le site de Xively, le Device que nous venons de créer doit maintenant afficher sept channels qui représentent les sept fonctions que le YoctoHub poste sur Xively (3 pour le Yocto-Meteo 1 pour le Yocto-CO2 et 3 pour le YoctoHub-Wireless-g). Xively affiche en haut à droite une URL "Feed URL" pour accéder directement au graphique.
La configuration Emoncms
Voici une vidéo de toutes les étapes pour de la configuration:
toutes les étapes de |
Pour Emoncms, le wizard de configuration du Callback HTTP a besoin uniquement de l'API key avec les droits d’écriture ("Write API Key") de Emoncms. Vous trouvez cette clef dans la page "My account" ou en cliquant sur le lien "Input API Help" (en haut à droite) dans la page "Input".
Une fois que que vous avez copié la clef dans le wizard du YoctoHub, il faut tester que le callback fonctionne avec le bouton test. Si tout fonctionne, la page de test doit afficher :
ok [Connection closed]
Si un message d'erreur est affiché, c'est probablement que vous avez mal copié l'API Key.
Le dernier paramètre du wizard permet de définir à quel intervalle les données doivent être postées sur Emoncms. Contrairement à Xively, Emoncms n'a pas de limitation sur la quantité de données que vous pouvez uploader. Une fois le wizard terminé, n’oubliez pas de sauver votre nouvelle configuration.
L'interface Emoncms de configuration des feeds
Si vous retournez sur le site de Emoncms, la page input doit afficher les onze input que le YoctoHub a posté (3 pour le Yocto-Meteo 1 pour le Yocto-CO2 et 7 pour le YoctoHub-Wireless-g). Emoncms utilise le concept d'input et de feed. Un input est une source de données brutes et un feed est un flux de donnée enregistrées. Pour pouvoir utiliser les valeurs que poste le YoctoHub, il faut assigner à chaque input un feed auquel les nouvelles valeurs sont ajoutées. Pour cela, il faut cliquer sur l’icône en forme de clef à mollette des input qui nous intéressent (température, humidité, et CO2) et assigner un feed de sortie. Les paramètres par défaut vont très bien pour simplement afficher un graphique, mais il est aussi possible d'effectuer des opérations mathématiques ou logiques sur l'input avant d'ajouter la valeur au feed.
Emoncms supporte de nombreux types de graphiques ou de widgets
La dernière étape consiste à "dessiner" votre dashboard avec l’éditeur intégré. Emoncms supporte de nombreux types de graphiques ou de widgets. Pour chaque graphique, il faut simplement spécifier le feed qui doit être utilisé. Cela permet de créer une page beaucoup plus personnelle que sous Xively.
Une fois que vous avez créé votre dashboard, il est accessible avec l'URL http://emoncms.org/nom_utilisateur/dashboard_alias. Par exemple, le dashboard "demo" de l'utilisateur "yoctopuce_demo" est accessible avec l'URL http://emoncms.org/yoctopuce_demo/demo.
Mais encore
Si vous n'avez pas de YoctoHub, il est possible d'utiliser le VirtualHub et un PC (ou un Mac). En effet le VirtualHub dispose de la même fonctionnalité Outgoing callback que les YoctoHubs. Tous les modules Yoctopuce branchés en USB pourront alors être exploités avec le cloud de votre choix..
Il existe d'autre services web qui proposent des services similaires à Xively et Emoncms, et qui fonctionnent avec les YoctoHub/VirtualHub (par exemple Valarm ou ThingSpeak), mais nous en parlerons dans un prochain post.