LE SYSTÈME DE SURVEILLANCE H25

12 février 2025

Énoncé du TP01.2025 – Version 1




NOTE: Les options 1 à 3, affichées sur la console, sont des actions qui peuvent être lancées à partir du clavier pour contrôler certains modules du système.

Par exemple, pour allumer ou éteindre la LED sur D2 il suffira d’appuyer sur la touche 1 du clavier.

// Astuce: Saisie d'une touche du clavier à partir de la console série

if (Serial.available()) {      // Si un octet disponible sur le port Serial
    commande = Serial.read();  // Lecture d'un octet (touche clavier)
    
    // Traitement de la commande ...
    if (commande == '1') alors allumer/éteindre DEL1;
}

Démonstration de l’application


Détails et actions des options du menu (Items 1 à 3)

L’application doit permettre la saisie de caractères à partir du terminal série. Cette saisie, permet l’exécution de certaines fonctions de l’application. Les options sont identifiées par des numéros au début des lignes de l’interface. Par exemple, le ‘3 -‘ dans ‘3 – RELAI’ indique qu’il est possible de contrôler le relai en appuyant sur la touche ‘3’ du clavier.

NOTE: Assurez-vous que le focus est dans la fenêtre du terminal série avant d’appuyer sur une touche.

Donc, étant donné le menu suivant,

  1. LED1 sur D2
    • Permet d’allumer/Éteindre la DEL connectée sur D2
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
      • Sous forme de « toggle », permutation de l’état.
  2. LED2 sur D3
    • Permet d’allumer/Éteindre la DEL connectée sur D3
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
  3. RELAI D4
    • Permet d’allumer/Éteindre le RELAI connecté sur D4
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF

NOTE: ON doit-être affiché en vert et OFF en rouge.

👉 ÉLÉMENTS PRESCRITS OBLIGATOIRES:

Il faut programmer les fonctions suivantes pour l’affichage des états ON/OFF et de température/Humidité.

void afficherOnOff(int posX, int posY, bool on = true);
void afficherTemperatureEtHumidite(int posX, int posY);

Détails des modules (appareils) de contrôle


Détails des éléments de la deuxième partie de l’écran


Remettre, via LEA, les fichiers suivants de votre projet:


ItemDescription Pondération
1Bloc commentaires d’entête, documentation du code, noms significatifs pour const, MACROs, variables, fonctions, …1,75
2Constantes, MACROs et inclusions dans le fichier projet.h.1
3Normalisation (pas de répétition), utilisation de const et/ou MACRO et optimisation du code.1,5
4Instructions de garde dans les fichiers d’entête0,5
5Programmation des fonctions afficherOnOff() et
afficherTemperatureEtHumidite().
1,5
6Saisie des options du menu à partir du clavier et affichage de la sélection.1
7Utilisation correcte de la fonction snprintf().1
8Affichage des éléments; ON/OFF, temps, C et %, couleurs, gestion du curseur.2
9Contrôle des modules LEDs, Relai et affichage sur le LCD: temps écoulé.2
10Vitesse du port série (UART) à 4800.0,25
11Remise des fichiers du projet:
main.cpp, projet.h, platformIO.ini.
0,5
12Fonctionnalité du projet et respect du devis.2
POINT BONIUtilisation de l’opérateur ternaire dans la fonction snprintf() pour afficher ‘s’ à jour seulement si nbJour > 1. Par exemple, 1 jour 12:23:01, 2 jours 23:59:591
Total16 /15

Partie 02 – Remise S08 – 17 mars, 16h00



NOTE: Les options 1 à 6, affichés sur la console, sont des actions qui peuvent être lancées à partir du clavier pour contrôler certains modules du système.

Par exemple, pour allumer ou éteindre la LED sur D2 il suffira d’appuyer sur la touche 1 du clavier.

// Astuce: Saisie d'une touche du clavier à partir de la console série

if (Serial.available()) {      // Si un octet disponible sur le port Serial
    commande = Serial.read();  // Lecture d'un octet (touche clavier)
    
    // Traitement de la commande ...
    if (commande == '1') alors allumer/éteindre DEL1;
}

Démonstration


Détails et actions des options du menu (Items 1 à 6)

  1. LED1 sur D2
    • Permet d’allumer/Éteindre la DEL connectée sur D2
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
  2. LED2 sur D3
    • Permet d’allumer/Éteindre la DEL connectée sur D3
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
  3. RELAI D4
    • Permet d’allumer/Éteindre le RELAI connecté sur D4
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
  4. Celcius/Fahrenheit sur I2C
    • Permet de préciser l’unité d’affichage de la température entre F et C
    • Au bout de la ligne, il faut afficher l’unité d’affichage de la température: C ou F
  5. Détecteur de mouvement sur D5
    • Permet d’activer ou désactiver le traitement du détecteur de mouvement.
    • Au bout de la ligne, il faut afficher activé ou désactiver.
    • Sur la première ligne du LCD, il faut afficher: Alarme: ON/OFF
  6. LCD Rétro-éclairage
    • Permet d’activer ou désactiver le rétro-éclairage du LCD
    • Au bout de la ligne, il faut afficher l’état: ON ou OFF
    • Astuce: lcd.setRGB(255,255,255); lcd.setRGB(0,0,0);

Détails des modules (appareils) de contrôle


Détails des éléments de la deuxième partie de l’écran


Remise

Remettre, via LÉA, le dossier complet de votre projet:


ItemDescriptionPondération
1Respect du devis3
2Fonctionnalité8
3Normalisation4
Total15/15