Cours:LPTraitDonnee1 : Différence entre versions
(→Exercices à faire) |
|||
Ligne 1 : | Ligne 1 : | ||
− | = MQTT = | + | [[Cours:LPTraitDonnee|{{Rouge|'''Retour à la page du cours'''}}]] |
+ | |||
+ | <center> | ||
+ | '''<big>TP1 : MQTT et NodeRed</big>''' | ||
+ | </center> | ||
+ | |||
+ | == MQTT == | ||
* Lecture | * Lecture | ||
Ligne 9 : | Ligne 15 : | ||
* Un tuto MQTT : https://hackmd.io/@pmanzoni/BJ9hwSfhG | * Un tuto MQTT : https://hackmd.io/@pmanzoni/BJ9hwSfhG | ||
− | == Exercices à faire == | + | === Exercices à faire === |
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 PowerShell (intégré à Windows) en guise de terminal plutôt que la rustique invite de commande. | ||
Ligne 25 : | Ligne 31 : | ||
''Note'' : MQTT Explorer http://mqtt-explorer.com | ''Note'' : MQTT Explorer http://mqtt-explorer.com | ||
− | = NodeRed = | + | == NodeRed == |
* Lecture de documentations | * Lecture de documentations | ||
Ligne 40 : | Ligne 46 : | ||
** 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.js puis NodeRed | ||
Ligne 96 : | Ligne 78 : | ||
**** comment gérer plusieurs entrées | **** comment gérer plusieurs entrées | ||
**** comment gérer plusieurs sorties | **** comment gérer plusieurs sorties | ||
+ | |||
+ | == 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 | ||
+ | <syntaxhighlight> | ||
+ | apt update | ||
+ | apt upgrade | ||
+ | apt install coreutils nano nodejs</syntaxhighlight> | ||
+ | * Ensuite | ||
+ | <syntaxhighlight> | ||
+ | npm i -g --unsafe-perm node-red | ||
+ | </syntaxhighlight> | ||
+ | Si cette commande ne passe pas (certains Android apparement), taper | ||
+ | <syntaxhighlight> | ||
+ | pkg install yarn | ||
+ | yarn global add npm | ||
+ | npm i -g --unsafe-perm node-red | ||
+ | </syntaxhighlight> | ||
+ | * Lancer ensuite node-red | ||
+ | <syntaxhighlight>node-red</syntaxhighlight> | ||
+ | * 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> |
Version du 3 mars 2023 à 10:54
TP1 : MQTT et NodeRed
Sommaire
MQTT
- 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
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.
c:\Program Files\mosquitto\mosquitto_sub.exe
- Lire ce document et faire les exercices : Fichier:Tutorial mqtt.pdf (source J.Y. Tigli : http://www.tigli.fr)
- Utiliser ce 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
- ou le broker lancé par défaut sur chaque machine : échanger des infos entre deux machines (par binôme).
- ou le broker interne (10.98.35.245)
Note : MQTT Explorer http://mqtt-explorer.com
NodeRed
- Lecture de 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 : https://cookbook.nodered.org
- 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
- 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) :
Exercices
- (si besoin) Installer Node.js puis NodeRed
- (si besoin) Installer node-red-dashboard
- En ligne de commande :
npm install node-red-dashboard
- En ligne de commande :
- Exercices (tutoriels) sans MQTT :
- Exercices (tutoriels) avec MQTT
- Tuto node-RED dashboard : https://projetsdiy.fr/node-red-dashboard-interface-partie1/
Travail à faire et rendre
Suivi de données météorologiques
- Travail :
- une partie "collecte de donnée" qui doit recevoir des données et les envoyer sur un broker
- une partie "affichage" qui doit lire des données du broker et réaliser un affichage graphique
- Cahier des charges :
- Exploiter les données météorologiques de OpenWeather
- Depuis Node-Red :
node-red-node-openweathermap
, https://flows.nodered.org/node/node-red-node-openweathermap (bien lire la doc !)
- Depuis Node-Red :
- Les données doivent être enregistrées progressivement dans un fichier texte pour archivage
- En respectant un contexte « objet connecté», vous pourrez ajouter les fonctionnalités que vous souhaitez. Dans la logique de réaliser un "objet connecté" rapidement, vous pourrez évidemment utiliser tout code ou flow trouvé sur le net, à condition de le mentionner et d'expliquer son fonctionnement.
- Un exemple simple : http://developers.sensetecnic.com/article/a-node-red-flow-to-monitor-the-weather/
- Un guide assez clair et complet sur l'écriture de blocs de fonctions : https://stevesnoderedguide.com/node-red-functions. En particulier :
- comment gérer plusieurs entrées
- comment gérer plusieurs sorties
- Exploiter les données météorologiques de OpenWeather
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