Cours:BUTiot : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « <center> '''<big>S5/S5 - AII - IoT</big>''' </center> <center> '''<big>S4 - ESE - Traitement numérique du signal</big>''' </center> == Description générale == === Co... »)
 
(Aides locales)
 
(45 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
<center>
 
<center>
'''<big>S5/S5 - AII - IoT</big>'''
+
'''<big>S5/S5 - AII - Objets connectés (IoT) : génération, transmission, traitement et analyse de données distribuées</big>'''
 
</center>
 
</center>
  
<center>
+
== Syllabus ==
'''<big>S4 - ESE - Traitement numérique du signal</big>'''
 
</center>
 
  
== Description générale ==
+
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.
  
=== Contenu (Programme National) ===
+
=== Programme National ===
  
S5 :
+
'''S5'''
 
* Architectures IoT (Extreme edge/edge/mist/fog/cloud, passerelle);
 
* Architectures IoT (Extreme edge/edge/mist/fog/cloud, passerelle);
 
* Communication indirecte orientée message (Publier/Souscrire, broker, MQTT);
 
* Communication indirecte orientée message (Publier/Souscrire, broker, MQTT);
Ligne 22 : Ligne 20 :
 
* Applications aux systèmes automatisés.
 
* Applications aux systèmes automatisés.
  
S6 :
+
'''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 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).
 
* 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).
Ligne 30 : Ligne 28 :
 
* Génération de données à l’aide d’une cible microcontrôleur.
 
* Génération de données à l’aide d’une cible microcontrôleur.
  
 
+
=== Volumes horaires ===
=== Volumes horaire ===
 
  
 
* S5 - Informatique Spécialisée : 12h = 3h CM + 9h TD
 
* S5 - Informatique Spécialisée : 12h = 3h CM + 9h TD
 
* S6 - Industrie du futur : 19,5h = 4,4h CM + 9h TD + 6h TP
 
* S6 - Industrie du futur : 19,5h = 4,4h CM + 9h TD + 6h TP
  
=== Évaluations ===
+
=== 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
 +
* Traitement de données : ACP
 +
* Génération de données avec capteurs et SBC
 +
 
 +
== Évaluations ==
 +
 
 +
* 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
 +
# 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
 +
 
 +
== Élements de Cours Magistral ==
 +
 
 +
* S5 : [[Media:IoT-Support.pdf|Support de cours en pdf]]
 +
* S6 :
 +
** [[Media:IoT-TNS.pdf|diapos de cours de TNS]]
 +
** [[Media:IoT-Classif.pdf|diapos de cours de classification]] (cf https://home.mis.u-picardie.fr/~furst/apprentissage.php)
 +
 
 +
== Travaux Dirigés / Pratiques ==
 +
 
 +
'''S5'''
 +
 
 +
* [[Cours:BUTiot_MQTT|Étape 1 - MQTT : envoyer/recevoir des données]]
 +
* [[Cours:BUTiot_Nodejs|Étape 2 - Node.js : envoyer/recevoir des données avec MQTT]]
 +
* [[Cours:BUTiot_DetectAnomalies1|Étape 3 - Node.js : Détection temps réel d'anomalies de type données aberrantes]]
 +
* [[Cours:BUTiot_Filtrage1|Étape 4 - Node.js : filtrage de données temps réels]]
 +
* [[Cours:BUTiot_NodeRed|NodeRed]]
 +
* [[Cours:BUTiot_Meteo|Projet Node.js/NodeRed : suivi de données météorologiques]]
  
* ...
+
'''S6'''
  
== Contenu sur les deux semestres ==
+
* [[Cours:BUTiot_TNS|TD/TP Traitement du signal : lissage, détection de changements, détection de motifs]]
 +
* [[Cours:BUTiot_classif|TD/TP Classification multivariée temps réel]]
  
=== S5 : Informatique Spécialisée ===
+
==== Note sur l'installation de paquets avec npm ====
  
=== S6 : Industrie du Futur ===
+
* L'installation d'un paquet par <code>npm install mqtt</code> est '''locale''' à un module (donc à un emplacement de dossier). Le paquet est installé dans le dossier <code>node_module</code> du dossier où la commande est lancée.
 +
* L'installation d'un paquet par <code>npm install -g mqtt</code> est globale. Le paquet est installé dans le dossier <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 (wiki) ==
  
 +
* [[Cours:Node#Installer nodejs localement|Installer Node.js en local]]
 +
* [[Cours:Node#Travailler proprement|Travailler proprement avec Node.js]]
 +
* [[Cours:Node#Mettre à jour Node.js|Mettre à jour Node.js]]
  
== Logiciels Matériel ==
+
== Ressources externes ==
  
* MQTT
+
* Javascript :
* Node.js et NodeRed
+
** [https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/get-started/ch2.md You Don't Know JS Yet: Get Started - 2nd Edition - Chapter 2: Surveying JS]
* Jeedom
+
** [https://exploringjs.com/impatient-js/ JavaScript for impatient programmers]
* SBC
+
** [https://amandafalke.com/tutorials/2017/04/12/intro-to-modern-javascript-for-cpp-developers Introduction to modern JavaScript for C/C++ developers]
 +
** [https://www.cs.cmu.edu/~aldrich/courses/17-396/js/ JavaScript Primer]
 +
* Node.js :
 +
** [https://nodejs.org/en/learn/getting-started/how-much-javascript-do-you-need-to-know-to-use-nodejs How much JavaScript do you need to know to use Node.js?]
 +
** [https://nodejs.org/en/learn Learn Node.js]
 +
* NodeRed :

Version actuelle datée du 26 novembre 2024 à 11:13

S5/S5 - AII - Objets connectés (IoT) : génération, transmission, traitement et analyse de données distribuées

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
  • Traitement de données : ACP
  • Génération de données avec capteurs et SBC

Évaluations

  1. Courte introduction
  2. Pour chaque source d'anomalie :
    1. Description de l'anomalie présente
    2. Description/explication (texte/math/graphiques) de votre solution de détection
    3. Validation/conclusion sur votre solution de détection
  3. Courte conclusion

Élements de Cours Magistral

Travaux Dirigés / Pratiques

S5

S6

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 dossier node_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)

Ressources externes