Vous êtes sur la page 1sur 6

BTS SNEC 2020 Prise en main de Node Red

Prise en main de Node Red


1 Présentation
Node RED est un outil puissant développé par IBM pour construire des applications IOT (Internet Of
Things).

C’est un outil de programmation graphique permettant de relier entre eux des composants
matériels, des applications et des services en ligne.

Cet outil utilise une approche de programmation visuelle qui permet au développeur
d’interconnecter des blocs prédéfinis (appelés « Nodes ») afin de réaliser une tâche.

Il propose un éditeur en ligne qui permet aisément de relier des flux en utilisant une large palette de
nœuds. L’application est déployée en un simple clic.

On utilise plusieurs types de nœuds et plus généralement des nœuds d’entrée, des nœuds de sortie
et des nœuds de traitement.

Node RED peut être exécuté :

Sur des composants : Sur un cloud :


En local sur un PC Raspberry, Beagle Bone, IBM Cloud, FRED,Microsoft
Android… Azure…

Page 1
BTS SNEC 2020 Prise en main de Node Red

2 Premier flow :
2.1 Accéder à l’éditeur
Lancer NODE-RED sur la carte raspberry avec la commande « Programming…Node-RED » puis ouvrir
l’éditeur avec un navigateur :

- avec l’URL http://localhost:1880 si vous utilisez le navigateur sur la même machine


- avec l’URL http://<ip-adress>:1880 si vous utilisez le navigateur sur une machine distante

L’éditeur graphique suivant apparaît alors :

L’éditeur est décomposé en 4 zones :

- l’entête (Header) sur le haut contient le bouton de déploiement, le menu principal et si


l’authentification est activée le menu utilisateur
- la palette sur la gauche contient les nœuds divisés en grandes familles (entrées, sorties,
fonctions, réseaux sociaux, stockage, dashboard, raspberry….)
- l’espace de travail au centre (Workspace) permet de créer les flux entre les nœuds
- la barre sur la droite (SideBar) permet d’afficher les informations sur les nœuds, les
messages de debug, le tableau de bord (dashboard), la configuration des nœuds et les
données.

Page 2
BTS SNEC 2020 Prise en main de Node Red

2.2 Ajouter un nœud d’injection (Inject node)


Le nœud d’injection vous permet d’injecter un message dans un flow, il se trouve dans la palette
« input »

 Glisser déposer un nœud d’injection sur l’espace de travail

 Double cliquer sur ce nœud et visualiser ses propriétés :

Propriétés d’un nœud d’injection


Le payload est le message généré par le nœud.
Payload Il peut être de plusieurs types (chaine de caractères, flux, variable globale,
nombre, booléen, JSON, buffer, timestamp, variable d’environnement).
Le topic est le sujet du message envoyé . Par défaut de type « Payload » il peut
Topic
être personnalisé au type de message.
Par défaut le message est généré à chaque
appui sur le Bouton du nœud d’injection

Il peut être généré après un certain temps


suivant le déploiement du programme
Puis répété ou non après un intervalle fixe

Instant ou à dates programmées…


d’Injection

Ou encore à intervalles programmés sur des


plages horaires

Name Il est possible de donner un nom à un point d’injection

 Configurer le nœud d’injection pour générer


une donnée de type « Timestamp » à chaque
appui sur le noeud
 Nommer ce nœud « Temps »
 Valider ce nœud avec le bouton « DONE »

Page 3
BTS SNEC 2020 Prise en main de Node Red

2.3 Ajouter un nœud de debuggage (Debug node)


Le nœud de debuggage permet d’afficher le contenu de n’importe quel message dans la barre de
debug.

 Glisser déposer un nœud de debug sur l’espace de travail

 Double cliquer sur ce nœud et visualiser ses propriétés :

Par défaut il affiche simplement le champ payload du message …


… mais il est possible d’afficher le contenu entier du message.
 Configurer le nœud de debuggage en mode « payload only »

2.4 Connecter les deux noeuds


Connecter la sortie du nœud d’injection à l’entrée du nœud de debug :

2.5 Déploiement
A ce point, les nœuds n’existent que dans l’éditeur et doivent être déployés sur le serveur.

 Appuyer sur le bouton « DEPLOY »

 Sélectionner sur le menu de la barre latérale le mode d’affichage «   debug »


(View..Debug Messages)

 Cliquer sur le carré bleu du bouton d’injection.

Vous devriez voir apparaître des nombres : le nombre envoyé par le nœud
d’injection est le Timestamp, nombre de millisecondes écoulées depuis le 1 er
janvier 1970.

Page 4
BTS SNEC 2020 Prise en main de Node Red

2.6 Ajout d’une fonction


Le Nœud « function » vous permet d’insérer une fonction sur le flux créé :

 Supprimer la connexion entre le nœud d’injection et le nœud de debug

 Insérer un nœud « Function »

 Double cliquer sur le nœud « Function » pour ouvrir la boîte de dialogue puis :

- Nommer le nœud « Calcul date »


- Copier le code ci-dessous 

 Cliquer sur le bouton « Done » pour fermer la boîte de dialogue puis cliquer sur le bouton
« Deploy » pour générer le code associé.

Maintenant, lorsque vous cliquez sur le bouton d’injection, le message dans la


barre de debug va être maintenant formaté en horodatage lisible :

Page 5
BTS SNEC 2020 Prise en main de Node Red

2.7 Injection automatique et masquage des messages de debug


 Modifier le flux pour injecter le timestamp toutes les secondes .

 Valider cette modification en visualisant les messages dans la barre de debug

 Cliquer sur le bouton de debug : les messages de debug doivent être masqués.

2.8 Exportation et importation du code


Le flux créé peut être récupéré dans le presse-papier par la commande « Export to clipbaoard» :

[{"id":"dcd2d14f.f1e45","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"ca911a93.5fafd8","type":"serial-port","z":"","serialport":"/dev/
ttyACM0","serialbaud":"9600","databits":"8","parity":"none","stopbits":"1","waitfor":"","newline":"\\n","bin":"false","out":"char","addchar":"\\
n","responsetimeout":"10000"},
{"id":"2f386635.80e50a","type":"inject","z":"dcd2d14f.f1e45","name":"temps","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":f
alse,"onceDelay":0.1,"x":170,"y":300,"wires":[["9c0f9b2c.bcf388"]]},
{"id":"bdc13cb7.13a8a","type":"debug","z":"dcd2d14f.f1e45","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","t
argetType":"msg","x":510,"y":300,"wires":[]},{"id":"9c0f9b2c.bcf388","type":"function","z":"dcd2d14f.f1e45","name":"Calcul date","func":"// Créer un
objet \"date\" depuis le message reçu \nvar date = new Date(msg.payload);\n// Change l'objet date en chaîne de caractères\nmsg.payload = date.toString();\
n// retourne le message\nreturn msg;\n","outputs":1,"noerr":0,"x":350,"y":300,"wires":[["bdc13cb7.13a8a"]]}]

Il pourra être réimporté dans d’autres projets.

2.9 En résumé
Cet exemple présente les concepts de base de la création de flux avec Node Red. Il montre comment
un nœud d’injection peut être utilisé pour déclencher manuellement ou automatiquement
l’exécution d’un flux et comment un nœud de debug affiche des messages sur la barre latérale. Il
montre également comment le nœud de fonction peut être utilisé pour écrire des commandes
Javascripts pour traiter les messages.

Page 6

Vous aimerez peut-être aussi