Outils pour utilisateurs

Outils du site


faire_preparation:soireeinfo:tp:start

Tp ESP32 Tasmota MQTT Node red

Materiels utilisés

  • 1 ESP32 avec son cordon
  • 1 PC Fixe ou portable
  • 1 Led
  • 1 Bredboard
  • Des cables Dupont
  • 1 Bouton poussoir ou interrupteur
  • 1 DHT11
  • 1 serveur MQTT fonctionnel – Serveur MQTT de test =⇒ fablab37110.ddns.net:1883

OrangePi

installer un serveur Node-Red sur un Raspberry

ATTENTION inserer dans le champ MQTT de tasmota et node-red : fablab37110.ddns.net et ensuite dans le champ “port” mettre 1883 ne pas mettre http://
Le mot de passe est 2 fois le mot de passe des PC du fablab Login = idem
  • Plusieurs serveurs Node Red fonctionnel

Nouveau serveur de test NodeRed pour l année 2023-2024 :

—————————————————————————————————————-

Ancien serveurs NodeRed utilisé en 2022/2023 (faite une copie sur les nouveaux serveurs 2023/2024 et prevoir la reinstallation des noeuds supplementaires utilises… )

Il est tres fortement recommandé d 'utiliser un serveur node-red par utilisateur et un seul
Il est tres fortement conseillé de sauvegarder sa configuration Node-red dans un fichier sur son PC au cas ou ….

Sauvegarde configuration Node-red

Supprimer un Flow dans node-red

Schema de raccordement

Exercise 1 :

Etapes

– Raccorder l ESP32 au PC sur un port USB

– Telecharger le binaire Tasmota avec Web Installer en utilisant Chrome ou Chromium

– Configurer le wifi , Indiquer le SSID et le mot de passe de votre box

Si vous etes au FABLAB et si nous n'avez pas de connexion wifi (castellab), taper dans la console : Backlog SSID1 Livebox-5200; Password1 Castel37110$; SSID2 SSIDVOTREBOX; Password2 MDPWIFIVOTREBOX

– Connecter vous via le navigateur web Chrome ou Chromium, à l'adresse @192.168.xxx.xxx de votre tasmota

(si vous ne connaissez pas @IP de votre tasmota : Vous pouvez utiliser l' interface de votre box ou le logiciel nmap)

– Une fenetre comme ci-dessous s'ouvrira

– Menu Configuration

– Configurer le serveur MQTT , Exemple : “fablab37110.ddns.net” le port par defaut est 1883

– configurer les modules :

  1. - GPIO39 =⇒ bouton =⇒ index 1 ( ceci est un exemple on peut configurer d'autres GPIO conrespondant à votre ESP32 )
  2. - GPIO21 =⇒ relais =⇒ index 1 ( ceci est un exemple on peut configurer d'autres GPIO conrespondant à votre ESP32 )

Ouvrir la console de tasmota ( revenir au premier ecran) est entrer les commandes “SetOption146 1” + Entrée( validation de l'envoi de la temperature de l'ESP32) et “teleperiod 5” + Entrée ( definit la periode d'envoi des informations vers MQTT ici tous les 5 s), “SetOption65 1” pour eviter de reinitialiser la configuration sur defaut d'alimentation, “SetOption1 1” pour defaut reset intempestif sur appui bouton.

–revenir au premier ecran

– Copier les topic de l'esp32 “stat/tasmota_6B2128/POWER” ( A partir de la console) pour l'etat ON/OFF du bouton ( à sauvegarder dans un fichier texte provisoire) Le code 6B2128 depend de l'ESP32, il est différent à chaque ESP32 , reprend une partie de l'adresse MAC de l'ESP32

– Et copier le topic “tele/tasmota_6B2128/SENSOR” pour recuperer la temperature de l'ESP32 Idem le sauvegarder

NOTER les 6 derniers caracteres de l'adresse MAC de votre ESP32 pour le retrouvez plus facilement dans votre configuation et coller une etiquette sur votre ESP32 avec cette @MAC

– Vous pouvez copier d'autres topic pour les inserer dans Node red si besoin

– Vous connecter au serveur Node red ( Au serveur qui vous est destiné pour les tests : fablab37110.ddns.net:18XX )

Attention si vous vous connnecter à plusieurs sur le meme serveur Node red , vous allez vous melanger les flux et cela risque de creer des soucis , donc prenez chacun un Node red voir avec Thierry ou Gerard… (Voir le debut du tuto pour les @IP des serveurs node-red)

– allez ouvrir une page web comme celle-ci :

– Vous inserer un noeud en le faisant glisser sur la partie centrale. le premier noeud est MQTT IN dans la colonne de gauche section “Network”

– Inserer le noeud “Debug” section “Common” pour visualiser les informations venant de votre ESP32 via MQTT

– Il vous faut parametrer le noeud MQTT IN avec l'adresse du serveur MQTT utilisé par votre Tasmota de l'ESP32 et le topic ( sujet) que vous voulez utiliser

  • serveur MQTT =⇒ “fablab37110.ddns.net port par defaut 1883 ( Le crayon pour changer @MQTT)
  • Topic à inserer pour le bouton “stat/tasmota_6B2128/POWER”

Cliquer sur le bouton “Update” et ensuite bouton “Done” et ensuite le bouton “Deploy” pour valider ( en haut à droite )

Cliquez sur le petit crayon pour avoir cette fenettre et inserer uniquement l'URL de MQTT , le port etant par defaut 1883

Si les ronds bleu on disparu et aucun triangle orange , c'est qu'il n'y pas d'erreurs et si vous avez l'info ” Connected “ en dessous du noeud MQTT IN , indique que Node red à bien trouver le serveur MQTT

Si vous voulez utiliser un autre topic par exemple la temperature , il faut utiliser un autre noeud MQTT IN

Si vous appuyer 1 fois sur le bouton , vous devez voir l'information “ON” dans la fenetre “Debug”

Si vous appuyer 1 autre fois sur le bouton , vous devez voir l'information “OFF” dans la fenetre “Debug”

Visualiser la Led de lESP32 sur Node Red

  • 1-Inserer 2 nodes supplementaires :

node-red-dashboard , il permet d'avoir un tableau de bord pour visualiser et piloter notre ESP32

et node-red-contrib-ui-led , permet d'afficher la valeur de la LED Eteinte = vert, Allumée = Rouge

  • 2- Configurer le node de la Led pour l'affichage
  • 3- Configurer le node MQTT out et un node switch pour piloter la LED via Node Red

——————————————————————————————————————————————————————————————————

  • 1- Inserer les nodes supplementaires ( Cliquez sur le menu en haut à droite à coté de l'icone “Deploy” )

  • 2- Cliquez sur “Manage Palette” et ensuite l'onglet “Install” taper dans la zone de recherche “dashboard” et cliquez sur “install” à la ligne “node-red-dashboard

  • 3- Faire la même chose avec le node ” node-red-contrib-ui-led
  • 4 - Vous devriez avoir dans la colonne de gauche un menu supplementaire avec le dashboard avec ses nodes correspondants ainsi que le node “LED”

  • 5- Inserez le node “LED” et relié le au node “MQTT in” parametré précédement

  • 6- On paramettre le node “LED” : Le groupe ( petit crayon) , Le Label ( Nom), La position , La forme(Cercle ou carré), le msg.payload mode String ( ON / OFF), la couleur ( Rouge = Allumée , Blanc = Eteinte )

  • 7- On paramettre le groupe ( Name) et le nom du dashboard ( Tab) en cliquant sur le petit crayon et ensuite on clique sur “Update” et ensuite “Done” et on n'oublie pas de faire “Deploy” ( Enregistrer)

  • 8- En ouvrant une nouvelle fenetre pour afficher le Dashboard @iPNodered/ui ( exemple : http://192.168.1.44:1880/ui/) on affiche le tableau de bord avec la LED qui s'allume ou s'eteint suivant l'etat du bouton de l'ESP32

Allumé

Eteint

Piloter la LED de ESP32 et du Dasboard via Node Red

  • 1- Inserez 2 nodes : “MQTT out” ( Network ) et “Switch” ( Dashboard) et relié les ensembles ( Sortie Switch sur entree MQTTout)

  • 2- Parametrer le node “MQTT out” : server (exemple) = fablab37110.ddns.net:1883 ; Topic = cmnd/tasmota_6B2128/POWER1 (cmnd = abreviation pour envoyer des infos à tasmota; tasmota_6B2128 = reference materiel du tasmota esp32 utilisé; /POWER = Bouton ou switch de tasmota; 1 = index 1 de Tasmota )

Cliquez sur le petit crayon ( ligne server) pour avoir cette fenettre et inserer uniquement l'URL de MQTT (pour exemple fablab37110.ddns.net) , le port etant par defaut 1883

  • 3- Parametrer le node “Switch” : le groupe ( ICI test001) , la taille ( Size), Le label( Nom) , On Payload = ON , Off Payload = OFF, Topic = msg.topic ) Cliquer sur “Done” et “Deploy”

  • 4- On devrait visualiser “connected” sous le node MQTT out

  • 5- On affiche le dashboard ( voir rubrique précedente); En actionnant le “Switch” sur NodeRed on eteint ou allume la LED , et de même avec le bouton de l'ESP32

Allumé

Eteinte

Exercice 2 :

  • Essayer de parametrer le Dashboard avec la temperature de l'ESP32 qui s'affiche sur une Gauge et ensuite sur un graphique ( Il faudra utiliser un node “Function” pour obtenir la valeur de la temperature
exemple.json
var  Temp = msg.payload.ESP32.Temperature;
msg.payload = Temp;
return msg;

Pour avoir cela :

La correction

/home/chanteri/www/fablab37110/data/pages/faire_preparation/soireeinfo/tp/start.txt · Dernière modification : 2024/04/15 08:24 de gerardadmin