Capteurs Yoctopuce dans Node-RED

Capteurs Yoctopuce dans Node-RED

Node-RED est un langage de programmation graphique qui permet de connecter différents services Web, APIs ou périphériques entre eux. Node-RED peut utiliser des données provenant d'un serveur Web, un broker MQTT, un serveur mail ou même de Twitter, mais ne permet pas d'utiliser les senseur Yoctopuce. Jusqu'à hier...




Node-RED est un service écrit en Node.js qui peut être installé sur tous les OS modernes (Windows, Linux, etc). Il est même inclus en standard dans la distribution Raspbian. L'interface Web de ce service est accessible depuis un browser web en utilisant le port 1880. L'originalité de Node-RED est qu'il ne s'agit pas d'une simple application mais d'un langage de programmation graphique.

Contrairement à un langage de programmation traditionnel, l'utilisateur ne tape pas du texte pour décrire la relation entre les objets, mais il "dessine" la relation entre ces objets. Chaque objet est représenté par un "noeud" que l'utilisateur place sur son schéma. Il faut ensuite relier les sorties des noeuds à l'entrée d'un autre. Les noeud peuvent représenter des données d' un service WEB comme par exemple Twitter, une opérations logique comme un test, un widget sur l'interface ou comme nous allons le voire un périphérique. En fonction de ce qu'il représente, le noeud peut avoir zéro ou une entrée et/ou plusieurs sorties.

Par défaut, Node-RED offre un nombre limité de noeud, mais il est possible d'installer des packages supplémentaires maintenu par la communauté. Nous avons donc réalisé un package qui ajoute un nouveau type de noeud YSensor qui permet d'utiliser dans Node-RED la valeur d'un senseur Yoctopuce.

Pour ajouter le noeud YSensor, il faut installer le package node-red-contrib-yoctopuce-sensors dans le répertoire de configuration de Node-RED. Normalement ce répertoire est ~/.node-red sous Unix et %HOMEPATH%\.nodered sous Windows.

    cd ~/.node-red
    npm install node-red-contrib-yoctopuce-sensors



Une fois le package installé, il faut redémarrer Node-RED pour que l'interface de Node-RED affiche le nouveau noeud YSensor dans la section input.

Le noeud YSensor
Le noeud YSensor



Le noeud YSensor


Le noeud YSensor n'a qu'une seule sortie qui publie la valeur du senseur Yoctopuce correspondant. Ce noeud peut être utilisé directement par n'importe quel autre noeud.

Un noeud YSensor a six paramètres:

  1. YoctoHub Hostname
  2. YoctoHub Port
  3. YoctoHub Username
  4. YoctoHub Password
  5. YSensor Hardware ID
  6. Name


Les quatre premiers paramètres correspondent aux informations nécessaires pour se connecter au YoctoHub ou VirtualHub sur lequel est branché le senseur à utiliser. Si le senseur est branché directement sur le serveur Node-RED, il faut aussi lancer le VirtualHub et utiliser les valeurs par défaut. Si le senseur est connecté sur un YoctoHub il faut changer ces paramètres avec ceux configurés dans le YoctoHub.

Les paramètre du noeud YSensor
Les paramètre du noeud YSensor



Le paramètre YSensor Hardware ID correspond à l'identifiant matériel du senseur à utiliser. Par défaut l'identifiant matériel correspond à NuméroSerie.Nomfonction. Par exemple pour la sonde de température du Yocto-Meteo METEOMK1-12345 l'identifiant matériel est METEOMK1-12345.temperature. Cependant, si un nom logique est attribué à un senseur, il est possible d'utiliser ce nom logique.

Le paramètre Name permet d'attribuer une nom au noeud pour que le schéma soit plus claire. Ce nom n'est jamais utilisé par le package Yoctopuce.

Exemple


Comme il est assez compliqué d'expliquer où cliquer et comment relier les noeuds nous avons réalisé trois vidéos qui illustrent l'utilisation du noeud YSensor.

Pour commencer on va réaliser un shema, qui ne fait que logger la valeur du capteur de température d'un Yocto-Meteo dans la console de débug.

Il faut utiliser un noeud YSensor relié à un noeud debug. Lors de la configuration du noeud YSensor, il faut entrer l'identifiant matériel du capteur de température du Yocto-Meteo (METEOMK1-2498B.temperature) et on attribut le nom "Indoor" au noeud. On garde les paramètres de connexion par défaut, car le Yocto-Meteo est branché en USB sur le serveur Node-RED.

  
Exemple d'utilisation du noeud YSensor



Ensuite on va modifier le schémas précédent pour ajouter un noeud graph et un noeud gauge afin de visualiser les données. On relie ces deux noeud au noeud Indoor qui correspond à notre senseur.

  
Graphique de la temperature du Yocto-Meteo



Finalement on va ajouter un deuxième capteur de température à notre schéma, mais cette fois ci le capteur est branché sur un YoctoHub-Ethernet qui a l'adresse IP 192.168.1.67

  
Utilisation de deux noeuds YSensor



Conclusion


Node-RED est un environnement pratique pour réaliser des interfaces ou des automatisations simples en très peu de temps.

Il est possible d'obptenire des graphique assez joli.
Il est possible d'obptenire des graphique assez joli.



Cependant, très rapidement on arrive aux limites de la programmation visuelle: les schémas deviennent trop compliqués et on finit par utiliser des noeuds function dans lequel on code en javascript une partie de la logique. Du coup on finit quand même par écrire un programme...

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.