Node-RED et le Modbus
Node-RED est capable d'envoyer des requêtes Modbus et donc capable de contrôler la carte TickTock.
De plus nous avons vu que Node-RED permet de créer un tableau de bord et dispose de nombreux nœuds de contrôle et de visualisation de données.
Objectif :
obtenir sous Node-RED un tableau de bord qui contrôle la led bleue et qui affiche l'état du bouton-poussoir K1 ;
accéder au tableau de bord à l'aide de son téléphone portable connecté au réseau 3G, 4G ou 5G.
Commande de la led bleue D1
Objectif : configurer le nœud Modbus - et le nœud pour piloter la led bleue D1 du shield TickTock.
Méthode :
Lancer Node-RED puis insérer un nœud Modbus - Write
que l'on nommera Led D1.
Double-cliquer sur le nœud puis ajouter un nouveau client Modbus (client = maître).
Ajout d'un nouveau maître Modbus

Paramétrer le client en cliquant sur le crayon
puis donner les valeurs correctes aux champs suivants :
Champ du client | Valeur | Signification |
Type |
| Protocole utilisé sur une liaison série (RS232 dans notre cas) |
Serial port | à renseigner | Port sur lequel est connectée la carte Uno |
Serial type |
| Format des données échangées |
Baud rate | à renseigner | Débit de la liaison série |
Unit-Id | à renseigner | Adresse Modbus de l'esclave |
Reconnect on timeout | Décoché | Pas de reconnexion si l'esclave ne répond pas au bout d'1 s. |
Valider les réglages en cliquant sur Add
.
Dans la fenêtre du nœud Modbus - Write, choisir le code fonction (FC) et l'adresse de donnée du Coil (Address) qui correspond à la led bleue. Laisser le champ Unit-Id vide.
Cliquer sur le bouton Done
une fois vos réglages effectués.
Raccorder 2 nœuds Inject
raccordés sur l'entrée du nœud Modbus - Write et réglés l'un à true et l'autre à false (type boolean).
Déployer votre flot et vérifier que la led bleue s'allume et s'éteint selon que l'on injecte true ou false.
Insérez un nœud switch
que l'on nommera Led D1, on créera un groupe nommé Coils pour accueillir le nœud switch.
Raccordez le nœud switch à l'entrée du nœud Modbus - Write.
Accéder au tableau de bord et vérifier que le switch allume et éteint bien la led bleue.
Appeler le professeur pour valider votre tableau de bord.
Affichage de l'état du bouton-poussoir K1
Objectif : afficher l'état du bp K1 dans le tableau de bord
Méthode :
Insérer cette fois un nœud Modbus - Read
que l'on nommera Bp K1 puis configurer le nœud correctement. On réglera le paramètre Poll Rate à 200 ms et le code fonction FC sur Read Input Status (équivalent à Read Discrete Inputs).
Insérer un nœud switch
que l'on nommera Bp K1, on créera un groupe nommé Discrete Inputs pour accueillir le nœud switch.
Raccorder le nœud switch à la sortie du nœud Modbus - Read. Raccorder également un nœud Debug
en sortie du nœud Modbus - Read.
Déployer le flot et observer la fenêtre Debug
qui affiche les données reçues par le maître lorsque vous appuyer sur Bp K1.
On s'aperçoit que les données reçues correspondent à un tableau de 8 booléens :
Message reçu par NodeRed lors d'une lecture de type Discrete Inputs

Il faut donc insérer entre le nœud Modbus - Read
et le nœud switch
un nœud function
pour envoyer seulement la valeur du premier élément du tableau.
Insérer un nœud function
et insérer le code javascript suivant à l'intérieur :
// On récupére l'entrée discrète qui correspond au bp K1 puis on// inverse sa valeur pour allumer le widget lorsque bp K1 est appuyémsg.payload = !msg.payload[0];
return msg;
Ouvrir la tableau de bord et vérifier qu'il affiche bien l'état de Bp K1.
Appeler le professeur pour valider l'affichage de l'état de Bp K1.
Complément :
À ce stade le tableau de bord manque de personnalisation car les icônes utilisées pour la led et le bouton-poussoir sont les mêmes.
Il est possible de personnaliser ces icônes en réglant le paramètre Icon
sur Custom dans les propriétés du nœud switch. Il faut alors préciser une icône sous forme de texte ainsi que les couleurs.
Effectuer la personnalisation des icônes comme indiqué dans le tableau :
Nœud | On and Off Icon | Colour |
Led D1 | lightbulb_outline | blue (On) black (Off) |
Bp K1 | radio_button_checked | blue (On) black (Off) |
Vous pouvez choisir d'autres icônes à partir du site : https://klarsys.github.io/angular-material-icons/. Il suffit de copier le nom de l'icône de votre choix et de placer le texte dans les champs On et Off Icon des propriétés du nœud switch. Pour les couleurs on pourra utiliser les mots clés html disponibles sur le site https://htmlcolorcodes.com/fr/noms-de-couleur/.