Cours:BUTiot Nodejs : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 50 : Ligne 50 :
 
=== Exercice 1 ===
 
=== Exercice 1 ===
  
{{q| a)}}  Vérifier que vous arrivez à lire, dans un terminal, les données de consommation
+
{{q| a)}}  Vérifier que vous arrivez à lire, dans un terminal et avec <code>mosquitto_sub</code>, les données de consommation.
  
 
=== Exercice 2 ===
 
=== Exercice 2 ===
  
 
{{q| a)}}  Calculer et afficher en temps réel :
 
{{q| a)}}  Calculer et afficher en temps réel :
# Le courant consommé pour chaque bâtiment et pour chaque phase
+
# Pour chaque phase, le courant consommé pour tout l'iut (general)
# Le courant consommé pour chaque phase, pour tout l'iut
+
# Pour chaque phase, la somme des courants consommés sur chaque bâtiment
 +
 
 
{{q| b)}} Pour GEII (et la phase i1 uniquement) :
 
{{q| b)}} Pour GEII (et la phase i1 uniquement) :
 
# Calculer les max, min temporels et les envoyer sur un topic personnel idoine
 
# Calculer les max, min temporels et les envoyer sur un topic personnel idoine
Ligne 64 : Ligne 65 :
 
Note :
 
Note :
 
* Vous pourrez utiliser la librairie [https://mathjs.org/ mathjs] afin de disposer de fonctions de calculs poussées.
 
* Vous pourrez utiliser la librairie [https://mathjs.org/ mathjs] afin de disposer de fonctions de calculs poussées.
* Pour la moyenne glissante, en guise de pile FIFO, il sera probablement utile d'utiliser un tableau (''array'') pour stocker les 10 dernières valeurs ; et les méthodes <code>pop()</code>, <code>push()</code>, <code>shift()</code> et <code>unshift()</code>.
+
* Pour la moyenne glissante, en guise de pile FIFO, il sera probablement utile d'utiliser un tableau (<code>array</code>) pour stocker les 10 dernières valeurs ; et les méthodes <code>pop()</code>, <code>push()</code>, <code>shift()</code> et <code>unshift()</code>.

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

Retour à la page du cours

Node.js : envoyer/recevoir des données avec le protocole MQTT

Le travail de cette étape va consister à envoyer et recevoir des messages via le protocole MQTT, avec Node.js:

  • publication de message
  • souscription à des topics

Données disponibles

L'IUT est équipé de modules de mesure en temps réel de la consommation électrique. Ces mesures sont publiées sur le serveur MQTT d'adresse 10.98.35.245. Voici les topics utilisés :

Topics MQTT mesure consommation électrique IUT

elec/general/courant/i1
elec/mmi/courant/i1
elec/geii/courant/i1
elec/gmp/courant/i1
elec/appartements/courant/i1
elec/batA/courant/i1
elec/batE/courant/i1
elec/chaufferie/courant/i1
elec/general/courant/i2
elec/mmi/courant/i2
elec/geii/courant/i2
elec/gmp/courant/i2
elec/appartements/courant/i2
elec/batA/courant/i2
elec/batE/courant/i2
elec/chaufferie/courant/i2
elec/general/courant/i3
elec/mmi/courant/i3
elec/geii/courant/i3
elec/gmp/courant/i3
elec/appartements/courant/i3
elec/batA/courant/i3
elec/batE/courant/i3
elec/chaufferie/courant/i3
  • La nomenclature est la suivante : elec/[bât]/courant/i{1,2,3}.
  • Le courant est triphasé : i1, i2 et i3 désignent les courants de chaque phase.
  • Les courants sont donnés en mA.


Exercice 1

a) Vérifier que vous arrivez à lire, dans un terminal et avec mosquitto_sub, les données de consommation.

Exercice 2

a) Calculer et afficher en temps réel :

  1. Pour chaque phase, le courant consommé pour tout l'iut (general)
  2. Pour chaque phase, la somme des courants consommés sur chaque bâtiment

b) Pour GEII (et la phase i1 uniquement) :

  1. Calculer les max, min temporels et les envoyer sur un topic personnel idoine
  2. Calculer la moyenne de toutes les valeurs reçues (depuis le lancement du programme) et l'envoyer sur un topic
  3. Calculer la moyenne des 10 dernières valeurs reçues (moyenne glissante) et l'envoyer sur un topic.

Note :

  • Vous pourrez utiliser la librairie mathjs afin de disposer de fonctions de calculs poussées.
  • Pour la moyenne glissante, en guise de pile FIFO, il sera probablement utile d'utiliser un tableau (array) pour stocker les 10 dernières valeurs ; et les méthodes pop(), push(), shift() et unshift().