Cours:LPTraitDonnee1
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