PLATEFORME IOT
Enseignant: Dr. Iyed BEN SLIMEN
1
APPLICATIONS NODE RED
2
PRINCIPE DE PROGRAMMATION
Rappelons que l’utilisation et lea programmation Node red consiste à glisser-déplacer les
nodes sur le flow et à les relier entre eux.
Les données échangées entre les nodes sont réellement des objets JSON (JavaScript Object
Notation) et doivent posséder la propriété payload (charge utile).
Rappelons que JSON un format standard utilisé pour représenter des données structurées
de façon semblable aux objets Javascript
Le payload peut être un nombre, une chaine de caractères ou un objet JSON.
Certains nodes peuvent avoir plusieurs sorties. Dans ce cas, le node retourne un tableau
d’objets JSON dont le premier élément sort par la première sortie, le deuxième par le
seconde, …
3
MANIPULATION 1: NŒUDS DASHBOARD
Créer dans un tab « TEST » un groupe « RIOT » dans lequel on insère un slider et une
gauge avec les paramètres suivants, puis vérifier le fonctionnement:
4
Ajouter le node « numeric », puis configurer et deployer. Que
remarquez vous?
Résultat
5
Pour la synchronisation:
6
Pour conserver un historique des valeurs affichées, on peut utiliser un node Chart
7
Résultat Ajoutez un node Text qui permet d’ajouter un label et le
contenu d’un message:
8
9
MANIPULATION 2: NŒUD FUNCTION
Reprendre la même manipulation avec un slider et un texte (sur le dadhboard) ainsi que
le debug afin de voir la changement de la valeur et son horaire comme suit:
10
Pour le réaliser on a besoin du nœud Function. Ce noeud permet d’effectuer n’importe
quel traitement sur le flux entrant pour fabriquer un ou plusieurs flux sortants moyennant
le langage JavaScript.
Les messages transmis dans les flux d’entrée et de sortie des nodes sont des objets. C’est
l’attribut payload qui contient l’information à transmettre.
11
Code JavaScript dans Function
var now = new Date();
var year = [Link]();
var month = [Link]()+1;
var day = [Link]();
var hour = [Link]();
var minute = [Link]();
var second = [Link]();
[Link] = day+"/"+month+"/"+year+" à " +hour+ ":" +minute+ ":"+ second+
" => " + [Link];
return msg;
12
MANIPULATION 3: COMMANDE À DISTANCE
D’UNE DIODE LED
Notre subscriber est l’émulateur Wokwi vu lors du module 2 (remplaçant un branchement
réel d’un carte ESP32 et une diode LED):
[Link]
Nous utilisons deux boutons (dashboard node red) pour commander:
13
Et l’autre avec Payload: OFF
14
Reprendre la même manipulation avec un switch au lieu des boutons; ici nous avons besoin d’un Function node car
la sortie du switch est true/false donc il faut la convertir en ON/OFF ou revenir au code du ESP32 et mettre
true/false
Code JavaScript dans Function
if ([Link]) [Link] = "ON";
else [Link] = "OFF";
return msg;
15
MANIPULATION 4: PORT SÉRIE
NB: cette manipulation ne peut pas être réalisée qu’avec du matériel
Les informations issues de la carte Arduino (prenons deux potentiomètres donnant deux valeurs
instantanées) parviennent à une carte Raspberry (sur laquelle activée node red) via le port série.
Pour cela nous plaçons sur un node Serial in et le configurer pour une connexion à ce port avec
comme caractéristiques par exemple :
débit : 9600 bauds
Stop : 1
parité : aucune
contrôle de flux : aucun
caractère de séparation : "\n«
16
17
En réception on peut avoir un Serial out si vous utilisez la même carte Raspberry ou un subscriber au même broker/topic
18
20
21
22