Matériel et Câblage du Projet Sécurité

0. Présentation de la carte : Freenove ESP32-S3 WROOM

La carte que nous utilisons pour ce cours est une version avancée de l’ESP32 standard : la Freenove ESP32-S3. Elle est spécifiquement conçue pour les applications gourmandes en ressources comme le traitement d’image (Caméra) et l’Intelligence Artificielle (IA).

Image de ESP32-S3 development board

Pourquoi “S3” ?

Contrairement à l’ESP32 classique, la version S3 apporte deux changements majeurs :

  1. Support natif de l’USB : Elle peut se faire passer pour un clavier, une souris ou une clé USB sans puce intermédiaire.

  2. Accélération IA : Le processeur intègre des instructions vectorielles pour accélérer les calculs de réseaux de neurones (reconnaissance faciale, vocale, etc.).

Architecture Matérielle

Cette carte de développement est construite autour du module ESP32-S3-WROOM. Voici ses composants clés visibles sur le schéma :

  • Le Cœur (CPU) : Un processeur Dual-Core Xtensa LX7 cadencé à 240 MHz. C’est le cerveau qui exécute votre code C++ ou Python.

  • La Mémoire (RAM & Flash) :

    • Flash (Stockage) : Pour stocker votre programme et vos fichiers.

    • PSRAM (Mémoire Vive Étendue) : Cette carte dispose de 8 Mo de PSRAM (Pseudo-Static RAM). C’est crucial pour la vidéo : la mémoire interne classique de l’ESP32 (SRAM) est trop petite pour stocker des images haute résolution. La PSRAM offre l’espace nécessaire au tampon vidéo (Frame Buffer).

  • Connectivité Sans-Fil : Wi-Fi 4 (2.4 GHz) et Bluetooth 5 (LE) pour la communication avec Home Assistant.

Les Interfaces Spécifiques de la Freenove

Contrairement à une carte générique, celle-ci intègre des périphériques prêts à l’emploi :

  1. Double Port USB-C :

    • Port de Droite (UART/Serial) : Utilisé pour la programmation classique et l’affichage des logs dans la console. C’est celui que nous utiliserons principalement.

    • Port de Gauche (USB/JTAG) : Connecté directement au processeur pour le débogage avancé ou l’émulation USB.

  2. Interface Caméra (DVP) : Un connecteur FPC dédié sur le dessus de la carte permet de brancher la caméra fournie sans utiliser de câbles dupont volants. Elle monopolise cependant plusieurs GPIOs (voir section Câblage).

  3. LED RGB Adressable : Une LED multicolore (WS2812) est soudée sur la carte et connectée au GPIO 48. Nous l’utiliserons pour les statuts d’alarme.

1. Comprendre les GPIO (General Purpose Input/Output)

L’ESP32-S3 communique avec le monde extérieur via des broches appelées GPIO. Contrairement à un port USB qui a une fonction fixe, un GPIO est programmable : il peut être une “oreille” (Entrée) ou une “bouche” (Sortie).

Niveaux de tension (Voltage Logic)

  • 3.3V (HIGH / 1 / ON) : C’est la tension de fonctionnement de la puce.

  • 0V / GND (LOW / 0 / OFF) : C’est la référence (la masse).

  • ⚠️ Attention : L’ESP32-S3 est une puce 3.3V. N’envoyez jamais du 5V directement sur une broche GPIO, vous risqueriez de griller le processeur.

Les modes utilisés dans ce projet

Pinout de l'ESP32-S3
  1. Sortie Numérique (Digital Output) :

    • L’ESP32 envoie du courant (3.3V) pour activer un composant.

    • Exemple : Le Laser (GPIO 40) et la LED RGB (GPIO 48).

  2. Entrée Numérique avec Pull-Down (Digital Input Pull-Down) :

    • L’ESP32 “écoute” si la tension est à 3.3V ou 0V.

    • Pourquoi “Pull-Down” ? En électronique, si un fil n’est connecté à rien, il capte des parasites (comme une antenne) et la valeur flotte aléatoirement entre 0 et 1. La résistance interne de “Pull-Down” force la tension à 0V (GND) par défaut. Le signal ne passe à 1 que si le capteur envoie vraiment du courant.

    • Exemple : Le PIR (GPIO 42) et le Capteur de lumière (GPIO 41).


2. Les Composants Externes

A. Détecteur de Mouvement (PIR HC-SR501)

Le capteur PIR (Passive Infrared Sensor) détecte les variations de rayonnement infrarouge (chaleur) émis par les corps vivants.

  • Fonctionnement : Lorsqu’un corps chaud se déplace devant la lentille de Fresnel (le dôme blanc), le capteur envoie un signal 3.3V (HIGH) sur sa broche de sortie.

  • Réglages physiques : Ce module possède souvent deux potentiomètres oranges :

    1. Sensitivity : La distance de détection (3m à 7m).

    2. Time Delay : Combien de temps le signal reste actif après détection. Pour ESPHome, réglez ce délai au minimum (tournez à fond dans le sens anti-horaire), car c’est le logiciel qui gérera la temporisation.

B. Module Laser (KY-008)

C’est une simple diode laser rouge montée sur un petit circuit.

  • Fonctionnement : Dès qu’elle reçoit du courant sur sa broche Signal (S), elle émet un faisceau concentré.

  • Rôle : Simule une barrière active ou un dispositif de dissuasion.

  • ⚠️ Sécurité : Ne regardez jamais directement le faisceau laser.

C. Capteur de Lumière (KY-018 ou Photo-résistance)

Ce module utilise une LDR (Light Dependent Resistor). Sa résistance électrique diminue quand la lumière augmente.

  • Fonctionnement :

    • Dans l’obscurité : Résistance très élevée -> Le courant ne passe pas -> GPIO lit LOW (0).

    • Sous la lumière (ou faisceau laser) : Résistance faible -> Le courant passe -> GPIO lit HIGH (1).

  • Usage : Dans notre configuration binary_sensor, il agit comme une barrière : si le faisceau laser est coupé, l’état change.

D. LED RGB Adressable (WS2812)

Souvent commercialisée sous le nom de “NeoPixel” (marque Adafruit), la WS2812 n’est pas une simple ampoule. C’est un composant “intelligent” qui intègre trois diodes (Rouge, Verte, Bleue) et une minuscule puce de contrôle dans le même boîtier de 5mm.

  • Emplacement : Sur la carte Freenove ESP32-S3, cette LED est déjà soudée près du bouton “BOOT” et est connectée en interne au GPIO 48.

  • Fonctionnement (Adressable) :

    • Contrairement aux LEDs classiques qui nécessitent une broche par couleur, la WS2812 utilise un seul fil de données.

    • Elle reçoit une commande numérique (ex: “Mets-toi en Rouge à 50% de luminosité”) via un protocole de communication très rapide.

    • Si on connecte plusieurs de ces LEDs à la suite (en ruban), la première LED lit la première instruction, l’exécute, et transmet le reste des instructions à la LED suivante. C’est le principe du chaînage.

  • Pourquoi le esp32_rmt ?

    • Le protocole de la WS2812 demande une précision extrême (de l’ordre de la nanoseconde).

    • Si le processeur principal de l’ESP32 s’occupait de faire clignoter ce signal manuellement (Bit-banging), la connexion WiFi serait instable car le processeur serait trop occupé.

    • La solution : L’ESP32 possède un périphérique matériel dédié appelé RMT (Remote Control). Il génère les signaux pour la LED de manière autonome, laissant le processeur (CPU) libre pour gérer le WiFi et Home Assistant. C’est pour cela que nous utilisons platform: esp32_rmt_led_strip dans le code YAML.

  • Synthèse Additive : En mélangeant les trois couleurs primaires (Rouge, Vert, Bleu) à différentes intensités (de 0 à 255), on peut créer plus de 16 millions de couleurs.

    • Rouge + Vert = Jaune

    • Rouge + Bleu = Magenta (proche du rose police)

    • Rouge + Vert + Bleu = Blanc

3. Schéma de Câblage Interactif

Voici le plan de montage pour connecter les composants à la Freenove ESP32-S3. Nous utilisons les broches 40, 41 et 42 car elles sont physiquement situées à droite de la carte, isolées des broches critiques utilisées par l’USB ou la mémoire interne.

Tableau des connexions (Pinout)

Composant Broche Composant Broche ESP32-S3 Type de GPIO (YAML)
Laser Signal (S) GPIO 40 output
Capteur Lumière Signal (S) GPIO 41 binary_sensor
PIR (Mouvement) Output (Milieu) GPIO 42 binary_sensor
LED RGB (Intégrée) GPIO 48 light (Pixel)
Caméra (Nappe interne) Multiples esp32_camera
Alimentation VCC / + 3.3V ou 5V
Masse GND / – GND

Note sur l’alimentation : Bien que l’ESP32 fonctionne en 3.3V, la broche 5V de la carte (reliée à l’USB) est souvent préférée pour alimenter le PIR et le Laser afin d’avoir plus de puissance, tant que le signal de retour vers l’ESP reste compatible. Sur les modules standards KY-008 et HC-SR501, le signal de sortie est compatible 3.3V.


4. Logique du Système de Sécurité

Une fois câblé, le système fonctionne selon la logique programmée dans ESPHome :

  1. État de repos : Le système est en veille. Le PIR surveille mais ne déclenche rien.

  2. Armement (Home Assistant) : L’utilisateur active l’alarme. Le Laser (GPIO 40) s’allume pour signaler que la zone est protégée.

  3. Détection : Si le PIR (GPIO 42) détecte un mouvement ALORS que l’alarme est armée :

    • L’ESP32 change l’état interne de l’alarme vers TRIGGERED.

    • La LED RGB (GPIO 48) se met à clignoter en Rouge et Bleu (Mode Police).

    • Une notification est envoyée à Home Assistant.