Cours:BUTiot : Différence entre versions
(→Travaux Dirigés / Pratiques) |
(→Ressources externes) |
||
(13 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 40 : | Ligne 40 : | ||
* MQTT : envoyer/recevoir des données | * MQTT : envoyer/recevoir des données | ||
* Javascript => Node.js => NodeRed | * Javascript => Node.js => NodeRed | ||
− | * analyser des données temps réel : détection d'anomalies ponctuelles (type | + | * analyser des données temps réel : détection d'anomalies ponctuelles (type aberration) par approche statistique |
* traiter des données temps réel : filtrage | * traiter des données temps réel : filtrage | ||
− | '''S6 | + | '''S6''' |
− | * Traitement numérique du signal : traitement de | + | * Traitement numérique du signal : traitement de données temps réel -> lissage, détection de changements, détection de motifs |
* Apprentissage artificiel : classification supervisée/non supervisée | * Apprentissage artificiel : classification supervisée/non supervisée | ||
− | * | + | * Données multivariées : kpp, ACP |
− | |||
== Évaluations == | == Évaluations == | ||
− | + | 1) BUT3 AII : Dossier à rendre sur [[Cours:BUTiot_DetectAnomalies1|Étape 3 - Node.js : Détection temps réel d'anomalies de type données aberrantes]] | |
− | + | * Deadline : 20 janvier 2023 (inclu) | |
− | + | * Envoi par email : codes sources + pdf | |
− | + | * Contenu du PDF : | |
# Courte introduction | # Courte introduction | ||
# Pour chaque source d'anomalie : | # Pour chaque source d'anomalie : | ||
Ligne 62 : | Ligne 61 : | ||
## Validation/conclusion sur votre solution de détection | ## Validation/conclusion sur votre solution de détection | ||
# Courte conclusion | # Courte conclusion | ||
+ | * Note (/20) composée de : | ||
+ | ** évaluation technique (/10) : quantité travail (d1 -> d5), qualité détection, qualité du code | ||
+ | ** évaluation documentaire (/10) : description des signaux et des anomalies, de ce qui a été fait et pourquoi, qualité de validation. Dans l'idéal : mise en contexte, validation chiffrée et analysée, description méthodologique, argumentation sur les choix | ||
== Élements de Cours Magistral == | == Élements de Cours Magistral == | ||
Ligne 68 : | Ligne 70 : | ||
* S6 : | * S6 : | ||
** [[Media:IoT-TNS.pdf|diapos de cours de TNS]] | ** [[Media:IoT-TNS.pdf|diapos de cours de TNS]] | ||
+ | ** Éléments de cours de TNS : https://bookdown.org/rdpeng/timeseriesbook/filtering-time-series.html | ||
** [[Media:IoT-Classif.pdf|diapos de cours de classification]] (cf https://home.mis.u-picardie.fr/~furst/apprentissage.php) | ** [[Media:IoT-Classif.pdf|diapos de cours de classification]] (cf https://home.mis.u-picardie.fr/~furst/apprentissage.php) | ||
== Travaux Dirigés / Pratiques == | == Travaux Dirigés / Pratiques == | ||
− | + | ==== S5 ==== | |
* [[Cours:BUTiot_MQTT|Étape 1 - MQTT : envoyer/recevoir des données]] | * [[Cours:BUTiot_MQTT|Étape 1 - MQTT : envoyer/recevoir des données]] | ||
Ligne 81 : | Ligne 84 : | ||
* [[Cours:BUTiot_Meteo|Projet Node.js/NodeRed : suivi de données météorologiques]] | * [[Cours:BUTiot_Meteo|Projet Node.js/NodeRed : suivi de données météorologiques]] | ||
− | + | ==== S6 ==== | |
* [[Cours:BUTiot_TNS|TD/TP Traitement du signal : lissage, détection de changements, détection de motifs]] | * [[Cours:BUTiot_TNS|TD/TP Traitement du signal : lissage, détection de changements, détection de motifs]] | ||
− | * [[Cours: | + | * [[Cours:BUTiot_classif|TD/TP Classification multivariée temps réel]] |
==== Note sur l'installation de paquets avec npm ==== | ==== Note sur l'installation de paquets avec npm ==== | ||
Ligne 92 : | Ligne 95 : | ||
* Le dossier d'installation global n'est pas reconnu par défaut par Node.js. Pour utiliser un paquet global, une des solutions est de créer la variable d'environnement <code>NODE_PATH</code> avec le contenu <code>%AppData%/npm/node_modules</code> | * Le dossier d'installation global n'est pas reconnu par défaut par Node.js. Pour utiliser un paquet global, une des solutions est de créer la variable d'environnement <code>NODE_PATH</code> avec le contenu <code>%AppData%/npm/node_modules</code> | ||
− | == Aides | + | == Aides (wiki) == |
+ | * [[Cours:Node#Installer Mosquitto et lancer un broker MQTT|Installer Mosquitto et lancer un broker MQTT]] | ||
+ | * [[Cours:Node#Installer Node.js en local (linux)|Installer Node.js en local]] | ||
* [[Cours:Node#Travailler proprement|Travailler proprement avec Node.js]] | * [[Cours:Node#Travailler proprement|Travailler proprement avec Node.js]] | ||
* [[Cours:Node#Mettre à jour Node.js|Mettre à jour Node.js]] | * [[Cours:Node#Mettre à jour Node.js|Mettre à jour Node.js]] | ||
+ | * [[Cours:Node#Installer NodeRed|Installer NodeRed]] | ||
== Ressources externes == | == Ressources externes == | ||
Ligne 108 : | Ligne 114 : | ||
** [https://nodejs.org/en/learn Learn Node.js] | ** [https://nodejs.org/en/learn Learn Node.js] | ||
* NodeRed : | * NodeRed : | ||
+ | ** [https://nodered.org/docs/user-guide/context Working with context] : comment stocker des informations qui peuvent être partagées entre différents nœuds. |
Version actuelle datée du 6 février 2025 à 08:43
S5/S5 - AII - Objets connectés (IoT) : génération, transmission, traitement et analyse de données distribuées
Sommaire
Syllabus
Comment acquérir des données distribuées (d'objets connectés ou de serveurs), les analyser (détecter), les traiter (ie les modifier) et le redistribuer, tout ceci en temps réel.
Programme National
S5
- Architectures IoT (Extreme edge/edge/mist/fog/cloud, passerelle);
- Communication indirecte orientée message (Publier/Souscrire, broker, MQTT);
- Gestion de la qualité de service (QoS);
- Notions d’API (déclaration, appel de services);
- Tableau de bord (node-red, grafana...).
- Big Data et Cloud computing : définition et technologies;
- Relations entre IoT, Cloud et Big Data;
- Applications aux systèmes automatisés.
S6
- Développer un programme permettant de transmettre des données issues d’un ou plusieurs nœuds de capteurs (clients) vers un serveur afin de réaliser des applications diverses : stockage de données dans une base SQL, génération d’une page web pour l’affichage des données, ainsi que des fenêtres de commande graphique ou de supervision (utilisation des protocoles de communication liés à l’internet des objets, création de tableaux de bord pour la visualisation de données);
- Développer un programme, coté objet (cible microcontrôleur de type ESP32), pour générer des données utiles (basées sur la récupération d’informations fournies par des capteurs, après mise en forme).
- Présentation du concept de l’IIoT en automatisation industrielle;
- Exemples d’IoT industriels;
- Apprentissage des bases d’un langage de programmation classique de l’IoT;
- Génération de données à l’aide d’une cible microcontrôleur.
Volumes horaires
- S5 - Informatique Spécialisée : 12h = 3h CM + 9h TD
- S6 - Industrie du futur : 19,5h = 4,4h CM + 9h TD + 6h TP
Contenu/progression sur les deux semestres
S5
- Contexte Objets Connectés
- MQTT : envoyer/recevoir des données
- Javascript => Node.js => NodeRed
- analyser des données temps réel : détection d'anomalies ponctuelles (type aberration) par approche statistique
- traiter des données temps réel : filtrage
S6
- Traitement numérique du signal : traitement de données temps réel -> lissage, détection de changements, détection de motifs
- Apprentissage artificiel : classification supervisée/non supervisée
- Données multivariées : kpp, ACP
Évaluations
1) BUT3 AII : Dossier à rendre sur Étape 3 - Node.js : Détection temps réel d'anomalies de type données aberrantes
- Deadline : 20 janvier 2023 (inclu)
- Envoi par email : codes sources + pdf
- Contenu du PDF :
- Courte introduction
- Pour chaque source d'anomalie :
- Description de l'anomalie présente
- Description/explication (texte/math/graphiques) de votre solution de détection
- Validation/conclusion sur votre solution de détection
- Courte conclusion
- Note (/20) composée de :
- évaluation technique (/10) : quantité travail (d1 -> d5), qualité détection, qualité du code
- évaluation documentaire (/10) : description des signaux et des anomalies, de ce qui a été fait et pourquoi, qualité de validation. Dans l'idéal : mise en contexte, validation chiffrée et analysée, description méthodologique, argumentation sur les choix
Élements de Cours Magistral
- S5 : Support de cours en pdf
- S6 :
Travaux Dirigés / Pratiques
S5
- Étape 1 - MQTT : envoyer/recevoir des données
- Étape 2 - Node.js : envoyer/recevoir des données avec MQTT
- Étape 3 - Node.js : Détection temps réel d'anomalies de type données aberrantes
- Étape 4 - Node.js : filtrage de données temps réels
- NodeRed
- Projet Node.js/NodeRed : suivi de données météorologiques
S6
- TD/TP Traitement du signal : lissage, détection de changements, détection de motifs
- TD/TP Classification multivariée temps réel
Note sur l'installation de paquets avec npm
- L'installation d'un paquet par
npm install mqtt
est locale à un module (donc à un emplacement de dossier). Le paquet est installé dans le dossiernode_module
du dossier où la commande est lancée. - L'installation d'un paquet par
npm install -g mqtt
est globale. Le paquet est installé dans le dossier%APPDATA%/npm/node_modules
. - Le dossier d'installation global n'est pas reconnu par défaut par Node.js. Pour utiliser un paquet global, une des solutions est de créer la variable d'environnement
NODE_PATH
avec le contenu%AppData%/npm/node_modules
Aides (wiki)
- Installer Mosquitto et lancer un broker MQTT
- Installer Node.js en local
- Travailler proprement avec Node.js
- Mettre à jour Node.js
- Installer NodeRed
Ressources externes
- Javascript :
- Node.js :
- NodeRed :
- Working with context : comment stocker des informations qui peuvent être partagées entre différents nœuds.