I. Configuration matérielle ▲
- Un Raspberry Pi connecté à Internet
- Une carte d'extension LedBorg(1), mais à défaut, un jeu de LED rouge, verte et bleue, des résistances électriques (100 Ω, 220 Ω et 270 Ω), une plaque d'essai et des câbles feront bien l'affaire. (NDLR : encore mieux, une LED multicolore à cathode commune)
II. Introduction▲
Les picots qui se dressent sur le bord de la carte du Pi (ou les deux rangées de trous à l'emplacement du connecteur GPIO sur le Pi Zero) forment une passerelle avec des objets du monde physique et permettent d'interagir avec eux. Suivez les instructions pour utiliser ce port d'entrées-sorties (ou GPIO : General Purpose Input Output) avec l'outil de programmation visuelle Node-RED(2) et réaliser quelque chose de magique dont vous pourrez faire étalage avec fierté.
Quand vous maîtriserez votre système d'éclairage à LED et ses changements de couleur, il n'y aura plus de limites dans vos applications : l'allumer quand vous recevez un tweet, l'utiliser comme feux de signalisation pour surveiller l'énergie domestique consommée, ou encore prévenir que le bus que vous devez prendre va arriver.
III. Étape 1 : installation▲
Avant d'allumer votre Pi, connectez le matériel. Si vous utilisez la carte d'extension LedBorg, connectez-la selon les instructions du site du constructeur. Si vous utilisez des LED classiques, connectez-les comme indiqué sur l'image précédente du montage.
Vous devrez démarrer sur la distribution Raspbian Jessie et avoir votre Pi connecté à Internet. Ouvrez Node-Red - cliquez sur Menu, Programming, puis Node-RED - et une console s'ouvrira. La console devrait afficher un message du type :
« Once Node-RED has started, point a browser at http://192.168.X.XXX:1880 »
Si vous êtes sur un Raspberry Pi 2, vous pouvez ouvrir Node-RED dans un navigateur à l'adresse http://127.0.0.1:1880, ou encore localhost:1880, à condition d'être connecté à un réseau. Si vous êtes sur une version plus ancienne du Pi, il serait sans doute plus confortable de s'y connecter à partir du navigateur d'un poste distant, avec l'adresse IP du Pi.
IV. Étape 2 : préparer le flux▲
Faites glisser un nœud inject depuis la section Input de la palette à gauche, et déposez-le dans la fenêtre de travail au centre. Le nom du nœud devrait changer en timestamp. Poursuivez avec un nœud debug depuis la section Output, nœud de couleur verte et qui prendra le nom msg.payload. Reliez les deux nœuds, pour cela cliquez sur le petit bouton gris à droite du nœud timestamp et faites glisser jusqu'au petit bouton à gauche du nœud msg.payload. Un fil va alors relier les deux nœuds. Cliquez sur l'onglet debug dans la fenêtre en haut à droite. Des cercles bleus au-dessus de chaque nœud indiquent que le flux n'a encore été ni sauvegardé ni déployé. Cliquez sur le bouton rouge Deploy situé en haut à droite, et les cercles bleus disparaissent. Activez l'injection de données dans le flux en cliquant sur le petit carré sur le côté gauche du nœud timestamp. Le message résultant (« payload ») apparaît dans l'onglet debug à droite (NDLR : par défaut, le temps écoulé en millisecondes depuis 1970).
V. Étape 3 : modifier le flux▲
Double-cliquez sur le nœud d'injection timestamp. Une boîte de dialogue apparaît. Déroulez la liste Payload et sélectionnez « string ». Juste en dessous de « string », saisissez « red » qui sera le message envoyé. Dans le champ « name », complétez afin de renommer le nœud en « red », puis cliquez sur OK. Déployez à nouveau puis injectez la donnée en cliquant sur le carré sur le côté gauche du nouveau nœud « red ». Le message injecté (ici, « red ») apparaît dans l'onglet debug.
Ajoutez quatre nœuds inject supplémentaires et modifiez les messages injectés en « green », « blue », « white » et « black ». Connectez-les tous à un nœud msg.payload, puis déployez.
Injectez tour à tour chacune des couleurs, les messages injectés successivement dans le flux apparaissent dans l'onglet debug.
VI. Étape 4 : allumer les LED▲
Que vous utilisiez la carte LedBorg ou des LED séparées, faites défiler le contenu de la palette à gauche et faites glisser un nœud ledborg dans le flux courant. Connectez les nœuds d'injection au nœud ledborg. Déployez le flux et injectez les couleurs dans le flux en cliquant sur les nœuds, les LED devraient maintenant s'allumer de la couleur correspondante.
VII. Étape 5 : connecter à Twitter▲
Ajoutez un nœud d'entrée twitter depuis la section social dans la palette, celui avec un petit bouton à droite. Double-cliquez sur le nœud et complétez avec l'identifiant de connexion Twitter (credentials) ; vous aurez besoin de vous connecter à Twitter. Dans le champ « for », ajoutez « cheerlights ». Afin de remettre de l'ordre dans les fils de connexion, ajoutez maintenant un nœud function, puis renommez-le en « spaghetti junction ». Dans ce tutoriel, les messages traverseront ce nœud sans être modifiés, mais du code JavaScript peut être saisi pour de futurs traitements.
Supprimez tous les fils reliant les nœuds, puis refaites les connexions en reliant les nœuds d'injection de couleur ainsi que le nœud twitter à l'entrée du nœud spaghetti junction. Connectez un nœud debug en sortie du nœud spaghetti junction.
VIII. Étape 6 : extraire la couleur▲
Le nœud LedBorg n'accepte que certaines couleurs, et certains messages qui lui seront passés via Twitter comme « cheerlights » ne seront pas reconnus. Pour extraire les couleurs passées dans les messages, connectez un nœud switch (couleur jaune) en sortie du nœud spaghetti junction. Dans la liste déroulante de sa boîte de dialogue, sélectionnez « matches regex », puis à la suite tapez « red », et enfin cochez la case « ignore case ».
Cliquez sur « + rule » et répétez l'opération pour toutes les couleurs reconnues par le nœud ledborg dont vous trouverez la liste dans l'onglet info.
Connectez un nœud change (couleur jaune) à chaque sortie du nœud switch. Double-cliquez sur chacun d'entre eux et définissez leur nom et message à la couleur requise.
Connectez toutes les sorties des nœuds change à un autre nœud spaghetti junction, suivi d'un nœud ledborg avant de déployer. Vous pouvez avoir d'autres flux déployés sur le Pi (dans les différents onglets Sheet), mais assurez-vous qu'il y a un seul nœud ledborg de déployé et que les broches 11, 13 et 15 ne sont pas utilisées dans d'autres flux.
Debugs
Ajoutez des nœuds debug pour afficher les différents messages qui parcourent le flux.
_____
Watchdog timer
Ajoutez un nœud trigger en parallèle :
_____
Delay
Ajoutez un nœud delay pour limiter le nombre de messages par minute (ici, on limite à quatre messages par minute).
Pour récupérer le flux complet, copiez le code JSON ci-dessous dans le presse-papiers et importez-le dans Node-RED. Pour cela, cliquez sur l'icône du menu principal , puis import et clipboard. Collez le code dans la fenêtre et cliquez sur OK.
IX. Notes de la Rédaction de Developpez.com▲
Cet article est une traduction adaptée de l'article paru dans le n° 41 du magazine TheMagPi, sous le titre CheerLights Orb.
Nous remercions les membres de la Rédaction de Developpez pour le travail de traduction et de relecture qu'ils ont effectué, en particulier :
Merci également à Claude Leloup pour sa relecture orthographique.