Cours:LPTraitDonnee1 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Exercices à faire)
(Exercices)
 
(25 révisions intermédiaires par le même utilisateur non affichées)
Ligne 7 : Ligne 7 :
 
== Découverte de MQTT ==
 
== Découverte de MQTT ==
  
=== Lecture et informations ===
+
=== Exercices ===
 
 
* 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
 
 
 
=== Exercices à faire ===
 
 
 
 
 
  
 
1) Lire ce document et faire les exercices :  [[Fichier:tutorial_mqtt.pdf]] (source J.Y. Tigli : http://www.tigli.fr)
 
1) Lire ce document et faire les exercices :  [[Fichier:tutorial_mqtt.pdf]] (source J.Y. Tigli : http://www.tigli.fr)
Ligne 25 : Ligne 13 :
  
 
Vous testerez ces ''brokers'' :
 
Vous testerez ces ''brokers'' :
* Broket de test : <code>test.mosquitto.org</code>
+
* Broker de test : <code>test.mosquitto.org</code>
 
* Broker graphique : https://lp-iot.cloud.shiftr.io : (visualisation des messages entrants et sortants).
 
* 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.
 
** Il est nécessaire de fournir un numéro d’utilisateur et un mot de passe.
Ligne 32 : Ligne 20 :
 
* Broker interne (10.98.35.245)
 
* Broker interne (10.98.35.245)
  
''Note pour les utilisateurs de Windows'' : il sera probablement plus commode d’utiliser PowerShell (intégré à Windows) en guise de terminal plutôt que la rustique invite de commande.
+
''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.
''Note'' : MQTT Explorer http://mqtt-explorer.com
 
  
  
 
2) Échanger des informations entre deux machines (par binôme)
 
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 :
 
* En utilisant une des deux machines (ou les deux) en broker :
 
** L'IP de votre machine est accessible par la commande <code>ipconfig</code>
 
** L'IP de votre machine est accessible par la commande <code>ipconfig</code>
 
** Il sera nécessaire de :
 
** Il sera nécessaire de :
 
*** interrompre le daemon <code>mosquitto</code> en le tuant dans le gestionnaire des tâches
 
*** interrompre le daemon <code>mosquitto</code> en le tuant dans le gestionnaire des tâches
*** de le relancer par la commande <code>mosquitto.exe</code>
+
*** de lancer le broket par la commande <code>mosquitto.exe</code>
 
*** de modifier au préalable le fichier <code>mosquitto.conf</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
 +
** 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 ==
 
== NodeRed ==
  
* Lecture de documentations
+
=== 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
 
* Une collection de ''flows'' node-red de qualité : https://github.com/naimo84/awesome-nodered
* Doc officielle sur les blocs fonctions : https://nodered.org/docs/user-guide/writing-functions
+
* 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>
 
** ouverture navigateur sur <code>http://127.0.0.1:1880</code>
 
** ouverture navigateur sur <code>http://127.0.0.1:1880</code>
 
** 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)
 
=== Exercices ===
 
 
* (si besoin) Installer Node.js puis NodeRed
 
* (si besoin) Installer node-red-dashboard
 
** En ligne de commande : <code>npm install node-red-dashboard</code>
 
 
* Exercices (tutoriels) sans MQTT :
 
** http://silanus.fr/sin/?p=984
 
** http://www.rgot.org/initiation-a-node-red/
 
 
* Exercices (tutoriels) avec MQTT
 
** https://cookbook.nodered.org/#mqtt
 
** https://projetsdiy.fr/routeur-mqtt-node-red-sonoff-tasmota-cloudmqtt/
 
 
* Tuto node-RED dashboard : https://projetsdiy.fr/node-red-dashboard-interface-partie1/
 
  
 
== Annexe : Installer Node-Red sur Android ==
 
== Annexe : Installer Node-Red sur Android ==
Ligne 80 : Ligne 86 :
 
* Installer Termux : https://termux.com
 
* Installer Termux : https://termux.com
 
* Ouvrir Termux et taper
 
* Ouvrir Termux et taper
<syntaxhighlight>
+
<source>
 
apt update
 
apt update
 
apt upgrade
 
apt upgrade
apt install coreutils nano nodejs</syntaxhighlight>
+
apt install coreutils nano nodejs
 +
</source>
 
* Ensuite
 
* Ensuite
<syntaxhighlight>
+
<source>
 
npm i -g --unsafe-perm node-red
 
npm i -g --unsafe-perm node-red
</syntaxhighlight>
+
</source>
 
Si cette commande ne passe pas (certains Android apparement), taper  
 
Si cette commande ne passe pas (certains Android apparement), taper  
<syntaxhighlight>
+
<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
</syntaxhighlight>
+
</source>
 
* Lancer ensuite node-red
 
* Lancer ensuite node-red
<syntaxhighlight>node-red</syntaxhighlight>
+
<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 :
<syntaxhighlight>ifconfig</syntaxhighlight>
+
<source>ifconfig</source >

Version actuelle datée du 6 mars 2023 à 12:32

Retour à la page du cours

Partie 1 : MQTT et NodeRed

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
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

  • (Si besoin) Installation des outils (plusieurs windows 10 + 1 W7+ 1 linux)

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

Lecture et informations

Annexe : Installer Node-Red sur Android

Suivre les indications données ici : https://nodered.org/docs/getting-started/android

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