Skip to main content

Node-Red

image-1587456797926.png

Introduction

Node-RED est une solution développée par IBM, Open Source et basée sur NodeJS qui permet de programmer un serveur de manière graphique. Elle est très simple à prendre en main (même si on a pas d'expérience dans la programmation) et permet de développer très rapidement toute sortes d'application dans de nombreux domaine : services web, stockage et affichage de donnée, domotique, surveillance, robotique ...

image-1587456822677.pngInterface de programmation

Il fonctionne sur presque toutes les plateformes logicielles et matérielles:

  • Linux
  • Windows
  • MacOS
  • Raspberry Pi
  • En cloud Azure ou AWS
  • Et même Android !

image-1587457862563.pngExemple d'application de suivi de consommation électrique

Fonctionnement basique

Installation et connexion

L'interface de programmation fonctionne elle même en mode serveur, c'est à dire qu'elle n'offre pas une interface directe. En faisant une analogie, c'est comme Microsoft Word et Google Doc. Le premier se lance sur son ordinateur et on travaille dans une interface qui fonctionne localement sur le PC. Le second par contre on passe par son navigateur et la majeure partie du programme tourne sur les serveur de Google. Node-RED c'est pareil : qu'importe où on l'installe (localement, sur son smartphone ou sur un serveur ailleurs), une fois installée il faut se connecter dessus avec son navigateur pour l'utiliser.

Le plus simple pour commencer à comprendre est d'utiliser la solution sous Android. Pour celà, il suffit d'installer l'application Red Lite  et de la lancer. Une fois démarrée, il suffit de spécifier un login et un mot de passe, puis d'appuyer sur start. Au bout de quelques secondes, vous devriez voir en bas de l'écran s'afficher l'URL à taper dans un navigateur sur n'importe quel ordinateur connecter au même réseau pour accéder à l'interface.

image-1587458916696.png

Les étapes qui vont suivre sont normalement complètement indépendantes du mode d'installation précédemment utilisé. Android est préconisée au début car c'est la plus simple et la plus rapide, on se s'embête pas avec ça !

Une fois connecté, on me demande le login et le mot de passe que j'ai spécifié dans l'application :

image-1587459008262.png

Me voila dans l'interface !

image-1587459069319.png

Programmation

Le process est très simple :

  • A gauche j'ai tous les nodes que je peux faire glisser avec ma souris dan l'espace centrale. Ces nodes sont des blocs fonctionnels. Le but est d'assembler ces différents blocs pour constituer notre programme.
  • Je relie mes nodes (toujours à la souris en glisser/déposer).
  • Une fois que j'ai fait ce que je voulez, je clique sur Deploy en haut à droite pour déployer (mettre en place) ma solution.

Evidemment il s'agit d'une description très basique du fonctionnement. Beaucoup d'autres outils et mécaniques sont incluses dans la solution, mais il est plus simple en général de les voir au fur et à mesure.

Ateliers

Utilisation de l'API OpenWeatherMap 

Présentation

OpenWeatherMap est une plateforme permettant de récupérer des données météo. Ils mettent à disposition ce qu'on appelle une API qui permet d'obtenir ces données d'une manière simple pour des programmes. Cette API est gratuite avec certaines limitations : on a par exemple pas le droit d'utiliser l'API plus de 1000 fois/jour, mais dans le cadre d'une utilisation personnelle c'est très largement suffisant !

Grâce à Node-Red, on peut utiliser cette API pour récupérer des données météo (sur n'importe quel ville dans le monde) et les afficher :

image-1587459898912.png

Quelle utilité ?

Au-delà de satisfaire sa curiosité scientifique, on peut par exemple utiliser ces données pour mieux piloter son arrosage automatique, envoyer des messages d'alerte (SMS, mail, notification), construire un objet connecté qui change de couleur en fonction du temps qu'il va faire, ou bien encore faire des suivis agronomiques.

Autre idées en vrac

  • Travail avec un objet connecté (prise, interrupteur, capteur de température ...)
  •  

Se connecter avec sa ville

Présentation

Plusieurs collectivités (villes, métropoles ...) ont mis en place des services de mise à disposition de données publiques : transport, cadastres, agenda touristique, voirie ... Tout est susceptible d'être proposé aux citoyens.

image-1587460797193.png

La métropole de Montpellier met ainsi en ligne des données à disposition de ses administrés au travers du portail https://data.montpellier3m.fr/

Trois jeux de données temps réel sont particulièrement intéressants :

Quelle utilité ?

  • Construire un afficheur déporté pour savoir quand le prochain tramway arrive dans la station à proximité.
  • Générer des alertes ("parking plein", "bientôt plus de vélo disponible" ...).
  • Faire des études statistiques de fréquentation.

Mise en place

Plusieurs stratégies peuvent être mise en place afin de réaliser un ateliers autour de NodeRED :

  • On vient avec un serveur et un point d'accès sur le lieu de l'atelier.
  • On loue un serveur chez un hébergeur.
  • On installe la solution sur chaque PC.

Serveur local

Avantage(s)
  • Pas de coût de location.
  • Faible utilisation de bande passante (il faut une connexion internet mais c'est
  • Pas d'installation préalable.
  • Fiabilité (tout dépendra du matériel utilisé cependant).
  • Grâce à de la virtualisation, la remise à zéro des instances est très simple (simple commande à taper).
  • Faible utilisation d'internet (donc même si la connexion fournie a un débit faible, ça ne devrait pas trop perturber les ateliers).
Inconvénient(s)
  • Coût initial du matériel.
  • Il faut tout installer/démarrer en début de sessions. Pas long en soi mais ça fait du matériel à transporter.
  • Dépannage à distance compliqué.
  •  

Serveur distant

Avantage(s)
  • Le serveur peut être valorisé en dehors des ateliers (hébergement de service de l'école, mise à disposition de machine pour les apprenants ...).
  • Dépannage à distance facilité.
  • Aucune installation à faire.
  • Grâce à de la virtualisation, la remise à zéro des instances est très simple (simple commande à taper).
  • Fiabilité.
Inconvénient(s)
  • Tributaire de l'hébergeur : c'est rare mais s'il plante pas d'atelier.
  • "Bonne" connexion internet nécessaires (le besoin n'est pas énorme loin de la, mais une mauvaise connexion entraînera une expérience utilisateur dégradée).
  • Coût : compter entre 15€HT et 50€HT (tout dépendra en fait du niveau de mutualisation qui sera fait du serveur).

Installation sur PC

Avantage(s)
  • Aucun coût.
Inconvénient(s)
  • Obliger de remettre à zéro et de vérifier chaque PC avant chaque atelier.
  • Chaque PC est une potentielle source de problème (plus de machines = plus de chance que l'une tombe en panne ou ait été modifiées par un précédent utilisateur).
  • Dépannage à distance compliqué.

Recommandation

Serveur distant + installation sur PC avec point d'accès 4G. Cette configuration permet de répondre à presque toutes les attentes tout en couvrant un maximum de cas de défaillance.

Scénario d'usage :

  • L'option serveur distant est celle qui est prévue. Il n'y a donc aucun préparatif à faire mis à part remettre les machines virtuelles à zéro et les démarrer (une simple commande à taper).
  • Le point d'accès 4G est démarré. Il est la pour palier à tout problème de réseau, mais normalement l'accès distant passe par des ports standards et ne sera donc normalement bloqué par un pare-feu par exemple. Il permet aussi de palier éventuellement à une mauvaise connexion, si le réseau 4G est néanmoins satisfaisante.
  • Chaque prospect utilise NodeRED au travers du navigateur du PC mis à sa disposition. Il n'y a pas besoin de plus !
  • Si jamais, pour une raison X ou Y, rien ne va (pas de connexion internet, pas de 4G, hébergeur en panne ...) on bascule surt le plan de secours, à savoir installation sur chacun des PC ou utilisation du smartphone des apprenants. Le mieux est d'installer NodeRED au préablable (en effet si pas de connexion internet => on ne pourra pas le télécharger) mais il est inutile de le faire avant chaque sessions. On l'installe une fois en début d'année et c'est tout (peut-être même idéalement l'inclure dans une image disque utiliser pour remettre à zéro les PC en début d'année).