Utiliser les capteurs Yoctopuce avec InfluxDB et Grafana

Utiliser les capteurs Yoctopuce avec InfluxDB et Grafana

Les capteurs Yoctopuce sont vendus avec des librairies de programmation plutôt qu'avec des programmes tous ficelés destinés à un usage précis. De ce fait, la plupart des utilisateurs Yoctopuce sont des développeurs. Il y a cependant quelques possiblités d'utilisation clé en main comme l'interface en ligne de commande, un peu rustique, ou l'intégration avec des solutions tierces telles que EmonCMS ou Valarm. Aujourd'hui nous vous présentons une nouvelle solution de ce type: une intégration avec InfluxDB et Grafana.


InfluxDB est une base de données dédiée spécifiquement à stocker des séries temporelles de mesures et d'événements. Elle est très efficace pour retrouver des séries de mesures pour une plage de temps donnée, y compris en les rassemblant pour en faire un résumé. Elle dispose d'une interface HTTP pour procéder à l'insertion de données, et la dernière version du VirtualHub et des firmwares des YoctoHub-Ethernet et YoctoHub-Wireless-g/SR permet directement de poster les mesures par callback HTTP.

Grafana est une interface web très puissante pour visualiser les séries temporelles de mesures sous forme de graphiques. Elle permet de se connecter à différentes bases de données, dont InfluxDB, et d'en extraire en quelques clicks des graphiques dynamique que l'on peut ensuite personnaliser et organiser en tableau de bord.

Installation de InfluxDB


Comme cet article était d'abord destiné aux non-développeurs, nous espérions pouvoir l'illustrer avec une installation sous Windows. Malheureusement InfluxDB n'est actuellement pas disponible pour Windows, même si cela devrait revenir tout prochainement... Donc nous allons vous montrer comment cela marche sur une machine Linux 64 bits (AMD64), pour laquelle il existe des binaires précompilés faciles à installer.

L'installation de InfluxDB est décrite ici: il suffit d'une commande pour downloader le package, et une autre pour l'installer avec le package manager. Ensuite, n'oubliez pas de lancer le service InfluxDB avant de continuer, à l'aide de la commande:

sudo service influxdb start


Une fois le service lancé, vous pouvez vous connecter avec un navigateur sur la console de management à l'adresse http://127.0.0.1:8083 et vous devriez obtenir une page ressemblant à ceci:

Console web de InfluxDB
Console web de InfluxDB


Comme montré sur l'écran ci-dessus, entrez la commande pour créer une base de donnée avec le nom de votre choix (vous pouvez vous aider du drop-down Query Templates).

Configuration des capteurs


Une fois la base de donnée créée, vous pouvez configurer votre VirtualHub ou votre YoctoHub-Ethernet/Wireless pour envoyer ses données directement dans la base de données. Connectez-vous à son interface web, où sont listés les modules présents:

Console web du VirtualHub
Console web du VirtualHub


Pour vous y retrouver plus facilement entre vos différents capteurs, il est recommandé de commencer par donner un nom logique à vos modules, en cliquant sur le bouton configure à côté de chacun d'eux. Ci-dessous, nous donnons le nom inside au Yocto-Meteo qui mesure l'environnement à l'intérieur de notre bureau:

Configuration du Yocto-Meteo
Configuration du Yocto-Meteo



Vous pouvez alors pointer le hub vers votre base de donnée, en cliquant sur son bouton configure. Dans la fenêtre de configuration qui s'ouvre, cherchez la ligne intitulée Callback URL: et cliquez sur le bouton edit. Vous obtiendrez la fenêtre de configuration des callbacks HTTP. Dans le premier menu drop-down, choisissez InfluxDB et vous pourrez rentrer tous les paramètres nécessaires:

Configuration du callback HTTP vers InfluxDB
Configuration du callback HTTP vers InfluxDB


Note: si le choix InfluxDB ne figure pas dans le drop-down, c'est que votre VirtualHub ou le firmware de votre YoctoHub n'est pas assez récent: mettez-le à jour. Spécifiez bien le nom de la base de donnée que vous avez créée, et pressez sur le bouton Test en bas de la fenêtre. Si tout se passe bien, vous obtiendrez simplement le message:

[Connection closed]


Fermez la fenêtre, pressez Save et vous avez fini.

Installation et configuration de Grafana


Pour visualiser les mesures, il ne reste plus qu'à installer Grafana. Vous trouverez les instructions ici, c'est très simple. Sous Debian, si vous ouvrez le fichier .deb, vous pouvez lancer l'installation directement avec l'interface graphique. Une fois Grafana installé, il faut comme InfluxDB le lancer, avec la commande:

sudo service grafana-server start


La console de management est alors disponible à l'adresse http://127.0.0.1:3000 et vous devriez obtenir une page ressemblant à ceci:

Fenêtre de login de Grafana
Fenêtre de login de Grafana


Le login par défaut est admin, avec mot de passe admin. Vous pourrez changer cela selon vos préférences ultérieurement. Une fois connecté, vous obtenez votre tableau de contrôle, pour l'instant très vide. La première chose à faire est de configurer une source de données, en l'occurrence notre base de données InfluxDB. Cliquez donc sur Data Sources, puis Add new en haut. Pointez vers votre serveur InfluxDB, en prenant bien soin de spécifier comme ci-dessous qu'il s'agit du serveur par défaut, qu'il est en InfluxDB version 0.9, et qu'il peut être contacté sur le port 8086:

Configuration de la source de données
Configuration de la source de données


Quand tout est rempli, pressez sur le bouton Add.

Affichage des mesures dans Grafana


Il ne nous reste plus qu'à créer notre premier panneau de contrôle (dashboard) et choisir les mesures à y afficher. Pour cela, cliquez sur le menu intitulé Home, qui est en fait la liste des panneaux de contrôle, et choisissez l'option +New tout en bas. Ensuite, approchez la souris du petit rectangle vert, pour faire apparaître le menu hamburger permettant d'ajouter un graphique:

Menu pour ajouter un graphique
Menu pour ajouter un graphique


Le graphique ajouté ne contient pas de véritables données, il faut encore choisir ce qu'on veut y afficher. Pour cela, cliquez sur le titre du graphique, là où c'est écrit (click here), et pressez sur le bouton Edit qui apparaît alors. Vous obtiendrez l'interface de configuration de votre graphique:

Configuration d'une série de donnée
Configuration d'une série de donnée

  • Cliquez sur select measurement et choisissez yoctopuce: c'est sous ce nom que les mesures seront toujours enregistrées.
  • Cliquez sur value et choisissez par exemple inside_humidity
  • Cliquez sur +Query pour ajouter d'autres séries au même graphique graphique: inside_temperature, ...
  • Cliquez sur la croix en haut à droite du panneau pour supprimer une série du graphique

A ce stade, vos données devraient déjà commencer à s'afficher. Vous pouvez encore passer sur l'onglet General pour changer le titre du graphique. Si vous voulez utiliser une échelle Y séparée pour l'une des mesures, cliquez sur son petit trait de couleur dans la légende du graphique, puis sur le bouton right: elle passera sur l'échelle de droite.

Quand vous êtes satisfait de votre graphique, pressez sur Back to dashboard, puis pressez Ctrl-S ou cliquez sur l'icône en forme de disquette pour sauver votre panneau de contrôle. Vous pouvez répéter l'opération pour ajouter d'autres graphiques soit côte-à-côte avec le premier, soit en dessous grâce au bouton ADD ROW en bas à droite. Vous obtiendrez alors une belle interface de contrôle personnalisée, et extensible à volonté...

Panneau de contrôle complet
Panneau de contrôle complet



Une dernière information: pour cet article, nous avons aussi essayé d'installer InfluxDB sur un Raspberry Pi. Malheureusement, il n'y pas de package précompilé pour le Raspberry Pi, et la compilation depuis les sources selon les instructions trouvée sur le web n'a pas fonctionné pour nous. Dommage...

Commenter aucun commentaire
Retour au blog












Yoctopuce, get your stuff connected.