Cours:LPTraitDonnee1 : Différence entre versions
(→Travail à faire et rendre) |
(→Exercices) |
||
(38 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | = MQTT = | + | [[Cours:LPTraitDonnee|{{Rouge|'''Retour à la page du cours'''}}]] |
+ | |||
+ | <center> | ||
+ | '''<big>Partie 1 : MQTT et NodeRed</big>''' | ||
+ | </center> | ||
+ | |||
+ | == Découverte de MQTT == | ||
+ | |||
+ | === Exercices === | ||
+ | |||
+ | 1) Lire ce document et faire les exercices : [[Fichier:tutorial_mqtt.pdf]] (source J.Y. Tigli : http://www.tigli.fr) | ||
+ | * Sous les machines windows de l'iut, les éxecutables sont dans le dossier <code>c:\Program Files\mosquitto\</code> | ||
+ | |||
+ | Vous testerez ces ''brokers'' : | ||
+ | * Broker de test : <code>test.mosquitto.org</code> | ||
+ | * Broker graphique : https://lp-iot.cloud.shiftr.io : (visualisation des messages entrants et sortants). | ||
+ | ** Il est nécessaire de fournir un numéro d’utilisateur et un mot de passe. | ||
+ | ** Exemple <code>mosquitto_pub -u lp-iot -P vHm5YuMEPJcpNfss -h lp-iot.cloud.shiftr.io -t NomDuTopic -m ContenuDuMessage</code> | ||
+ | * Broker lancé par défaut sur chaque machine | ||
+ | * Broker interne (10.98.35.245) | ||
+ | |||
+ | ''Note pour les utilisateurs de Windows'' : il sera probablement plus commode d’utiliser la console ''powerShell'' (intégré à Windows) en guise de terminal plutôt que la rustique invite de commande. | ||
+ | |||
+ | |||
+ | 2) Échanger des informations entre deux machines (par binôme) | ||
+ | * Faire simple : envoyer un message sur un seul topic | ||
+ | * En utilisant une des deux machines (ou les deux) en broker : | ||
+ | ** L'IP de votre machine est accessible par la commande <code>ipconfig</code> | ||
+ | ** Il sera nécessaire de : | ||
+ | *** interrompre le daemon <code>mosquitto</code> en le tuant dans le gestionnaire des tâches | ||
+ | *** de lancer le broket par la commande <code>mosquitto.exe</code> | ||
+ | *** de modifier au préalable le fichier <code>mosquitto.conf</code> | ||
+ | <source lang=bash> | ||
+ | listener 1883 # vers la ligne 232 : permet l'acces sur le port 1883 par IP | ||
+ | allow_anonymous true # vers la ligne 529 : autorise les connections externes | ||
+ | </source> | ||
+ | |||
+ | ''Note'' : Vous utiliserez MQTT Explorer pour visualiser le comportement de votre broker et les messages qui y circulent. Vous pouvez le télécharger en version portable à l'adresse suivante http://mqtt-explorer.com | ||
+ | |||
+ | === Lecture et informations === | ||
* Lecture | * Lecture | ||
Ligne 9 : | Ligne 48 : | ||
* Un tuto MQTT : https://hackmd.io/@pmanzoni/BJ9hwSfhG | * Un tuto MQTT : https://hackmd.io/@pmanzoni/BJ9hwSfhG | ||
− | == | + | == NodeRed == |
− | + | === Exercices === | |
− | * | + | * (si besoin) Installer node-red-dashboard |
+ | ** de préférence via l'ui graphique (cf ''manage palette'') | ||
+ | ** sinon, en ligne de commande : <code>npm install node-red-dashboard</code> | ||
− | * | + | * Exercices (tutoriels) sans MQTT : |
− | ** | + | ** https://nodered.org/docs/tutorials/ (''first flow'' et ''second flow'') |
− | ** | + | ** http://silanus.fr/sin/?p=984 |
− | * | + | ** https://forum.hacf.fr/t/debuter-avec-node-red/334 |
− | * | + | * Tutoriel node-RED dashboard : http://noderedguide.com/lecture-7-node-red-dashboard-part2/ |
+ | * Exercice avec MQTT : en vous appuyant sur les tutos précédent et les "recettes" du cookbook (https://cookbook.nodered.org/#mqtt) : | ||
+ | ** Un PC doit générer et envoyer des nombres aléatoires sur un topic | ||
+ | ** l'autre PC doit récupérer ces données et réaliser un affichage graphique | ||
− | = | + | === Lecture et informations === |
− | * | + | * Documentations |
** Node.js (moteur de Node-RED) :https://nodejs.org/fr/ | ** Node.js (moteur de Node-RED) :https://nodejs.org/fr/ | ||
** Node-RED : https://nodered.org | ** Node-RED : https://nodered.org | ||
** node-red-dashboard (interface utilisateur) pour node-RED : https://flows.nodered.org/node/node-red-dashboard | ** node-red-dashboard (interface utilisateur) pour node-RED : https://flows.nodered.org/node/node-red-dashboard | ||
**:- ou dashboard-evi en alternative : https://flows.nodered.org/node/dashboard-evi | **:- ou dashboard-evi en alternative : https://flows.nodered.org/node/dashboard-evi | ||
− | * Node-RED Cookbook : https://cookbook.nodered.org | + | * Node-RED Cookbook, solutions pour la plupart des actions élémentaires :: https://cookbook.nodered.org |
− | * | + | ** avec MQTT en particulier : https://cookbook.nodered.org/#mqtt |
− | * | + | * Une collection de ''flows'' node-red de qualité : https://github.com/naimo84/awesome-nodered |
− | + | * Comment écrire du code (javascript) dans les blocs fonctions : https://nodered.org/docs/user-guide/writing-functions | |
− | |||
* '''Guide de survie''' : | * '''Guide de survie''' : | ||
** Lancer NodeRed en ligne de commande (bash ou powershell, '''en mode administrateur sur les machines de l'IUT''') : <code>node-red.cmd</code> | ** Lancer NodeRed en ligne de commande (bash ou powershell, '''en mode administrateur sur les machines de l'IUT''') : <code>node-red.cmd</code> | ||
Ligne 38 : | Ligne 81 : | ||
** interfaces graphiques sur <code>http://127.0.0.1:1880/ui</code> (par défaut) | ** interfaces graphiques sur <code>http://127.0.0.1:1880/ui</code> (par défaut) | ||
− | == | + | == Annexe : Installer Node-Red sur Android == |
Suivre les indications données ici : https://nodered.org/docs/getting-started/android | Suivre les indications données ici : https://nodered.org/docs/getting-started/android | ||
* Installer Termux : https://termux.com | * Installer Termux : https://termux.com | ||
* Ouvrir Termux et taper | * Ouvrir Termux et taper | ||
− | < | + | <source> |
apt update | apt update | ||
apt upgrade | apt upgrade | ||
− | apt install coreutils nano nodejs</ | + | apt install coreutils nano nodejs |
+ | </source> | ||
* Ensuite | * Ensuite | ||
− | < | + | <source> |
npm i -g --unsafe-perm node-red | npm i -g --unsafe-perm node-red | ||
− | </ | + | </source> |
Si cette commande ne passe pas (certains Android apparement), taper | Si cette commande ne passe pas (certains Android apparement), taper | ||
− | < | + | <source> |
pkg install yarn | pkg install yarn | ||
yarn global add npm | yarn global add npm | ||
npm i -g --unsafe-perm node-red | npm i -g --unsafe-perm node-red | ||
− | </ | + | </source> |
* Lancer ensuite node-red | * Lancer ensuite node-red | ||
− | < | + | <source>node-red</source > |
* Ouvrir ensuite un navigateur sur <code>http://localhost:1880</code> depuis l'appareil Android. Vous pouvez également accéder à ce node-red depuis un PC par exemple) en remplaçant localhost par l'adresse IP de l'appareil Android. Pour connaitre celle-ci, taper dans Termux : | * Ouvrir ensuite un navigateur sur <code>http://localhost:1880</code> depuis l'appareil Android. Vous pouvez également accéder à ce node-red depuis un PC par exemple) en remplaçant localhost par l'adresse IP de l'appareil Android. Pour connaitre celle-ci, taper dans Termux : | ||
− | < | + | <source>ifconfig</source > |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Version actuelle datée du 6 mars 2023 à 12:32
Partie 1 : MQTT et NodeRed
Sommaire
Découverte de MQTT
Exercices
1) Lire ce document et faire les exercices : Fichier:Tutorial mqtt.pdf (source J.Y. Tigli : http://www.tigli.fr)
- Sous les machines windows de l'iut, les éxecutables sont dans le dossier
c:\Program Files\mosquitto\
Vous testerez ces brokers :
- Broker de test :
test.mosquitto.org
- Broker graphique : https://lp-iot.cloud.shiftr.io : (visualisation des messages entrants et sortants).
- Il est nécessaire de fournir un numéro d’utilisateur et un mot de passe.
- Exemple
mosquitto_pub -u lp-iot -P vHm5YuMEPJcpNfss -h lp-iot.cloud.shiftr.io -t NomDuTopic -m ContenuDuMessage
- Broker lancé par défaut sur chaque machine
- Broker interne (10.98.35.245)
Note pour les utilisateurs de Windows : il sera probablement plus commode d’utiliser la console powerShell (intégré à Windows) en guise de terminal plutôt que la rustique invite de commande.
2) Échanger des informations entre deux machines (par binôme)
- Faire simple : envoyer un message sur un seul topic
- En utilisant une des deux machines (ou les deux) en broker :
- L'IP de votre machine est accessible par la commande
ipconfig
- Il sera nécessaire de :
- interrompre le daemon
mosquitto
en le tuant dans le gestionnaire des tâches - de lancer le broket par la commande
mosquitto.exe
- de modifier au préalable le fichier
mosquitto.conf
- interrompre le daemon
- L'IP de votre machine est accessible par la commande
listener 1883 # vers la ligne 232 : permet l'acces sur le port 1883 par IP
allow_anonymous true # vers la ligne 529 : autorise les connections externes
Note : Vous utiliserez MQTT Explorer pour visualiser le comportement de votre broker et les messages qui y circulent. Vous pouvez le télécharger en version portable à l'adresse suivante http://mqtt-explorer.com
Lecture et informations
- Lecture
- Comprendre MQTT : https://www.lemagit.fr/conseil/Internet-des-Objets-bien-comprendre-MQTT
- (Si besoin) Installation des outils (plusieurs windows 10 + 1 W7+ 1 linux)
- Informations sur https://mosquitto.org pour tous les os
- Un tuto MQTT : https://hackmd.io/@pmanzoni/BJ9hwSfhG
NodeRed
Exercices
- (si besoin) Installer node-red-dashboard
- de préférence via l'ui graphique (cf manage palette)
- sinon, en ligne de commande :
npm install node-red-dashboard
- Exercices (tutoriels) sans MQTT :
- https://nodered.org/docs/tutorials/ (first flow et second flow)
- http://silanus.fr/sin/?p=984
- https://forum.hacf.fr/t/debuter-avec-node-red/334
- Tutoriel node-RED dashboard : http://noderedguide.com/lecture-7-node-red-dashboard-part2/
- Exercice avec MQTT : en vous appuyant sur les tutos précédent et les "recettes" du cookbook (https://cookbook.nodered.org/#mqtt) :
- Un PC doit générer et envoyer des nombres aléatoires sur un topic
- l'autre PC doit récupérer ces données et réaliser un affichage graphique
Lecture et informations
- Documentations
- Node.js (moteur de Node-RED) :https://nodejs.org/fr/
- Node-RED : https://nodered.org
- node-red-dashboard (interface utilisateur) pour node-RED : https://flows.nodered.org/node/node-red-dashboard
- - ou dashboard-evi en alternative : https://flows.nodered.org/node/dashboard-evi
- Node-RED Cookbook, solutions pour la plupart des actions élémentaires :: https://cookbook.nodered.org
- avec MQTT en particulier : https://cookbook.nodered.org/#mqtt
- Une collection de flows node-red de qualité : https://github.com/naimo84/awesome-nodered
- Comment écrire du code (javascript) dans les blocs fonctions : https://nodered.org/docs/user-guide/writing-functions
- Guide de survie :
- Lancer NodeRed en ligne de commande (bash ou powershell, en mode administrateur sur les machines de l'IUT) :
node-red.cmd
- ouverture navigateur sur
http://127.0.0.1:1880
- interfaces graphiques sur
http://127.0.0.1:1880/ui
(par défaut)
- Lancer NodeRed en ligne de commande (bash ou powershell, en mode administrateur sur les machines de l'IUT) :
Annexe : Installer Node-Red sur Android
Suivre les indications données ici : https://nodered.org/docs/getting-started/android
- Installer Termux : https://termux.com
- Ouvrir Termux et taper
apt update
apt upgrade
apt install coreutils nano nodejs
- Ensuite
npm i -g --unsafe-perm node-red
Si cette commande ne passe pas (certains Android apparement), taper
pkg install yarn
yarn global add npm
npm i -g --unsafe-perm node-red
- Lancer ensuite node-red
node-red
- Ouvrir ensuite un navigateur sur
http://localhost:1880
depuis l'appareil Android. Vous pouvez également accéder à ce node-red depuis un PC par exemple) en remplaçant localhost par l'adresse IP de l'appareil Android. Pour connaitre celle-ci, taper dans Termux :
ifconfig