{"id":2519,"date":"2022-12-16T08:44:44","date_gmt":"2022-12-16T13:44:44","guid":{"rendered":"http:\/\/ve2cuy.com\/420-1c4\/?page_id=2519"},"modified":"2024-03-18T09:39:17","modified_gmt":"2024-03-18T14:39:17","slug":"epreuve-synthese-volet-b-2022","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/epreuve-synthese-volet-b-2022\/","title":{"rendered":"\u00c9preuve synth\u00e8se &#8211; volet B &#8211; 2022"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"293\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2022\/12\/e312545b1dd34013b5e068345747d4b3.png\" alt=\"\" class=\"wp-image-2521\" srcset=\"https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2022\/12\/e312545b1dd34013b5e068345747d4b3.png 540w, https:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2022\/12\/e312545b1dd34013b5e068345747d4b3-300x163.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"has-text-align-center wp-block-heading\">Date: lundi, 19 d\u00e9cembre, 13h<\/h1>\n\n\n\n<h1 class=\"has-text-align-center wp-block-heading\">Dur\u00e9e: 3 p\u00e9riodes (15h45)<\/h1>\n\n\n\n<h1 class=\"has-text-align-center has-vivid-red-color has-text-color wp-block-heading\">\u00c0 r\u00e9aliser sous Wokwi<\/h1>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"has-cyan-bluish-gray-color has-text-color wp-block-heading\">1 &#8211; \u00c0 partir du syst\u00e8me fonctionnel suivant:<\/h1>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">1.1 &#8211; L&rsquo;\u00e9cran de simulation<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1392\" height=\"1268\" src=\"http:\/\/ve2cuy.com\/420-1c4\/wp-content\/uploads\/2022\/12\/formatif2022.gif\" alt=\"\" class=\"wp-image-2495\"\/><\/figure>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">NOTE<\/mark><\/strong>: Prendre le temps de regarder la simulation au complet<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"has-luminous-vivid-orange-color has-text-color wp-block-heading\">1.2 &#8211; Le code source (<strong>sketch.ino<\/strong>)<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include \"Streaming.h\"\n#include &lt;LiquidCrystal_I2C.h>\n\n\/\/ ********************************************************\n\/\/ Les enum\nenum codesAlarme {\n  evenement_detection_mouvement,\n  ACK_evenement_detection_mouvement,\n  evenement_systeme_enligne,\n  ACK_evenement_systeme_enligne\n};\n\/\/ ********************************************************\n\n\/\/ ********************************************************\n\/\/ Les constantes (MACRO)\n#define   UART_CENTRALE               Serial3\n#define   UART_SYSTEME_ALARME         Serial1\n#define   UART_VITESSE_CONSOLE        9600\n#define   UART_VITESSE_CENTRALE       115200\n#define   UNE_SECONDE                 1000\n#define   DEMI_SECONDE                500\n#define   DELAI_TRANSMISSION_MESSAGE  UNE_SECONDE * 2\n#define   BOUTON_DELAI_REBOND         50\n#define   LCD_NB_LIGNE                4\n#define   LCD_NB_COLONNE              20\n#define   LCD_LIGNE1                  0\n#define   LCD_LIGNE2                  1\n#define   LCD_LIGNE3                  2\n#define   LCD_LIGNE4                  3\n#define   LCD_PREMIERE_COLONNE        0\n#define   LCD_ADRESSE_I2C             0x27\n#define   DETECTEUR_MOUVEMENT_ENTREE  7\n\n\/\/ ********************************************************\n\/\/ D\u00e9claration des fonctions\nvoid      initialisationDesAppareils();\n\/\/ ********************************************************\n\n\/\/ ********************************************************\n\/\/ Variables Globales\nLiquidCrystal_I2C ecranPrincipal(LCD_ADRESSE_I2C,LCD_NB_COLONNE,LCD_NB_LIGNE);\n\/\/ ********************************************************\n\n\/\/ ********************************************************\n\/\/                    D\u00e9but du programme\n\/\/ ********************************************************\n\n\/\/ ********************************************************\nvoid setup() \n\/\/ ********************************************************\n{\n  Serial.begin(UART_VITESSE_CONSOLE);   \n  initialisationDesAppareils();\n\n  ecranPrincipal.setCursor(0,1);\n  ecranPrincipal &lt;&lt; \"Connexion ....\";\n \n \/\/ NOTE: ===> Il faut remplacer 'connexionALaCentrale()' par \n if (connexionALaCentrale()){\n      ecranPrincipal.setCursor(0,2);\n      ecranPrincipal &lt;&lt; \"Systeme en ligne\"; \n  }\n\n}\n\n\/\/ ********************************************************\nvoid loop() \n\/\/ ********************************************************\n{\n  bool alarmeON = true;\n  afficherTempsEcoule();\n\n  if (digitalRead(DETECTEUR_MOUVEMENT_ENTREE)) {\n      Serial &lt;&lt; \"DETECTEUR_MOUVEMENT_ENTREE\\n\";\n      ecranPrincipal.clear();\n      ecranPrincipal &lt;&lt; \"Detection mouvement\";\n      Serial &lt;&lt; \"Aviser la centrale de l'intrusion\\n\";\n      envoyerMessageVersLaCentrale(evenement_detection_mouvement);\n      while(digitalRead(DETECTEUR_MOUVEMENT_ENTREE)); \/\/ S'assurer que le d\u00e9tecteur est d\u00e9tendu.\n      ecranPrincipal.clear();\n  }\n\n} \/\/ loop()\n\n\n\/\/ ********************************************************\nvoid initialisationDesAppareils()\n\/\/ ********************************************************\n{\n\n  ecranPrincipal.begin(LCD_NB_COLONNE,LCD_NB_LIGNE);\n  ecranPrincipal.backlight();\n  ecranPrincipal &lt;&lt; \"Initialisation...\";\n\n  UART_SYSTEME_ALARME.begin(UART_VITESSE_CENTRALE);\n  UART_CENTRALE.begin(UART_VITESSE_CENTRALE);\n  pinMode(DETECTEUR_MOUVEMENT_ENTREE, INPUT);\n\n} \/\/ initialisationDesAppareils\n\n\n\/\/ ************************************************************************\n\/\/ NOTE:  Il faut int\u00e9grer cette fonction \u00e0 envoyerMessageVersLaCentrale()\n\/\/ et la supprimer (connexionALaCentrale). \n\/\/ ************************************************************************\nboolean connexionALaCentrale()\n\/\/ ************************************************************************\n{\n  byte codeAlarme;\n  Serial &lt;&lt; F(\"Tentative de connexion \u00e0 la centrale ...\") &lt;&lt; endl;\n  UART_SYSTEME_ALARME.write(evenement_systeme_enligne);\n  delay(DELAI_TRANSMISSION_MESSAGE);\n\n  if (UART_CENTRALE.available()){\n    Serial &lt;&lt; F(\"UART_CENTRALE.available()\") &lt;&lt; endl;\n    codeAlarme = UART_CENTRALE.read();\n\n    switch (codeAlarme)  {\n\n      case evenement_systeme_enligne: \n      Serial &lt;&lt; F(\"evenement_systeme_enligne\") &lt;&lt; endl;\n      Serial &lt;&lt; F(\"Succes: Connexion \u00e0 la centrale ...\") &lt;&lt; endl;\n\n      \/\/afficherPageEcran(centraleSystemeEnLigne);\n      return true;\n      break;\n\n      default:  \n       \n      Serial &lt;&lt; \"Evenement non trait\u00e9\" &lt;&lt; endl;\n             \n      break;\n\n    } \/\/ switch\n\n  } \/\/ if available()\n\n  return false;\n} \/\/ connexionALaCentrale\n\n\n\/\/ ********************************************************\nboolean envoyerMessageVersLaCentrale(codesAlarme message)\n\/\/ ********************************************************\n{\n  byte codeAlarme;\n  Serial &lt;&lt; F(\"envoyerMessageVersLaCentrale\") &lt;&lt; endl;\n  UART_SYSTEME_ALARME.write(message);\n  delay(DELAI_TRANSMISSION_MESSAGE);\n\n  if (UART_CENTRALE.available()){\n     Serial &lt;&lt; F(\"UART_CENTRALE.available()\") &lt;&lt; endl;\n     Serial &lt;&lt; F(\"La centrale a re\u00e7u le message: \");\n    codeAlarme = UART_CENTRALE.read();\n\n    switch (codeAlarme)  {\n\n      case evenement_detection_mouvement: \n \n      Serial &lt;&lt; F(\"evenement_detection_mouvement\") &lt;&lt; endl;\n      return true;\n      break;\n\n      default:  \n      Serial &lt;&lt; \"Evenement non trait\u00e9\" &lt;&lt; endl;\n      break;\n\n    } \/\/ switch\n\n  } \/\/ if available()\n\n  return false;\n} \/\/ connexionALaCentrale\n\n\n\/\/ ***************************************************\nvoid afficherTempsEcoule() {\n\/\/ ***************************************************\n  static unsigned long depart = millis();\n\n  if (millis() - depart &lt; UNE_SECONDE) return;\n\n  char bufferLigneLCD[21];   \/\/ Vecteur pour construire le message \u00e0 afficher\n  depart = millis();         \/\/ R\u00e9initialiser le temps qui passe ...\n\n  unsigned long tempsEcoule = millis() \/ 1000;\n  int secondes =  tempsEcoule % 60;\n  int minutes  =  (tempsEcoule \/ 60 ) % 60;\n  int heures   =  (tempsEcoule \/ 3600 ) % 24;\n  int jours    =  0;\n\n  snprintf(bufferLigneLCD, LCD_NB_COLONNE + 1, \"Actif: %03d, %02d:%02d:%02d\", 0, heures, minutes, secondes );\n  ecranPrincipal.setCursor(LCD_PREMIERE_COLONNE,LCD_LIGNE4);\n  ecranPrincipal.print(bufferLigneLCD);\n} \/\/ afficherTemps()\n\n\/\/ ********************************************************\n\/\/                    Fin du programme\n\/\/ ********************************************************<\/pre>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">NOTE<\/mark><\/strong>:  Ce code source est fonctionnel et produit le r\u00e9sultat de l&rsquo;animation de la simulation 1.1<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"has-cyan-bluish-gray-color has-text-color wp-block-heading\">1.3 &#8211; Le sch\u00e9ma du syst\u00e8me (diagram.json)<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n  \"version\": 1.02,\n  \"author\": \"Alain Boudreault\",\n  \"editor\": \"wokwi\",\n  \"parts\": [\n    { \"type\": \"wokwi-arduino-mega\", \"id\": \"mega\", \"top\": -16.21, \"left\": 449.2, \"attrs\": {} },\n    {\n      \"type\": \"wokwi-lcd2004\",\n      \"id\": \"lcd1\",\n      \"top\": -218.29,\n      \"left\": 469.8,\n      \"attrs\": { \"pins\": \"i2c\", \"background\": \"blue\", \"color\": \"white\" }\n    },\n    {\n      \"type\": \"wokwi-pir-motion-sensor\",\n      \"id\": \"pir1\",\n      \"top\": -216.95,\n      \"left\": 373.95,\n      \"attrs\": {}\n    }\n  ],\n  \"connections\": [\n    [ \"mega:19\", \"mega:14\", \"black\", [ \"v-16.99\", \"h-48\" ] ],\n    [ \"mega:18\", \"mega:15\", \"black\", [ \"h9.69\", \"v-16.99\", \"h-47.57\", \"v16.99\" ] ],\n    [ \"pir1:OUT\", \"mega:7\", \"black\", [ \"v15.38\", \"h-9.53\", \"v85.45\", \"h268.33\" ] ],\n    [ \"mega:49\", \"mega:51\", \"black\", [ \"v0.51\", \"h-4.54\" ] ],\n    [\n      \"pir1:GND\",\n      \"mega:GND.1\",\n      \"black\",\n      [ \"v17.09\", \"h-0.33\", \"v24.3\", \"h-0.09\", \"v21.41\", \"h-18.52\", \"v38.03\", \"h197.02\" ]\n    ],\n    [ \"lcd1:GND\", \"pir1:GND\", \"black\", [ \"h-0.09\", \"v123.66\", \"h-83.59\" ] ],\n    [ \"lcd1:VCC\", \"pir1:VCC\", \"black\", [ \"v-9.83\", \"h-0.93\", \"v124.21\", \"h-102.21\" ] ],\n    [ \"pir1:VCC\", \"mega:5V\", \"black\", [ \"v100.95\", \"h242.96\", \"v93.43\", \"h0.08\" ] ],\n    [ \"lcd1:SDA\", \"mega:SDA\", \"black\", [ \"v104.88\", \"h-63.62\", \"v38.29\", \"h139.02\" ] ],\n    [ \"lcd1:SCL\", \"mega:SCL\", \"black\", [ \"v95.38\", \"h-63.62\", \"v38.3\", \"h129.02\" ] ]\n  ],\n  \"dependencies\": {}\n}<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"has-vivid-cyan-blue-color has-text-color wp-block-heading\">2 &#8211; Apporter les modifications suivantes<\/h1>\n\n\n\n<p class=\"has-black-color has-text-color\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.1<\/mark><\/strong> &#8211; Ajouter une <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">DEL rouge<\/mark> (LED).<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.2<\/mark> <\/strong>&#8211; Allumer la <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">DEL<\/mark> lorsque le d\u00e9tecteur de mouvement est activ\u00e9.<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.3<\/mark><\/strong> &#8211; Modifier la fonction &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale()<\/mark><\/strong><\/em>&lsquo;.<\/p>\n\n\n\n<p class=\"has-text-align-left\">La fonction doit retourner une valeur de type <strong><em>enum<\/em><\/strong> &lsquo;<strong><em>codesAlarme<\/em><\/strong>&lsquo; transmit par <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">UART_CENTRALE<\/mark><\/strong> .  Par exemple, si la fonction &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale<\/mark><\/strong><\/em>&lsquo; re\u00e7oit la valeur &lsquo;<em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">evenement_detection_mouvement<\/mark><\/em>&lsquo;, ce code doit \u00eatre transmit \u00e0 <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">UART_CENTRALE<\/mark><\/strong> et <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">UART_SYSTEME_ALARME<\/mark><\/strong> attend la r\u00e9ponse.  Cette r\u00e9ponse sera le code transmit avec comme pr\u00e9fix &lsquo;<strong><em>ACK<\/em><\/strong>&lsquo;. <\/p>\n\n\n\n<p class=\"has-text-align-left\">Par exemple:  <em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale(evenement_detection_mouvement)<\/mark><\/strong><\/em> doit retourner <em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ACK_evenement_detection_mouvement<\/mark><\/strong><\/em>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Exemple\n#define CODE_INVALIDE -1\n\nplacerIciLeBonType envoyerMessageVersLaCentrale(codesAlarme message)\n{\n  byte codeAlarme;\n  Serial &lt;&lt; F(\"envoyerMessageVersLaCentrale\") &lt;&lt; endl;\n  UART_SYSTEME_ALARME.write(message);\n  delay(DELAI_TRANSMISSION_MESSAGE);\n\n  if (UART_CENTRALE.available()){\n     Serial &lt;&lt; F(\"UART_CENTRALE.available()\") &lt;&lt; endl;\n     Serial &lt;&lt; F(\"La centrale a re\u00e7u le message: \");\n     codeAlarme = UART_CENTRALE.read();\n\n    switch (codeAlarme)  {\n\n      case evenement_detection_mouvement: \n \n          Serial &lt;&lt; F(\"evenement_detection_mouvement\") &lt;&lt; endl;\n\n          \/\/ *************** Section \u00e0 compl\u00e9ter !!\n          \/\/ A - La centrale doit transmettre le code de confirmation 'ACK_evenement_detection_mouvement'\n          \/\/ B - Le syst\u00e8me d'alarme attend la r\u00e9ponse de la centrale\n          \/\/ C - Le syst\u00e8me d'alarme lit la r\u00e9ponse de la centrale et la retourne (return).\n          break;\n\n      default:  Serial &lt;&lt; \"Evenement non trait\u00e9\" &lt;&lt; endl;\n                break;\n\n    } \/\/ switch\n\n  } \/\/ if available()\n\n  return CODE_INVALIDE;\n} \/\/ connexionALaCentrale<\/pre>\n\n\n\n<p class=\"has-text-align-left\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.4<\/mark><\/strong> &#8211; Lorsque la valeur retourn\u00e9e par la fonction &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale()<\/mark><\/strong><\/em>&lsquo; est \u00e9gale \u00e0 &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ACK_evenement_detection_mouvement<\/mark><\/strong><\/em>&lsquo;, il faut alors \u00e9teindre la <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">DEL rouge<\/mark>.  <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">NOTE<\/mark>:  Ne pas \u00e9teindre la DEL dans la fonction <em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale()<\/mark><\/strong><\/em>.<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.5<\/mark><\/strong> &#8211; Afficher dans la console de d\u00e9boggage que si la macro <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">_TRACE_<\/mark> est d\u00e9finie.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-text-align-center\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">NOTE: Les points 2.1 \u00e0 2.5 \u00e9taient dans le formatif<\/mark><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-text-align-left\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.6<\/mark><\/strong> &#8211; Combiner la fonction  &lsquo;<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><em>connexionALaCentrale()<\/em><\/mark><\/strong>&lsquo; \u00e0 la fonction &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale()<\/mark><\/strong><\/em>&lsquo; puis supprimer &lsquo;<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><em>connexionALaCentrale()<\/em><\/mark><\/strong>&lsquo;.  <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Note<\/mark>:  Dans la fonction setup(), il faut remplacer &lsquo;<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><em>connexionALaCentrale()<\/em><\/mark><\/strong>&lsquo; par &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">envoyerMessageVersLaCentrale()<\/mark><\/strong><\/em>&lsquo;.<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.7a<\/mark><\/strong> &#8211; Ajouter une <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">DEL<\/mark><\/strong> verte et un <strong><mark><mark style=\"background-color:#ffffff\" class=\"has-inline-color has-vivid-red-color\">bouton<\/mark><\/mark><\/strong> (push Button).<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.7b<\/mark><\/strong> &#8211;  Le bouton enverra le message &lsquo;<em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">evenement_bouton_panique<\/mark><\/strong><\/em>&lsquo; \u00e0 la centrale sur son rel\u00e2chement.  Sur r\u00e9ception du message, la centrale retournera le message  &lsquo;<strong><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ACK_evenement_bouton_panique<\/mark><\/em><\/strong>&lsquo; au syst\u00e8me d&rsquo;alarme.  Sur r\u00e9ception du message &lsquo;<strong><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">ACK_evenement_bouton_panique<\/mark><\/em><\/strong>&lsquo; par le syst\u00e8me d&rsquo;alarme, la <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">DEL<\/mark><\/strong> verte clignotera, continuellement, 2 fois\/seconde de fa\u00e7on non bloquante (ne pas utiliser de d\u00e9lais).<\/p>\n\n\n\n<p class=\"has-text-align-left\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">2.8<\/mark><\/strong> &#8211; D\u00e9placer vers le fichier &lsquo;<strong><em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">synthese.h<\/mark><\/em><\/strong>&lsquo; (\u00e0 cr\u00e9er) tout ce qui est pertinent.<\/p>\n\n\n\n<p class=\"has-text-align-left\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><strong>2.9<\/strong> <\/mark>&#8211; Renseigner un bloc commentaire d&rsquo;ent\u00eate dans le fichier .ino.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3 &#8211; Remise<\/h1>\n\n\n\n<p>Dans <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">LEA<\/mark><\/strong>, un fichier<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"> .zip<\/mark><\/strong> du projet, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">incluant un lien<\/mark><\/strong> vers le projet Wokwi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4 &#8211; Grille de correction<\/h1>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>\u00c9tape<\/th><th class=\"has-text-align-center\" data-align=\"center\">Poids<\/th><\/tr><\/thead><tbody><tr><td>2.1 &#8211; Ajouter DEL rouge<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><\/tr><tr><td>2.2 &#8211; Allumer DEL rouge sur mouvement<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><\/tr><tr><td>2.3 &#8211; Modifier la fonction &lsquo;envoyerMessageVersLaCentrale()&rsquo;<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><\/tr><tr><td>2.4 &#8211; \u00c9teindre DEL rouge sur r\u00e9ception ACK<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><\/tr><tr><td>2.5 &#8211; Macro _TRACE_<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><\/tr><tr><td>2.6 &#8211; Combiner les deux fonctions et suppression de connexionALaCentrale()<\/td><td class=\"has-text-align-center\" data-align=\"center\">10<\/td><\/tr><tr><td>2.7a &#8211; Ajouter bouton et DEL verte<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><\/tr><tr><td>2.7b- Gestion du message &lsquo;evenement_bouton_panique&rsquo; + clignoter DEL<\/td><td class=\"has-text-align-center\" data-align=\"center\">15<\/td><\/tr><tr><td>2.8 &#8211; synthese.h<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><\/tr><tr><td>2.9 &#8211; Commentaire d&rsquo;ent\u00eate<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Date: lundi, 19 d\u00e9cembre, 13h Dur\u00e9e: 3 p\u00e9riodes (15h45) \u00c0 r\u00e9aliser sous Wokwi 1 &#8211; \u00c0 partir du syst\u00e8me fonctionnel suivant: 1.1 &#8211; L&rsquo;\u00e9cran de simulation NOTE: Prendre le temps de regarder la simulation au complet 1.2 &#8211; Le code source (sketch.ino) NOTE: Ce code source est fonctionnel et produit le r\u00e9sultat de l&rsquo;animation de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ub_ctt_via":"","footnotes":""},"class_list":["post-2519","page","type-page","status-publish","hentry"],"featured_image_src":null,"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/2519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/comments?post=2519"}],"version-history":[{"count":21,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/2519\/revisions"}],"predecessor-version":[{"id":2548,"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/pages\/2519\/revisions\/2548"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/420-1c4\/index.php\/wp-json\/wp\/v2\/media?parent=2519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}