Vous êtes sur la page 1sur 25

Traduit de Anglais vers Français - www.onlinedoctranslator.

com

Programmation avec Node-RED

6 .6 Projet 24 – Affichage de la température et de l'humidité locales sur l'écran LCD

Description:Dans ce projet, les prévisions météorologiques actuelles sont reçues et la température et


l'humidité locales sont affichées sur l'écran LCD toutes les 10 secondes.

But: Le but de ce projet est de montrer comment la température et l'humidité locales peuvent être affichées
sur l'écran LCD.

Schéma: Le schéma de circuit du projet est le même que celui de la figure 6.8.

Programme de flux Node-RED: La figure 6.12 montre le programme de flux qui se compose de 4 nœuds :
uninjecternœud pour demander la lecture toutes les 10 secondes, unouvrir la carte météonœud pour
obtenir la carte météo locale, unfonctionnœud pour extraire la température et l'humidité locales, et un
LCD20x4 I2Cnœud pour afficher la température et l’humidité.

Figure 6.12 Organigramme du projet

Les étapes sont les suivantes:

• Créé uninjecternœud avec un intervalle de 10 secondes et nommez-le commeCliquez sur

• Créé unouvrir la carte météonœud et nommez-le commeTempérature et bourdonnement. Définissez la clé


API et définissez les noms de votre ville et de votre pays. Cliquez surFait

• Créé unLCD20x4 I2Cnœud et nommez-le commeÉcran LCD. Définissez l'adresse I2C sur 0x27 comme
auparavant et cliquez surFait

• Rejoignez les 4 nœuds et cliquezDéployer.

• Cliquez sur le bouton duinjecternœud. Vous devriez voir la température et l'humidité locales
affichées sur l'écran LCD, comme indiqué sur la figure 6.13.

Figure 6.13 Affichage de la température et de l'humidité locales

6 .7 Projet 25 – Affichage des numéros de dés

Description:Dans ce projet, deux nombres aléatoires sont générés entre 1 et 6 et sont affichés sur
l'écran LCD à chaque fois que l'on clique sur le bouton du nœud d'injection. Les chiffres sont affichés
pendant 5 secondes. Passé ce délai, l'affichage s'efface et le messagePrêtest affiché. À ce stade,
l'utilisateur peut cliquer sur le bouton du nœud d'injection pour générer deux nouveaux

●120
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

nombres aléatoires. Ce projet peut être utilisé dans des jeux joués avec des dés.

But: Le but de ce projet est de montrer comment deux nombres aléatoires peuvent être générés puis
combinés et affichés sur l'écran LCD.

Schéma: Le schéma de circuit du projet est le même que celui de la figure 6.8.

Programme de flux Node-RED: La figure 6.14 montre le programme de flux qui se compose de 8
nœuds : uninjecternœud pour commencer à générer deux nombres aléatoires, 2aléatoirenœuds
pour générer deux nombres aléatoires entre 1 et 6, unrejoindrenœud pour joindre les deux
nombres générés, un fonctionnœud pour formater les nombres à afficher sur l'écran LCD, unretard
nœud pour générer 5 secondes de délai afin que le message Prêt puisse s'afficher après 5 secondes,
et un fonctionnœud qui affiche réellement le messagePrêt.

Figure 6.14 Programme de flux du projet

Les étapes sont les suivantes:

• Créé uninjecternœud et nommez-le commeCOMMENCER

• Créez deuxaléatoirenœuds et nommez-les commeAléatoire 1etAléatoire 2. Définissez les


nœuds pour générer des nombres aléatoires entre 1 et 6, cliquez surFait

• Créer unrejoindrenœud et configurez-le comme indiqué dans la figure 6.15. Ce nœud joindra les
deux nombres aléatoires dans un tableau. Cliquez surFait.

Figure 6.15 Configurer le nœud de jointure

• Créer unfonctionnœud et nommez-le commeAfficher. Entrez les instructions suivantes


dans ce nœud (voir Figure 6.16). Ces instructions extraient les deux nombres du tableau et
les combinent en une seule variable appeléeafficher. Le contenu de affichersont alors
affichés sur la première ligne de l’écran LCD. Cliquez sur Terminé.

●121
Programmation avec Node-RED

var premier = msg.payload[0]; var seconde =


msg.payload[1]; var disp = premier + " " +
seconde ; msg.payload={msgs :[

{msg:disp}
]} ;
renvoyer un message ;

• Créé unLCD20x4 I2Cnœud et nommez-le commeÉcran LCD. Définissez l'adresse I2C sur 0x27 comme
auparavant et cliquez surFait

• Créez un message de 5 secondesretardnœud

• Créer unfonctionnœud et nommez-le commePrêt .Entrez les instructions suivantes dans


ce nœud. Ce nœud affichera le messagePrêtsur l'écran LCD :

msg.payload={msgs :[
{msg:"Prêt"}
]} ;
renvoyer un message ;

• Joignez tous les nœuds comme indiqué dans la figure 6.14 et cliquez surDéployer.

• Cliquez sur le bouton duinjecternœud. Vous devriez voir deux nombres générés entre 1 et
6. Après 5 secondes, l'écran s'effacera et le messagePrêtsera affiché de sorte que cliquer
à nouveau sur le bouton générera un nouvel ensemble de nombres. La figure 6.16 montre
un exemple de sortie sur l'écran LCD.

Figure 6.16 Exemple de sortie sur l'écran LCD

6 .8 Projet 26 – Compteur d'événements avec LCD

Description:Il s'agit d'un projet de compteur d'événements. Les événements sont supposés se produire lorsque la
broche du port GPIO 15 du Raspberry Pi passe du logique 1 au logique 0. Dans le projet, les événements sont
simulés en connectant un interrupteur à bouton-poussoir au GPIO 15 et en appuyant sur le bouton. Le programme
compte les événements qui se produisent et affiche le total à tout moment sur l'écran LCD.

But: Le but de ce projet est de montrer comment un programme simple de compteur d'événements peut être développé en
utilisant Node-RED.

Schéma: Les broches à deux boutons sont connectées respectivement au GPIO 15 et à la masse.

●122
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Programme de flux Node-RED: La figure 6.17 montre le programme de flux qui se compose de 3 nœuds : unrpi
gpio dansnœud pour recevoir les entrées des boutons, unfonctionnœud pour mettre à jour les décomptes, et un
LCD20x4 I2Cnœud pour afficher le décompte.

Figure 6.17 Programme de flux du projet

Les étapes sont les suivantes:

• Créer unrpi gpio dansnœud et nommez-le commeBOUTON. Définissez le numéro de broche


GPIO 15, définissezRésistancetirer etAnti-rebondà 25 ms. Remarquerez queAnti-rebondest
réglé sur 25 ms pour éliminer les problèmes de rebond de contact associés aux commutateurs
mécaniques comme décrit au chapitre 5. Cliquez pour lire l'état initial de la broche. Cliquez sur
Fait

• Créer unfonctionnœud et nommez-le commeAfficher. Entrez les instructions suivantes à


l'intérieur de ce nœud (voir Figure 6.18). Notez que nous utilisons ici une variable de
contexte. La déclaration:

var count=context.get('count') || 0 ;

veut dire que sicomptern'existe pas dans l'objet contextuel, alors créez une variable compter
zéro, sinon attribuez la valeur stockée àcompter. La valeur decompterest incrémenté à chaque
fois que le bouton est enfoncé (c'est-à-dire que msg.payload passe à 0).Compter est ensuite
converti en chaîne et envoyé à l'écran LCD :

var count=context.get('count') || 0 ;
if(msg.payload == 0)
{
compte++;
contexte.set('count',count);
var cnt = "Events = " + count.toString();
msg.payload={msgs :[
{msg:cnt}
]} ;
renvoyer un message ;

}
autre
renvoie null ;

●123
Programmation avec Node-RED

Figure 6.18 Configurer le nœud de fonction

• Créé unLCD20x4 I2Cnœud et nommez-le commeÉcran LCD. Définissez l'adresse I2C sur 0x27 et
cliquez surFait

• Joignez tous les nœuds comme dans la Figure 6.17 et cliquez surDéployer. Chaque fois que vous
appuyez sur le bouton, le nombre d'événements sera incrémenté de un et la valeur totale sera
affichée à l'écran comme le montre la Figure 6.19.

Figure 6.19 Affichage du total des événements à tout moment

6 .9 Projet 27 – Capteur de température et d'humidité DHT11 avec écran LCD

Description:Dans ce projet, nous utilisons le populaire capteur numérique DHT11 pour mesurer la
température et l'humidité ambiantes et les afficher sur l'écran LCD toutes les 5 secondes.

But: Le but de ce projet est de montrer comment le capteur de température et d'humidité DHT11 peut être
utilisé dans un projet Node-RED.

Diagramme:La figure 6.20 montre le schéma fonctionnel du projet.

Figure 6.20 Schéma fonctionnel du projet

Informations d'arrière-plan:Le DHT 11 (ou DHT22) est l'un des capteurs numériques de température et d'humidité les plus
populaires et les plus couramment utilisés. Le capteur comporte essentiellement 3 broches, comme le montre la figure 6.21.
Bien que certaines versions de capteur disposent de 4 broches, l'une des broches n'est pas utilisée. Le

●124
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Le DHT11 est composé de deux parties : un capteur d'humidité capacitif et un capteur de température à
thermistance. La sortie étant numérique, la puce comprend également un CAN pour convertir les signaux
analogiques en numériques.

Les spécifications de base du DHT11 sont :

• Alimentation 3 V à 5 V
• Faible coût
• Courant maximum de 2,5 mA (pendant la conversion)
• Plage d'humidité de 20 à 80 % avec une précision de 5 %
• Plage de température de 0 à 50 °C avec une précision de ±2 °C
• Taux d'échantillonnage de 1 Hz (une fois par seconde)

Le DHT22 est similaire au DHT11, il a la même taille et la même forme, mais il offre des plages de mesure
plus larges et est également plus précis que le DHT11. Dans ce projet, nous utiliserons un DHT11.

Figure 6.21 Le capteur DHT11

Installation du nœud DHTxx Node-RED: Les étapes pour installer le nœud Node-RED DHTxx (c'est-à-dire
DHT11 et DHT22) sont les suivantes :

• Cliquez surMenu -> Gérerpalette et cliquez surInstaller

• Entrernode-red-contrib-dht-sensoret cliquezinstaller(voir Figure 6.22)

• Vous devriez voir un nouveau nœud appelérpi-dht22dans la palette de nœuds

Nous sommes maintenant prêts à développer notre programme de flux pour lire et afficher la température et
l'humidité ambiantes.

●125
Programmation avec Node-RED

Figure 6.22 Installer le nœud DHTxx

Schéma: Le schéma de circuit du projet est présenté à la figure 6.23. Le je2C LCD est connecté au
Raspberry Pi comme dans les projets précédents de ce chapitre. Le DHT11 est connecté au Raspberry
Pi comme suit :

Broche DHT11 Broche Raspberry Pi


Des données) GPIO15
VCC + 3,3V
Terre (-) GND

Figure 6.23 Schéma de circuit du projet

Programme de flux Node-RED: La figure 6.24 montre le programme de flux qui se compose de 3 nœuds : unrpi
gpio dansnœud pour recevoir les entrées des boutons, unfonctionnœud pour mettre à jour les décomptes, et un
LCD20x4 I2Cnœud pour afficher le décompte.

Figure 6.24 Programme de flux du projet

Les étapes sont les suivantes:

• Créé uninjecternœud avec le nomCliquez suret réglez l'intervalle sur 5 secondes

●126
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

• Créer unrpi-dht22nœud et configurez-le comme indiqué dans la figure 6.25. Met leModèle de
capteurau DHT11,Numérotation des brochesà BCM GPIO et le numéro de broche à 15 (GPIO
15), cliquez sur Terminé

Figure 6.25 Configurer le nœud rpi-dht22

• Créer unfonctionnœud et nommez-le commeAfficher. Entrez les instructions suivantes


dans la fonction (voir Figure 6.26). VariablesTetHrecevez respectivement les relevés de
température et d'humidité du DHT11 toutes les 5 secondes. La température est affichée
dans la rangée supérieure, tandis que l'humidité est affichée dans la rangée inférieure de
l'écran LCD :

T = msg.payload ;
H = message.humidité ;
Température = "T = " + T + "C" ;
Hum = "H = " + H + "%" ;

msg.payload={msgs :[
{msg : Temp},
{msg : Hum}
]} ;
renvoyer un message ;

Figure 6.26 Configurer le nœud de fonction

●127
Programmation avec Node-RED

• Créez le nœud LCD comme précédemment, rejoignez tous les nœuds et cliquez surDéployer.

• Cliquez sur le bouton duinjecternœud. Vous devriez voir la température et l'humidité


mises à jour et affichées toutes les 5 secondes (voir Figure 6.27).

Figure 6.27 Affichage de la température et de l'humidité

Notez que si vous connectez undéboguerà la sortie du nœud rpi-dht22, vous ne verrez que la
température affichée dans la charge utile. Toutefois, si vous définissez la sortie du nœud de
débogage surobjet message complet, vous verrez à la fois la température et l'humidité affichées
comme le montre la figure 6.28.

Figure 6.28 Sortie du nœud de débogage

La figure 6.29 montre le circuit construit sur une maquette et connecté au Raspberry Pi à l'aide de câbles de
liaison.

●128
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Figure 6.29 Circuit construit sur une maquette

6 .10 Projet 28 – Capteur de distance à ultrasons avec écran LCD

Description:Dans ce projet, un module de capteur de distance à ultrasons est utilisé et la distance


jusqu'à tout obstacle devant le capteur est affichée sur l'écran LCD.

But: Le but de ce projet est de montrer comment un capteur à ultrasons peut être utilisé dans un projet
Node-RED.

Informations d'arrière-plan: Les modules de capteurs de distance à ultrasons sont utilisés dans des
applications où il est nécessaire de mesurer la distance par rapport à un objet (par exemple un obstacle)
devant le module de capteur. Le capteur à ultrasons le plus couramment utilisé est le HC-SR04 (voir Figure
6.30). Il s'agit d'un module à 4 broches avec les broches suivantes :

Écho:broche d'écho
Trigonométrie:goupille de déclenchement

Vcc :Broche d'alimentation (+5V) GND :


broche de masse d'alimentation

Figure 6.30 Le module de capteur de distance à ultrasons HC-SR04

●129
Programmation avec Node-RED

La plage de mesure du capteur HC-SR04 est de 2 cm à 400 cm. Le principe de base de


fonctionnement du module capteur à ultrasons est le suivant (voir Figure 6.31) :

• Une impulsion de déclenchement de 10µs est envoyée au module

• Le module envoie ensuite huit signaux carrés de 40 kHz à la cible et règle la broche d'écho
HIGH.
• Le programme démarre une minuterie

• Le signal atteint la cible et renvoie au module.


• Lorsque le signal est renvoyé au module, la broche d'écho passe au niveau BAS.
• La minuterie est arrêtée
• La durée du signal d'écho est calculée et elle est proportionnelle à la distance jusqu'à la
cible

La distance à l'objet est calculée comme suit :

Distance à l'objet (en mètres) = (durée du temps d'écho en secondes * vitesse du son) / 2

La vitesse du son est de 340 m/s, soit 0,034 cm/µs

Donc,

Distance à l'objet (en cm) = (durée du temps d'écho en µs) * 0,034 / 2

ou,
Distance à l'objet (en cm) = (durée du temps d'écho en µs) * 0,017

Par exemple, si la durée du signal d'écho est de 294 microsecondes, la distance jusqu'à l'objet est
calculée comme suit :

Distance à l'objet (cm) = 294 * 0,017 = 5 cm

Figure 6.31 Fonctionnement du module capteur à ultrasons

●130
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Installation du capteur à ultrasons Node-RED node: Les étapes pour installer le nœud Node-RED
du capteur HC-SR04 sont les suivantes :

• Cliquez surMenu -> Gérerpalette et cliquez surInstaller

• Entrernoeud-rouge-noeud-pisrfet cliquezinstaller

• Vous devriez voir un nouveau nœud appelérpi srfdans la palette de nœuds

• Nous sommes maintenant prêts à développer notre programme de flux pour lire et afficher la distance

Diagramme: Le schéma fonctionnel du projet est présenté dans la figure 6.32.

Figure 6.32 Schéma fonctionnel du projet

Schéma: La figure 6.33 montre le schéma de circuit. Les broches du port Raspberry Pi GPIO 15 et GPIO 18
sont connectées respectivement aux broches Trig et Echo du capteur. Notez que le capteur fonctionne avec
+5V et que son niveau de tension de sortie Echo monte jusqu'à +5V. C'est trop élevé pour les entrées du
Raspberry Pi et, par conséquent, un circuit diviseur de potentiel résistif est utilisé pour abaisser la tension de
sortie du capteur à +3,3 V. Les broches VCC et GND du capteur sont connectées respectivement aux broches
+5V et GND du Raspberry Pi.

Figure 6.33 Schéma de circuit du projet

Programme de flux Node-RED: La figure 6.34 montre le programme de flux qui se compose de 3
nœuds : unrpi srfnœud pour lire la distance du capteur, unfonctionnœud pour formater les données
à afficher, et unÉcran LCDnœud.

●131
Programmation avec Node-RED

Figure 6.34 Programme de flux du projet

Les étapes sont les suivantes:

• Cliquez, faites glisser et déposez lerpi srfnœud dans l’espace de travail. Configurez-le comme indiqué
dans la figure 6.35. Notez que par défaut la distance est mesurée toutes les 0,5 secondes, mais cela
peut être modifié si vous le souhaitez. Définissez les numéros de broches là où les broches Trig et Echo
sont connectées sur le Raspberry Pi. Il est important d'être prudent ici puisque les numéros de broches
requis ici sont les numéros de broches physiques de l'en-tête et non les noms de broches GPIO. Dans
ce projet, les broches Trig et Echo sont connectées respectivement aux broches GPIO 15 et 18, qui
correspondent respectivement aux broches physiques numérotées 10 et 12.

Figure 6.35 Configurer le nœud rpi srf

• Créer unfonctionnœud et maniez-le commeDistance. Entrez les instructions suivantes


dans ce nœud (voir Figure 6.36). Ici, variableDistanceest chargé avec la distance réelle
mesurée en centimètres. La première ligne de l'écran LCD affiche un cap, tandis que la
deuxième ligne affiche la distance mesurée. Cliquez surFait:

var Distance = msg.payload;


msg.payload={msgs :[
{msg:"Distance (cm)"},
{message : Distance}
]} ;
renvoyer un message ;

●132
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Figure 6.36 Configurer le nœud de fonction

• Créez le nœud LCD comme auparavant, rejoignez les 3 nœuds et cliquez surDéployer .Vous
devriez voir la distance affichée sur l'écran LCD. Placez quelque chose devant le capteur et vous
devriez voir la distance changer (voir Figure 6.37).

Figure 6.37 Affichage de la distance

La figure 6.38 montre le circuit construit sur une maquette (remarquez sur cette figure que l'auteur n'avait pas de
résistances 2K et a utilisé à la place des résistances 2x1K).

Figure 6.38 Le circuit construit sur une maquette

●133
Programmation avec Node-RED

6 .11 Projet 29 – Alarme de distance à ultrasons avec buzzer

Description:Dans ce projet, un module de capteur de distance à ultrasons est utilisé, comme dans le projet
précédent. De plus, un buzzer actif est utilisé de telle sorte que si la distance par rapport à un obstacle est
inférieure à 20 cm, le buzzer est activé. Ce projet peut être utilisé dans des applications robotiques mobiles
ou pour vous aider à garer votre voiture.

But: Le but de ce projet est de montrer comment un capteur à ultrasons peut être utilisé avec un
buzzer dans un projet Node-RED.

Diagramme: La figure 6.39 montre le schéma fonctionnel du projet.

Figure 6.39 Schéma fonctionnel du projet

Schéma: Le schéma de circuit du projet est présenté dans la figure 6.40, où un buzzer actif est
connecté à la broche du port GPIO 23. Le reste du circuit est le même que dans la figure 6.33.

Figure 6.40 Schéma de circuit du projet

Programme de flux Node-RED: La figure 6.41 montre le programme de flux qui se compose de 3
nœuds : unrpi srfnœud pour lire la distance du capteur, unfonctionnœud pour formater les données
pour contrôler le buzzer, et unrpio sortie gpionœud qui est connecté au buzzr.

Figure 6.41 Programme de flux du projet

Les étapes sont les suivantes:

●134
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

• Créer unrpi srfnœud comme dans le projet précédent, mais définissez l'intervalle de répétition sur une valeur
inférieure, par exemple 0,25 seconde

• Créer unfonctionnœud et entrez les instructions suivantes. Si la distance par rapport à un


obstacle est inférieure à 20 cm, la sortie est réglée sur 1 pour activer le buzzer :

var Distance = msg.payload; si


(Distance < 20)
msg.payload = 1 ;
autre
msg.payload = 0 ;
renvoyer un message ;

• Créer unsortie rpi gpionœud et nommez-le commeAvertisseur sonore. Met leÉpingleau GPIO 23 et
initialisez l'état de la broche à 0

• Rejoignez les 3 nœuds et cliquez surDéployer. Placez un objet à proximité du module à


ultrasons et vous entendrez le buzzer retentir. Lorsque l'objet est retiré, le buzzer doit
cesser de retentir.

6 .12 Projet 30 – Système de stationnement de voiture à ultrasons avec buzzer

Description:Dans ce projet, on suppose que deux modules de capteurs de distance à ultrasons sont
fixés à l'avant et à l'arrière d'un véhicule. De plus, un buzzer actif est utilisé de telle sorte que si la
distance par rapport à un obstacle à l'avant ou à l'arrière du véhicule est inférieure à 20 cm, le buzzer
est activé. Ce projet peut être utilisé pour vous aider à garer votre voiture.

But: Le but de ce projet est de montrer comment deux modules de capteurs de distance à ultrasons
peuvent être utilisés avec un buzzer dans un projet Node-RED.

Diagramme: La figure 6.42 montre le schéma fonctionnel du projet.

Figure 6.42 Schéma fonctionnel du projet

Schéma: Le schéma de circuit du projet est présenté à la figure 6.43. L'un des modules de capteurs à
ultrasons et le buzzer sont connectés comme dans le projet précédent. Les broches Trig et Echo du
deuxième module buzzer à ultrasons sont connectées respectivement aux broches du port Raspberry
Pi GPIO 24 et GPIO 25 (broches physiques 18 et 22).

●135
Programmation avec Node-RED

Figure 6.43 Schéma de circuit du projet

Programme de flux Node-RED: La figure 6.44 montre le programme de flux qui se compose de 5 nœuds : 2
rpi srfnœuds, un pour chaque module de capteur de distance à ultrasons, unrejoindrenœud pour joindre
les deux sorties dans un tableau, unfonctionnœud pour formater la sortie du buzzer, et unsortie rpi gpio
nœud pour contrôler le buzzer.

Figure 6.44 Programme de flux du projet


Les étapes sont les suivantes:

• Créez les deuxrpi srfnœuds et définissez leurs broches sur 10,12 et 18,22. Met le
Répéterfois à 0,25 seconde dans chacun

• Créer unrejoindrenœud et configurez-le comme indiqué dans la Figure 6.45. Ce nœud joint les
deux entrées dans un tableau qui peut être manipulé dans le nœud de fonction

Figure 6.45 Configurer le nœud de jointure

• Créer unfonctionnœud et entrez les instructions suivantes à l’intérieur de ce nœud, cliquez sur
Fait:

var Distance1 = msg.payload[0]; var Distance2 =


msg.payload[1]; si (Distance1 < 20 || Distance2 <
20)
msg.payload = 1 ;
autre
msg.payload = 0 ;
renvoyer un message ;

●136
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

• Créer unsortie rpi gpionœud et définissez le numéro de broche sur GPIO 23

• Joignez tous les nœuds comme dans la Figure 6.44, cliquez surDéployer. Placez des objets à proximité de l'un ou
l'autre des capteurs et vous devriez entendre le signal sonore.

La figure 6.46 montre le circuit construit sur une maquette prêt à être testé.

Figure 6.46 Circuit construit sur une maquette

6 .13 Utilisation d'un écran LCD parallèle

Dans les projets précédents de ce chapitre, nous avons utilisé I2Écrans LCD basés sur C. Dans ces projets, l'écran
LCD réel était un écran LCD parallèle de type HD44780, mais une petite carte était branchée à l'arrière de l'écran
LCD afin que l'écran LCD puisse communiquer en utilisant le SDA et le SCL I.2Lignes C. Les écrans LCD parallèles ont
l'avantage d'être beaucoup moins chers que les écrans LCD parallèles.2Versions C. Leur inconvénient est que leur
contrôle nécessite au moins 6 broches, au lieu des 2 broches nécessaires pour l'I.2Versions C. Les écrans LCD
parallèles nécessitent également un potentiomètre externe pour ajuster leur contraste.

Dans les parties restantes de ce chapitre, nous verrons comment un écran LCD parallèle de type HD44780 peut être
utilisé avec des projets Node-RED.

Module LCD HD44780


Le HD44780 est l'un des modules LCD alphanumériques les plus populaires utilisés dans l'industrie et
également par les amateurs. Ce module est monochrome et se décline en différentes tailles. Des modules
de 8, 16, 20, 24, 32 et 40 colonnes sont disponibles. Selon le modèle choisi, le nombre de lignes varie entre
1, 2 ou 4. L'écran fournit un connecteur 14 broches (ou 16 broches) vers un microcontrôleur. Le tableau 6.1
donne la configuration des broches et les fonctions des broches d'un module LCD à 14 broches. Vous
trouverez ci-dessous un résumé des fonctions des broches :

N° de broche Nom Fonction


1 VSS Sol
2 VDD + ve fourniture

3 VEE Contraste

4 RS S'inscrire Sélectionner

●137
Programmation avec Node-RED

5 R/É Lire écrire


6 E Activer
7 D0 Bit de données 0

8 D1 Bit de données 1

9 D2 Bit de données 2

dix D3 Bit de données 3

11 D4 Bit de données 4

12 D5 Bit de données 5

13 D6 Bit de données 6

14 J7 Bit de données 7

15 UN Anode (lumière)

16 K Cathode (lumière)

Tableau 6.1 Configuration des broches du module LCD HD44780

VSS est l'alimentation 0 V ou la masse. La broche VDD doit être connectée à l'alimentation positive. Bien que les fabricants
spécifient une alimentation de 5 V CC, les modules fonctionnent généralement avec une tension aussi basse que 3 V ou aussi
élevée que 6 V.

La broche 3 s'appelle VEE et c'est la broche de contrôle du contraste. Cette broche est utilisée pour régler le
contraste de l'écran et doit être connectée à une alimentation en tension variable. Un potentiomètre est
normalement connecté entre les lignes d'alimentation avec son bras d'essuie-glace connecté à cette broche
afin que le contraste puisse être ajusté.

La broche 4 est la sélection de registre (RS) et lorsque cette broche est FAIBLE, les données transférées à l'écran sont traitées
comme des commandes. Lorsque RS est ÉLEVÉ, les données de caractères peuvent être transférées vers et depuis le module.

La broche 5 est la ligne de lecture/écriture (R/W). Cette broche est tirée BAS afin d'écrire des commandes ou des données de
caractères sur le module LCD. Lorsque cette broche est ÉLEVÉE, les données de caractères ou les informations d'état peuvent
être lues à partir du module.

La broche 6 est la broche d'activation (E) qui est utilisée pour lancer le transfert de commandes ou de données
entre le module et le microcontrôleur. Lors de l'écriture sur l'écran, les données sont transférées uniquement lors
de la transition HAUT vers BAS de cette ligne. Lors de la lecture à partir de l'écran, les données deviennent
disponibles après la transition BAS à HAUT de la broche d'activation et ces données restent valides tant que la
broche d'activation est au niveau logique HAUT.

Les broches 7 à 14 sont les huit lignes de bus de données (D0 à D7). Les données peuvent être transférées entre le
microcontrôleur et le module LCD en utilisant soit un seul octet de 8 bits, soit deux quartets de 4 bits. Dans ce
dernier cas, seules les quatre lignes de données supérieures (D4 à D7) sont utilisées. Le mode 4 bits présente
l'avantage de nécessiter quatre lignes d'E/S en moins pour communiquer avec l'écran LCD.

Un projet simple est donné ci-dessous par souci d'exhaustivité, qui illustre comment un écran LCD parallèle peut
être utilisé dans un projet basé sur Node-RED.

●138
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

6 .14 Projet 31 – Affichage d'un message sur un écran LCD parallèle

Description:Dans ce projet, un écran LCD parallèle est connecté au Raspberry Pi et le message Hello
There s'affiche sur l'écran LCD.

But: Le but de ce projet est de montrer comment un écran LCD parallèle peut être utilisé dans un projet basé sur
Node-RED.

Schéma: La figure 6.47 montre le schéma de circuit du projet. L'écran LCD est connecté au Raspberry
Pi comme suit :

Broche LCD Framboise Broche GPIO Pi Broche de médecin Raspberry Pi non


D4 GPIO15 dix
D5 GPIO18 12
D6 GPIO23 16
J7 GPIO24 18
RS GPIO25 22
E GPIO8 24
R/É GND 6
GND GND 20
VCC + 5V 2

Figure 6.47 Schéma de circuit du projet

Notez qu'un potentiomètre 10K doit être connecté à la broche VEE (ou Vo) pour régler le contraste de l'écran
LCD.

Installation du nœud LCD parallèle :Les étapes pour installer le nœud LCD parallèle sur la palette Node-RED sont
indiquées ci-dessous :

• Cliquez surMenu -> Gérerpalette puis cliquez surInstaller

• Entrernoeud-rouge-noeud-pilcddans le champ de recherche et cliquez surinstaller

●139
Programmation avec Node-RED

• Vous devriez voir un nouveau nœud nommérpi lcddans la palette de nœuds

• Le nœudrpi lcdnécessite de spécifier où les broches LCD suivantes sont connectées :

RS, E, D4, D5, D6, D7

Programme de flux Node-RED: La Figure 6.48 montre le programme de flux qui se compose de 4 nœuds :
uninjecternœud, 2fonctionnœuds, où chacun envoie du texte à chaque ligne de l'écran LCD, et lerpi lcd
nœud de contrôle.

Figure 6.48 Programme de flux du projet

Les étapes sont les suivantes:

• Créé uninjecternœud

• Créez deuxfonctionnœuds et nommez-les commeRangée 1etRangée 2. Ces fonctions


contiennent le texte à afficher sur l'écran LCD. La rangée 1 envoie le texte pour la rangée
supérieure de l'écran LCD, tandis que la rangée 2 envoie le texte pour la deuxième rangée de
l'écran LCD. Le contenu deRangée 1la fonction est :

var first = "1 : Voici la ligne 1" ;


msg.payload = premier ;
renvoyer un message ;

De même, le contenu de la fonction Row 2 est :


second="2 : Voici la ligne 2" ;
msg.payload=seconde ;
renvoyer un message ;

• Les données vers l'écran LCD doivent être envoyées sous forme de chaînes. Pour la ligne 1, commencez les données avec

1:, pour la ligne 2, commencez les données avec2 :et ainsi de suite. Chaîneclr :efface l'écran.

Les lecteurs intéressés peuvent obtenir plus d’informations à partir du lien suivant :

https://flows.nodered.org/node/node-red-node-pilcd

• Créer lerpi lcdnœud. Configurez le nœud comme indiqué dans la figure 6.49.

●140
Chapitre 5 • Projets Raspberry Pi basés sur Node-RED utilisant Gpio

Figure 6.49 Configurer l'écran LCD rpi du nœud

• Rejoignez tous les nœuds et cliquez surDéployer. Cliquez sur le bouton duinjecternœud et vous
devriez voir les textes suivants affichés sur l'écran LCD :

C'est la ligne 1
C'est la ligne 2

6 .15 Résumé
Dans ce chapitre, nous avons appris à utiliser un écran LCD dans les projets Raspberry Pi basés sur Node-
RED.

Dans le chapitre suivant, nous examinerons les convertisseurs analogique-numérique (ADC) et verrons comment nous
pouvons utiliser les ADC dans des projets basés sur Node-RED.

●141
Programmation avec Node-RED

Chapitre 7 • Utilisation de l'ADC dans les projets Raspberry Pi Node-RED

7 .1 Aperçu
La plupart des capteurs réels ont des sorties analogiques et ces sorties ne peuvent pas être connectées directement
aux ports d'entrée de l'ordinateur. Des convertisseurs analogique-numérique (ADC) sont utilisés pour convertir ces
signaux analogiques sous forme numérique afin qu'ils puissent être lus par un ordinateur. Malheureusement,
l'ordinateur Raspberry Pi n'a pas de ports ADC intégrés et il n'est pas possible de l'interfacer avec des sorties
analogiques à moins qu'un circuit ADC externe ne soit utilisé.

Il existe de nombreux types d’ADC qui peuvent être utilisés dans les projets. Certains paramètres ADC
importants à prendre en compte avant d’en utiliser un sont les suivants :

Longueur des mots : la plupart des CAN avaient une largeur de 8 bits et n'avaient que 256 niveaux de quantification.
De tels CAN ne sont pas précis puisque seuls 256 niveaux sont utilisés pour représenter la tension d'entrée. De nos
jours, les CAN à usage général sont généralement de 10 ou 12 bits. Un CAN 10 bits possède 1 024 niveaux de
quantification et un CAN 12 bits possède 4 096 niveaux de quantification. Considérant un CAN 8 bits, avec une
tension de référence de +3,3 V, chaque bit correspond à 12,89 mV. Cela signifie que les tensions d'entrée inférieures
à 12,89 mV ne peuvent pas être différenciées. Avec un CAN 10 bits, chaque bit représente 3,22 mV, et avec un
convertisseur 12 bits, chaque bit représente 0,80 mV.

Dans ce chapitre, nous utiliserons un ADC externe sur notre Raspberry Pi pour lire les données des capteurs
utilisant Node-RED.

7 .2 Le CAN MCP3002
L'ADC que nous utiliserons dans nos projets de ce chapitre est le MCP3002. Il s'agit d'une puce DIL à 8
broches (voir Figure 7.1), avec les caractéristiques suivantes :

• Résolution de 10 bits
• 2 canaux d'entrée
• Convertisseur d'approximations successives
• Circuit d'échantillonnage et de maintien sur puce

• Interface SPI vers l'ordinateur hôte


• Fonctionnement de + 2,7 à +5,5 V
• Taux d'échantillonnage de 200 ksps (à +5 V)
• Courant de veille de 5 nA

Figure 7.1 Schéma des broches du MCP3002

Le MCP3002 intègre un circuit d'échantillonnage et de maintien sur puce qui est nécessaire lors de la conversion rapide des
signaux d'entrée analogiques. Les fonctions des broches sont :

●142
Chapitre 7 • Utilisation de l'ADC dans les projets Raspberry Pi Node-RED

CS/SHDN : Entrée de sélection de puce

CH0 : entrée analogique voie 0


CH1 : entrée analogique voie 1
Vs : masse d'alimentation
Vacarme: Saisie des données SPI

Doute : Sortie de données SPI

CLK : Horloge SPI


Vdd/Vréf : alimentation et tension de référence

Installation du nœud MCP3002: Avant d'utiliser le MCP 3002 dans une application Node-RED, nous devons
installer le nœud MCP3002 dans la palette de nœuds (les étapes suivantes installent les nœuds MCP 3xxx,
qui incluent d'autres puces ADC de la même famille). Les étapes sont indiquées ci-dessous :

• Cliquez surMenu -> Gérer la paletteet cliquezInstaller

• Entrernoeud-rouge-node-pi-mcp3008dans le champ de recherche et cliquez surinstaller

• Une fois l'installation terminée, vous devriez voir un nouveau nœud appeléConvertisseur
A/N

Vous pouvez également exécuter la commande suivante à partir de votre répertoire Node-RED par défaut de~/ .
nodé

npm installer nœud-rouge-node-pi-mcp3008

Nous devons également activer l'interface SPI sur notre Raspberry Pi 4. Les étapes sont :

• pi@raspberrypi :~ $sudo raspi-config

• Descendez jusqu'à5 . Options d'interface

• Déménager àP4 SPI, cliquez dessus et activez l'interface SPI

Raspberry Pi possède les deux ports SPI avec les broches suivantes :

Port SPI Fonction SPI Nom de la broche du Raspberry Numéro de port physique
SPI0 MOSI Pi GPIO10 19
SPI0 MISO GPIO9 21
SPI0 CLK GPIO11 23
SPI0 CE0 GPIO8 24
SPI0 CE1 GPIO7 26
SP1 MOSI GPIO20 38
SP1 MISO GPIO19 35
SP1 CLK GPIO21 40
SP1 CE0 GPIO18 12
SP1 CE1 GPIO17 11

●143
Programmation avec Node-RED

La communication SPI nécessite un minimum de 3 broches : MOSI (Master Out Slave In), MISO (Master In
Slave Out) et CLK (Clock). Dans certaines applications, il peut également être nécessaire d'activer le
périphérique SPI à l'aide de l'une des broches CE (Chip Enable).

Un projet est présenté dans la section suivante qui montre comment le MCP 3002 peut être utilisé dans un projet.

7 .3 Projet 32 – Voltmètre avec sortie LCD

Description:Il s'agit d'un projet de voltmètre. La tension à mesurer est appliquée aux bornes
d'entrée. La valeur mesurée est affichée en millivolts sur un écran LCD. Dans ce projet, veuillez vous
assurer que la tension d'entrée n'est pas supérieure à 3 300 mV.

But: Le but de ce projet est de montrer comment un ADC peut être utilisé dans un projet Node-RED
avec Raspberry Pi.

Diagramme: Le schéma fonctionnel du projet est présenté dans la figure 7.2.

Figure 7.2 Schéma fonctionnel du projet

Schéma: La figure 7.3 montre le schéma de circuit du projet. Le MCP 3002 ADC est connecté au
Raspberry Pi comme suit :

Broche MCP302 Port Raspberry Pi Numéro de broche physique du Raspberry Pi

CLK GPIO11 (CLK) 23

Doute GPIO9 (MISO) 21


Vacarme GPIO10 (MOSI) 19
CS/SHDN GPIO7 (CE1) 26
Vss GND 6
Vdd + 3,3V 1

Figure 7.3 Schéma de circuit du projet

●144

Vous aimerez peut-être aussi