Cours:LPTraitDonnee : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Installer Node-Red sur Android)
(Annexe : Indication sur compte-rendu global pour évaluation)
 
(23 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== LP IoT - Traitement de données ==
+
<center>
 +
'''<big>LP IoT - Traitement de données</big>'''
 +
</center>
  
Nous traiterons ici la partie « échange de données », c'est-à-dire comment connecter un objet connecté.
+
Nous traiterons ici la partie Traitement de données », c'est-à-dire comment acquérir des données distribuées (d'objets iot ou de serveurs), les traiter (détecter, modifier, ...) en temps réel, et redistribuer ces données.
La progression se répartit sur trois étapes :
 
  
# Apprentissage de MQTT, protocole d’échange d’information omniprésent dans les objets connectés
+
La progression se répartit sur les étapes suivantes :
# Apprentissage de NodeRed, solution logicielle graphique open sourcée permettant la création rapide, en quelques clics, de chaînes de traitement
 
# Un mini-projet, que vous réaliserez pendant les séances et que vous remettrez à la fin de la période.
 
  
Fonctionnement général :
+
* Apprentissage de MQTT, protocole d’échange d’information omniprésent dans les objets connectés
+
* Apprentissage de NodeRed, solution logicielle graphique open sourcée permettant la création rapide, en quelques clics, de chaînes de traitement
# Mise à disposition de documents, sites et documentations à consulter avec objectifs de réalisation
+
* Traitements avec NodeRed :
# Séances d’échanges sur Discord pour résoudre les points problématiques, les questions, …
+
** Réception de données (météo OpenWeather, consommation électrique IUT, capteur)
# Évaluation de la séquence par remise d’un court dossier sur le sujet traité dans le mini-projet, reprenant les objectifs de réalisation.
+
** Traitements élémentaires temps réel : formattage, affichage, détection d’anomalies simples (en valeur, en bruit, en déviation), correction anomalies simples (filtrage), …
 +
** Émission/Stockage de données et d’alertes
  
= MQTT =
+
Nous fonctionnerons en mode "projet", que vous réaliserez pendant les séances et que vous remettrez à la fin de la période aux échéances indiquées. Vous aurez deux "projet" à remettre, qui donneront deux notes dont la moyenne produira votre évaluation finale.
  
* Lecture (en autonomie)
+
== Progression ==
** Comprendre MQTT : https://www.lemagit.fr/conseil/Internet-des-Objets-bien-comprendre-MQTT
 
  
* Installation des outils (plusieurs windows 10 + 1 W7+ 1 linux)
+
1. [[Cours:LPTraitDonnee1|Découverte de MQTT et de NodeRed]]
** Informations sur https://mosquitto.org pour tous les os
+
* [[Cours:LPTraitDonnee1proj|Projet 1 : suivi de données météo]]
 +
2. [[Cours:LPTraitDonnee2|Traitement de données temps réel avec NodeRed]]
 +
* [[Cours:LPTraitDonnee2proj|Projet 2 : Détection d'anomalies en temps réel]]
  
== Travail à faire ==
+
<!--
 +
* [[Cours:LPTraitDonnee3|Partie 3 : utilisation de NodeRed sur carte NanoPi Neo2]]
 +
* [[Cours:LPTraitDonneeProjet|Description du projet (au fil des séances)]]
 +
-->
  
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.
+
== Annexe : résumé des adresses IP à utiliser ==
  
* Installer un client MQTT
+
* Broker MQTT interne : 10.98.35.245 (les données de consommation électrique de l'IUT sont publiées sur ce broker)
* Lire ce document et faire les exercices :  [[Fichier:tutorial_mqtt.pdf]] (source J.Y. Tigli : http://www.tigli.fr)
+
* Carte Nanopi : 10.98.35.XX avec XX = 176+numéro de la carte (donc de 10.98.35.177 à 10.98.34.200)
* Utiliser ce broker graphique : http://shiftr.io/geii-troyes/lp-iot : (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 1aa02488 -P 45ade33185a98624 -h broker.shiftr.io -t NomDuTopic -m ContenuDuMessage</code>
 
  
= NodeRed =
+
== Annexe : Indication sur compte-rendu global pour évaluation ==
  
* Lecture de documentations
+
* Deadline le 03.04.2023
** Node.js (moteur de Node-RED) :https://nodejs.org/fr/
+
* Contenu du document :
** Node-RED : https://nodered.org
+
** Objectif
** node-red-dashboard (interface utilisateur) pour node-RED : https://flows.nodered.org/node/node-red-dashboard
+
** Description de la réalisation
* Node-RED Cookbook : https://cookbook.nodered.org
+
** Description du fonctionnement
 
+
** Conclusion : que serait-il possible d'améliorer ? De faire différemment ?  
== 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>
 
 
 
== Travail à faire==
 
 
 
* Installer Node.js puis NodeRed
 
* Installer node-red-dashboard
 
** En ligne de commande : <code>npm install node-red-dashboard</code>
 
* Tuto node-RED dashboard : https://projetsdiy.fr/node-red-dashboard-interface-partie1/
 
* 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/
 
 
 
= Projet à rendre =
 
 
 
* Travail en binôme :
 
** une partie "collecte de donnée" qui doit envoyer des données sur un broker
 
** une partie "affichage" qui doit lire des données du broket et réaliser un affichage graphique
 
* Cahier des charges :
 
** Exploiter les données météorologiques de [https://openweathermap.org OpenWeather]
 
*** Depuis Node-Red : <code>node-red-node-openweathermap</code>, https://flows.nodered.org/node/node-red-node-openweathermap (bien lire la doc !)
 
** 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é" rapidememnt, vous pourrez évidemment utiliser tout code ou flow trouvé sur le net, à condition de le mentionner.
 
* À rendre (pour évaluation) :
 
** Document décrivant votre projet en quelques pages au maximum :
 
*** Objectif
 
*** Description de la réalisation
 
*** Description du fonctionnement
 
*** Conclusion : que serait-il possible d'améliorer ? De faire différemment ?  
 
 
** Le code du projet Node-Red (cf. ''export nodes'' dans Node-Red)
 
** Le code du projet Node-Red (cf. ''export nodes'' dans Node-Red)
** par mail à frederic.nicolier(at)univ-reims.fr en indiquant clairement le nom des deux étudiants du binôme
+
* par mail à frederic.nicolier(at)univ-reims.fr en indiquant clairement votre Nom-Prénom

Version actuelle datée du 14 mars 2023 à 17:39

LP IoT - Traitement de données

Nous traiterons ici la partie Traitement de données », c'est-à-dire comment acquérir des données distribuées (d'objets iot ou de serveurs), les traiter (détecter, modifier, ...) en temps réel, et redistribuer ces données.

La progression se répartit sur les étapes suivantes :

  • Apprentissage de MQTT, protocole d’échange d’information omniprésent dans les objets connectés
  • Apprentissage de NodeRed, solution logicielle graphique open sourcée permettant la création rapide, en quelques clics, de chaînes de traitement
  • Traitements avec NodeRed :
    • Réception de données (météo OpenWeather, consommation électrique IUT, capteur)
    • Traitements élémentaires temps réel : formattage, affichage, détection d’anomalies simples (en valeur, en bruit, en déviation), correction anomalies simples (filtrage), …
    • Émission/Stockage de données et d’alertes

Nous fonctionnerons en mode "projet", que vous réaliserez pendant les séances et que vous remettrez à la fin de la période aux échéances indiquées. Vous aurez deux "projet" à remettre, qui donneront deux notes dont la moyenne produira votre évaluation finale.

Progression

1. Découverte de MQTT et de NodeRed

2. Traitement de données temps réel avec NodeRed


Annexe : résumé des adresses IP à utiliser

  • Broker MQTT interne : 10.98.35.245 (les données de consommation électrique de l'IUT sont publiées sur ce broker)
  • Carte Nanopi : 10.98.35.XX avec XX = 176+numéro de la carte (donc de 10.98.35.177 à 10.98.34.200)

Annexe : Indication sur compte-rendu global pour évaluation

  • Deadline le 03.04.2023
  • Contenu du document :
    • Objectif
    • Description de la réalisation
    • Description du fonctionnement
    • Conclusion : que serait-il possible d'améliorer ? De faire différemment ?
    • Le code du projet Node-Red (cf. export nodes dans Node-Red)
  • par mail à frederic.nicolier(at)univ-reims.fr en indiquant clairement votre Nom-Prénom