- Conditions préalables
- Composants requis
- Installer Node-RED sur Raspberry Pi
- Lancement de Node-RED dans Raspberry Pi
- Comprendre l'interface Node-RED
- Schémas
- Créer un flux dans Node-RED
- Ajout d'un bouton poussoir / interrupteur dans l'interface Node-RED avec Raspberry Pi
Vous êtes-vous déjà demandé s'il existait un moyen de créer de simples prototypes de solutions IoT sans avoir à passer des jours à écrire des codes ou à construire des projets avancés pratiques sans codage. Oui, cela est possible avec la plate-forme Node-Red. Développé par IBM, Node-RED est un outil de programmation open-source permettant de relier des périphériques matériels, des API et des services en ligne d'une manière nouvelle et intéressante. Il fournit un éditeur basé sur un navigateur qui facilite le câblage des « flux» à l'aide du large éventail de nœuds de la palette qui peuvent être déployés sur son environnement d'exécution en un seul clic.
Node-RED est un outil puissant pour créer des applications Internet des objets (IoT) dans le but de simplifier le composant de programmation.
Il utilise une programmation visuelle qui vous permet de connecter des blocs de code, appelés nœuds, ensemble pour effectuer une tâche. Pour le tutoriel d'aujourd'hui, nous examinerons comment vous pouvez déployer des projets simples sur le raspberry pi à l'aide de Node-RED. Le didacticiel Raspberry Pi node-red couvrira;
- Installation de Node-RED sur le Raspberry Pi.
- Introduction à l'interface utilisateur Node-RED
- Comment configurer les flux Node-RED
- Comment contrôler les broches GPIO Raspberry Pi avec Node-RED
- Comment utiliser les entrées, les sorties et la prise de décision if-else de Node-RED à l'aide de commutateurs
Conditions préalables
Ce tutoriel sera basé sur le système d'exploitation Raspbian Stretch et je suppose que vous êtes familiarisé avec la configuration du Raspberry Pi avec lui, et que vous savez comment SSH dans le Pi en utilisant un logiciel de terminal comme putty. Si vous rencontrez des problèmes avec tout cela, il existe des tonnes de tutoriels Raspberry Pi sur ce site Web qui peuvent vous aider.
Pour compléter facilement le tutoriel, je vous conseillerai d'utiliser un moniteur connecté au raspberry pi ou d'utiliser le logiciel VNC Viewer. Si vous n'avez pas de moniteur et que vous recommencez avec Pi, vous pouvez lire cette configuration de Headless Raspberry Pi pour poursuivre ce tutoriel. Bien que Node-Red fonctionne à partir d'un navigateur Web et soit accessible sur votre PC auquel le Pi est connecté via l'adresse IP du Pi, je pense que l'expérience VNC / moniteur vous donnera une meilleure idée des choses.
En tant que démo pour montrer comment fonctionne Node-Red, nous utiliserons Node-RED pour programmer le Raspberry Pi pour contrôler une LED connectée à son GPIO et modifierons plus tard le programme pour permettre à la LED d'être contrôlée à partir d'un bouton-poussoir tactile connecté aux Pi. GPIO.
Composants requis
Les composants suivants sont requis pour construire ce projet;
- Raspberry Pi 3 avec carte SD préchargée avec Raspbian Stretch préchargé
- Résistance de 100 ohms (1)
- À LED (1)
- Planche à pain (1)
- Fils de cavalier mâle-femelle
- Bouton poussoir tactile (1)
Installer Node-RED sur Raspberry Pi
Bien que Node-Red soit préinstallé sur le système d'exploitation Raspbian Stretch, nous devons le mettre à niveau avant de pouvoir profiter de certaines de ses dernières fonctionnalités. La mise à niveau du Node-Red va
- Mettez à niveau l'utilisateur existant vers LTS 8.x ou 10.x Node.js et le dernier Node-RED
- Migrez tous les nœuds existants installés globalement dans l'espace utilisateurs ~ /.node-red afin qu'ils puissent être gérés via le gestionnaire de palette, cela NE met PAS à jour les nœuds existants installés par l'utilisateur. Cela doit être fait manuellement par l'utilisateur (voir ci-dessous).
- Facultativement (ré) installez les nœuds supplémentaires qui sont préinstallés sur une image Raspbian Pi complète.
Cependant, le processus de mise à niveau du Node-Red est similaire à l'installation d'un nouveau, donc pour les besoins de ce tutoriel, nous le traiterons simplement comme une nouvelle installation afin que les personnes utilisant d'autres versions du système d'exploitation puissent suivre.
Suivez les étapes ci-dessous pour installer / mettre à niveau Node-RED sur votre Raspberry Pi.
Nous commençons par mettre à niveau et mettre à jour le pi, pour nous assurer que tout ce qu'il contient est à jour et éviter les problèmes de compatibilité. Pour ce faire, ouvrez un terminal ou via ssh et exécutez;
Mise à jour Sudo apt-get
suivi par
mise à niveau sudo apt-get
Ceci fait, exécutez le script bash ci-dessous sur le terminal;
bash <(curl -sL
Le script bash fera les choses suivantes
- Demandez si vous souhaitez (ré) installer les nœuds Pi supplémentaires
- Enregistrer une liste de tous les nœuds node-red- installés globalement trouvés dans / usr / lib / node_modules
- apt-get supprimer le Node-Red existant
- supprimez tous les binaires de nœud rouge de / usr / bin et / usr / local / bin
- Supprimez tous les modules node-red de / usr / lib / node_modules et / usr / local / lib / node_modules
- Détecter si Node.js a été installé à partir du package Node.js ou Debian
- Si ce n'est pas la version 8 ou plus récente, supprimez-la si nécessaire et installez la dernière version 8 ou 10 LTS (sans utiliser apt).
- Nettoyez le cache npm et le cache.node-gyp pour supprimer toutes les versions précédentes du code
- Installez la dernière version de Node-RED
- Réinstallez sous le compte utilisateur tous les nœuds qui avaient été précédemment installés globalement
- Réinstallez les nœuds Pi supplémentaires si nécessaire
- Reconstruire tous les nœuds - pour recompiler tous les binaires pour correspondre à la dernière version de Node.js
- Ajoutez les commandes node-red-start, node-red-stop et node-red-log à / usr / bin
- Ajouter un raccourci de menu et une icône
- Ajouter un script système et définir l'utilisateur
- Si sur un Pi, ajoutez une température du processeur -> exemple IoT
Le script bash ci-dessus exécute de nombreuses commandes en tant que sudo et supprime les répertoires Node.js existants et Node-RED. Vous pouvez vérifier le contenu du script sur cette page GitHub avant de l'exécuter pour vous assurer qu'il n'affectera aucun projet que vous avez déjà sur le Pi.
Une fois l'installation terminée, vous devriez maintenant voir l'icône Node-Red sous la liste des applications de programmation de votre menu.
Lancement de Node-RED dans Raspberry Pi
Node-Red peut être lancé via la section menu depuis le bureau de votre raspberry pi, via le terminal ou via ssh.
Pour lancer sur le bureau du raspberry pi, cliquez sur l'icône Raspberry, passez votre souris sur Programmation cliquez sur Node-RED (Menu> Programmation> NodeRed) pour le lancer.
Il peut également être lancé depuis ssh ou un terminal en exécutant;
node-red-start
Vous devriez voir une fenêtre comme celle ci-dessous montrant le lancement du nœud rouge sur le bureau.
Une fois que vous voyez cela, allez dans menu-> Internet et lancez le navigateur Web Chrome. Bien que votre Raspberry pi n'ait pas besoin d'Internet pour exécuter Node-Red, il utilise un navigateur comme interface.
Avec Chrome lancé, entrez localhost: 1880 dans la barre d'adresse, suivi de la touche Entrée. 1880 est le port du raspberry pi sur lequel Node-Red est préréglé pour communiquer. Cela devrait afficher l' interface Node-Red comme indiqué dans l'image ci-dessous.
Comprendre l'interface Node-RED
L' interface Node-Red comprend le panneau de flux, la palette de nœuds, la console de débogage et la console d'informations comme mis en évidence dans l'image ci-dessus.
Le panneau de flux est l'endroit où les nœuds sont réunis pour créer un programme qui dans Node-Red est appelé flux, tandis que la palette de nœuds comprend des objets représentatifs du matériel, des protocoles et des fonctionnalités logicielles associées aux périphériques. Il comprend des protocoles tels que MQTT pour l'IoT et des modes de sortie et d'entrée GPIO pour des cartes comme le raspberry pi. La console d'informations fournit des informations sur les objets en surbrillance / sélectionnés pendant que la console de débogagefonctionne comme le moniteur série Arduino et peut fournir des commentaires pendant l'exécution du flux. Le bouton de déploiement est utilisé pour télécharger le flux sur le matériel cible. Le bouton Menu contient différents types de téléchargement pour vous aider à tirer le meilleur parti de votre projet. Avec Node-Red opérationnel, nous pouvons maintenant procéder à la construction du projet de démonstration.
Schémas
Comme mentionné lors de l'introduction, notre projet de démonstration pour aujourd'hui sera de contrôler le GPIO du Raspberry Pi à l'aide d'un flux Node-RED. Pour montrer la variation de l'état du GPIO, nous allons connecter une LED au GPIO de sorte que lorsque cette broche GPIO particulière est activée, la LED s'allume et vice versa.
Connectez la LED au Raspberry PI comme indiqué dans les schémas ci-dessous.
Je construis également la même chose sur mon matériel en utilisant une maquette, une LED, une résistance et quelques fils de connexion. Ma configuration matérielle ressemble à ceci une fois les connexions établies.
Ce projet peut être facilement converti en un projet domotique, simplement en remplaçant la LED par un relais et tout appareil AC, apprenez à le faire en passant par divers projets domotiques.
Créer un flux dans Node-RED
Avec la LED connectée, nous pouvons procéder au développement du flux. Les programmes dans NodeRed sont appelés flux, tout comme l'IDE Arduino les appelle esquisses. Les flux sont créés à l'aide d'une combinaison de nœuds. Vous pouvez créer plusieurs flux qui peuvent tous s'exécuter en même temps, mais pour ce tutoriel, nous allons créer un flux unique pour allumer / éteindre la LED.
Pour commencer, faites défiler vers le bas de la palette Nœuds, vous verrez la section des nœuds raspberry pi vers la fin avec deux nœuds étiquetés rpigpio. Ces nœuds sont utilisés pour communiquer avec le GPIO du raspberry pi. L'un des nœuds est pour l'entrée tandis que l'autre est pour la sortie différenciée par la position du logo du raspberry pi. Pour le nœud d'entrée, le logo vient avant le texte, tandis que pour le nœud de sortie, le logo vient après le texte, comme indiqué dans l'image ci-dessous.
Pour ce tutoriel, nous utiliserons le nœud de sortie, faites-le glisser dans la section de flux de l'interface. Cette étape est similaire à la déclaration d'une broche particulière de votre Arduino comme sortie à l'aide de la commande pinMode () . Double-cliquez sur le nœud Sortie et une fenêtre contextuelle s'ouvrira comme indiqué ci-dessous pour vous permettre de modifier les propriétés du nœud.
Dans la section des propriétés de la broche, sélectionnez GPIO17 (broche 11). Définissez ensuite la propriété type sur " Sortie numérique " et cochez la case " Initialiser l'état de la broche?" case à cocher laissant l' option « niveau initial de la broche » aussi faible (0). Donnez au nœud le nom de votre choix et cliquez sur le bouton Terminé.
Le nom du nœud doit automatiquement changer pour celui que vous avez entré dans le paramètre des propriétés. Par exemple, je l'ai nommé LED et par conséquent, le nom du nœud est également modifié en tant que LED comme indiqué ci-dessous.
Pour allumer / éteindre la LED, nous devons utiliser une entrée, quelque chose pour conduire l'action. Bien que nous puissions utiliser un bouton poussoir, je souhaite l'utiliser pour introduire la fonctionnalité de Node-RED qui permet l'injection de messages dans les flux. Ces fonctionnalités sont appelées le nœud d'injection. Nous utiliserons deux nœuds d'injection. L'un sera d'allumer la LED tandis que l'autre sera de l'éteindre.
Accédez à la palette de nœuds et faites glisser le nœud d'injection vers le flux. C'est le premier nœud de la palette avec une flèche, le nœud d'injection est mis en évidence dans l'image ci-dessous.
Double-cliquez dessus pour modifier ses propriétés. Modifiez le type de données en chaîne en cliquant sur la liste déroulante devant la charge utile et entrez 1 dans la zone Charge utile. La valeur dans la zone de charge utile est ce qui sera injecté dans le flux lorsque le nœud est enfoncé. Réglez le nom du nœud sur «ON» Appuyez sur le bouton «Terminé» pour enregistrer.
Répétez la procédure ci-dessus pour le deuxième nœud, en définissant la valeur de la charge utile sur «0» et son nom sur «off» comme indiqué ci-dessous.
Sous la fonction de propriétés, la liste déroulante de répétition peut être utilisée pour automatiser l'injection afin que les boutons soient pressés à intervalles. Cela peut être utilisé pour créer l'effet de clignotement. Joignez les nœuds ensemble comme indiqué ci-dessous, en faisant glisser le point gris sur l'un des nœuds vers l'autre pour créer le flux.
Cela fait, nous avons maintenant terminé notre tout premier Node-Red Flow.
L'étape suivante consiste pour nous à déployer le flux sur le Raspberry Pi. Cliquez sur le bouton de déploiement rouge. Vous devriez voir le flash «déployé avec succès» en haut de l'écran, comme illustré ci-dessous.
Cliquez sur le bouton gris derrière les nœuds d'injection pour activer chacun des nœuds.
En cliquant sur le nœud d'injection «on», vous devriez voir l'injection réussie «on» affichée et la LED s'allumer. La LED doit s'éteindre lorsque le nœud d'injection «off» est cliqué.
C'est ça. Le fonctionnement complet de cette configuration peut être trouvé dans la vidéo liée au bas de cette page.
Ajout d'un bouton poussoir / interrupteur dans l'interface Node-RED avec Raspberry Pi
Pour expliquer comment connecter / ajouter un élément d'entrée à votre flux, nous allons approfondir le flux ci-dessus en ajoutant un bouton poussoir pour remplacer les nœuds d'injection.
Connectez le bouton-poussoir au raspberry pi, de sorte qu'une jambe du bouton-poussoir soit connectée à la terre et l'autre soit connectée à la broche GPIO 4 (broche 11) du raspbery pi, comme indiqué dans les schémas ci-dessous.
Une fois cela fait, retournez à Node-Red et supprimez les deux nœuds d'injection que nous avons utilisés précédemment, en cliquant sur les nœuds et en appuyant sur Supprimer sur votre clavier ou en double-cliquant sur les nœuds et en appuyant sur Supprimer dans la fenêtre contextuelle. Cela fait, faites défiler la palette de nœuds jusqu'à la section raspberry pi et sélectionnez le nœud d'entrée. C'est celui avec l'icône raspberry pi à gauche, avant le nom du nœud.
Faites glisser le nœud dans le flux et double-cliquez dessus pour modifier les propriétés. Réglez la broche sur GPIO 4 (broche 11) et réglez la liste déroulante devant la résistance sur pull-up. Cela «ramènera» GPIO 4 à HIGH. Cliquez sur le bouton Terminé après avoir défini les propriétés.
Pour nous permettre de prendre des décisions logiques lorsque le commutateur est enfoncé plutôt que de simplement court-circuiter GPIO4 à la terre, nous utiliserons le nœud de commutation. Recherchez-le dans la palette de nœuds, sous la section des fonctions et faites-le glisser vers le flux.
Le nœud de commutation vous permet de prendre des décisions d'une manière similaire aux instructions «if». Il peut être configuré pour avoir différentes sorties en fonction de la valeur d'entrée. Pour ce didacticiel, nous allons le configurer avec deux chemins de sortie, de sorte que, lorsque la propriété msg.payload est égale à 1 (le commutateur n'est pas enfoncé), elle doit suivre le premier chemin et un deuxième chemin sera suivi si une autre entrée autre que 1 est observé à l'entrée (l'interrupteur est enfoncé). Les chemins sont ajoutés à l'aide du bouton «+ ajouter». Double-cliquez sur le nœud et configurez comme décrit ci-dessus. Cliquez sur Terminé lorsque vous avez terminé.
Dès que vous appuyez sur le bouton Terminé, vous devriez voir les deux chemins se refléter dans les perspectives du nœud de commutation, car il aura maintenant deux jonctions en sortie.
Ensuite, nous devons introduire un nœud de «changement». Le nœud de modification sera utilisé pour définir l'état de la LED en fonction du résultat du nœud d' argument.
Nous utiliserons deux des nœuds de changement. La charge utile du premier sera définie sur 0 comme indiqué dans l'image ci-dessous et la charge utile du second définie sur un. Cliquez sur Terminé après avoir modifié les propriétés des deux.
Pour mieux expliquer, rappelez-vous que nous avons utilisé la résistance pull-up? Ainsi, lorsque le bouton n'a pas été enfoncé, la sortie à cette broche sera HIGH (1), ce qui signifie que si nous la passons à travers le nœud de commutation, la LED sera «allumée», car cela ne devrait pas être le cas, nous allons utilisez le nœud «change» pour le définir sur LOW (0). Le deuxième nœud de «changement» est utilisé pour définir la valeur sur un tel que lorsque quelque chose d'autre que l'état HAUT de la broche GPIO 4 est détecté, il doit allumer la LED car cela signifie que le bouton-poussoir a été enfoncé. Connectez les nœuds de modification et le reste des nœuds ensemble, comme indiqué dans l'image ci-dessous.
Cela fait, nous sommes maintenant prêts à déployer le projet. Passez en revue la connexion pour vous assurer que tout est comme il se doit, puis cliquez sur le bouton de déploiement. Comme d'habitude, en cas de succès, vous devriez voir le popup de déploiement réussi et pouvoir maintenant contrôler la led à l'aide du commutateur.
Bien que Node-Red facilite et accélère le prototypage de votre build sans se soucier du code, il n'est peut-être pas le meilleur choix, en particulier pour les développeurs expérimentés qui voudront de la flexibilité et du contrôle sur le programme. Néanmoins, c'est un excellent outil qui vous permet de construire des prototypes en quelques minutes.
Jusqu'à la prochaine fois!