Illustre les modules 10 à 12 et la synthèse (7 figures)
M10 : consommation par mode, profil de courant en deep sleep. M11 : publish/subscribe, arborescence des topics. M12 : démarche de projet, structure multi-fichiers. Synthèse : carte du parcours. Figure du chenillard (M2) déplacée après son code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f4a80f4d5b
commit
379cd03bc5
@@ -64,8 +64,6 @@ Un bouton mécanique génère plusieurs transitions HIGH/LOW parasites en quelqu
|
||||
|
||||
Câblez 4 LED (avec résistances de 220 Ω) sur 4 GPIO libres, puis reproduisez un effet de chenillard :
|
||||
|
||||
{#fig-m02-chenillard width=75%}
|
||||
|
||||
```cpp
|
||||
const int leds[] = {4, 5, 6, 7};
|
||||
const int nbLeds = 4;
|
||||
@@ -85,6 +83,8 @@ void loop() {
|
||||
}
|
||||
```
|
||||
|
||||
{#fig-m02-chenillard width=75%}
|
||||
|
||||
## 4. La LED RGB NeoPixel intégrée
|
||||
|
||||
Contrairement à une LED classique qui ne prend que deux états (allumé/éteint) ou une intensité en PWM, la LED intégrée sur la plupart des cartes ESP32-S3 DevKit est une LED adressable de type WS2812 (aussi appelée NeoPixel). Elle intègre son propre contrôleur et se pilote avec un protocole série à un seul fil, où chaque LED reçoit une trame de 24 bits (8 bits rouge, 8 bits vert, 8 bits bleu).
|
||||
|
||||
@@ -22,6 +22,8 @@ Un ESP32-S3 alimenté en continu (Wi-Fi actif, calcul permanent) consomme couram
|
||||
| Light sleep | \~0,8 mA | RAM et état conservés | Timer, GPIO, UART... |
|
||||
| Deep sleep | \~10-150 µA | RTC RAM uniquement, redémarrage du programme | Timer, GPIO (EXT0/EXT1) |
|
||||
|
||||
{#fig-m10-consommation-modes}
|
||||
|
||||
::: {.callout-note title="Le deep sleep redémarre le programme"}
|
||||
Contrairement au light sleep, sortir du deep sleep provoque un redémarrage complet du programme (comme après un reset) : `setup()` est ré-exécuté depuis le début. Seule la zone mémoire RTC (déclarée avec `RTC_DATA_ATTR`) est préservée entre deux cycles de deep sleep, ce qui permet de conserver un compteur ou un état minimal.
|
||||
:::
|
||||
@@ -30,6 +32,8 @@ Contrairement au light sleep, sortir du deep sleep provoque un redémarrage comp
|
||||
|
||||
Cas d'usage typique : un capteur qui se réveille toutes les X minutes, effectue une mesure, l'envoie, puis se rendort.
|
||||
|
||||
{#fig-m10-cycle-deep-sleep}
|
||||
|
||||
```cpp
|
||||
#define TEMPS_REVEIL_SECONDES 60
|
||||
|
||||
|
||||
@@ -22,8 +22,12 @@ Le modèle HTTP vu au Module 7 fonctionne bien pour des requêtes ponctuelles, m
|
||||
| Publish | Envoyer un message sur un topic donné |
|
||||
| Subscribe | S'abonner à un topic pour recevoir tous les messages publiés dessus |
|
||||
|
||||
{#fig-m11-arborescence-topics width=90%}
|
||||
|
||||
Avantage clé : les appareils ne communiquent jamais directement entre eux — tout transite par le broker, ce qui simplifie grandement l'architecture (un capteur ne connaît pas l'adresse du tableau de bord qui affichera ses données, il publie simplement sur un topic).
|
||||
|
||||
{#fig-m11-publish-subscribe}
|
||||
|
||||
## 3. Choisir un broker MQTT
|
||||
|
||||
- Mosquitto : broker open-source, installable localement (Raspberry Pi, PC, serveur domestique) ou utilisable en test public (test.mosquitto.org).
|
||||
|
||||
@@ -19,6 +19,8 @@ Un projet réussi commence par une phase de cadrage, même brève. Avant d'ouvri
|
||||
- Le projet doit-il fonctionner de façon autonome (batterie) ou reste-t-il branché en continu ?
|
||||
- Quels modules de la formation seront mobilisés ?
|
||||
|
||||
{#fig-m12-demarche-projet}
|
||||
|
||||
## 2. Exemples de projets (par ordre de complexité croissante)
|
||||
|
||||
| Projet | Modules mobilisés | Description |
|
||||
@@ -55,6 +57,8 @@ Au-delà d'une centaine de lignes, un seul fichier .ino devient difficile à mai
|
||||
- affichage.ino : fonctions liées à l'écran OLED et à la LED NeoPixel.
|
||||
- reseau.ino : fonctions Wi-Fi/MQTT/BLE.
|
||||
|
||||
{#fig-m12-structure-projet}
|
||||
|
||||
::: {.callout-tip title="Bonne pratique de structuration"}
|
||||
Une fonction doit avoir une seule responsabilité claire (ex : `lireTemperature()`, `afficherEcran()`, `publierMQTT()`). Cette organisation facilite grandement le débogage et la relecture, surtout en formation collective où le code peut être partagé et commenté entre apprenants.
|
||||
:::
|
||||
|
||||
@@ -4,6 +4,8 @@ title: "Synthèse de la formation & liste de matériel"
|
||||
|
||||
## 1. Vue d'ensemble des modules
|
||||
|
||||
{#fig-m13-parcours-formation}
|
||||
|
||||
| Module | Titre | Compétences clés |
|
||||
|----------|-----------------------------|----------------------------------------|
|
||||
| 0 | Prérequis & Installation | Arduino IDE, pilotes USB, ajout du support ESP32, premier Blink |
|
||||
|
||||
Reference in New Issue
Block a user