ESP32 S3 - Capteur de porte - Buzzer piezo

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un capteur de porte et un buzzer piezo pour construire un système d'alerte audio qui réagit aux événements d'ouverture et de fermeture de porte. Vous allez implémenter deux applications pratiques — l'une qui émet un son continu chaque fois que la porte est ouverte, et l'autre qui joue une mélodie musicale à chaque ouverture de la porte.

Ce que vous allez construire :

  1. Un circuit ESP32 S3 avec un capteur de porte et un buzzer piezo câblés à la carte
  2. Application 1 : le buzzer produit un son continu lorsque la porte est ouverte et s'arrête lorsque la porte est fermée
  3. Application 2 : le buzzer joue une mélodie complète à chaque ouverture de la porte
  4. Une base pour des projets réels d'alarme et de notification de porte

À propos du buzzer piezo et du capteur de porte

Le capteur de porte (aussi appelé interrupteur reed ou capteur de contact magnétique) et le buzzer piezo forment une paire naturelle pour construire des systèmes d'alerte d'entrée sur l'ESP32 S3. Le capteur de porte produit un signal numérique qui change d'état lorsque l'aimant s'éloigne de l'interrupteur reed — l'ESP32 S3 lit ce signal à chaque itération de la boucle et pilote le buzzer piezo en conséquence, produisant une tonalité audible chaque fois que la porte passe à l'état ouvert.

Caractéristiques principales

Pour un contexte détaillé sur chaque composant, consultez ces tutoriels ESP32 S3 dédiés :

Veuillez noter que ce tutoriel utilise un buzzer 3–5V, mais vous pouvez l'adapter pour un buzzer 12V. Apprenez-en plus dans le ESP32 S3 - Buzzer.

Schéma de câblage

Connectez le capteur de porte et le buzzer piezo à votre ESP32 S3 en suivant le schéma ci-dessous. Vérifiez chaque connexion avant de mettre la carte sous tension pour éviter tout court-circuit accidentel.

ESP32 S3 Door Sensor Piezo Buzzer Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Les fils de connexion peuvent se débrancher quand vous déplacez le projet. Dans ce cas, utilisez une carte à bornier à vis pour ESP32 S3. La carte ESP32 S3 s'y branche et chaque broche a un bornier à vis. Les broches ne changent pas. Branchez simplement chaque fil sur le bornier à vis correspondant :

ESP32 S3 Door Sensor Piezo Buzzer Wiring Diagram (Screw Terminal)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Ou branchez la carte ESP32 S3 sur une carte d'extension GPIO pour ESP32 S3. Le même câblage ressemble alors à ceci :

ESP32 S3 Door Sensor Piezo Buzzer Wiring Diagram (GPIO Breakout Board)

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Notes de sécurité

Les broches GPIO de l'ESP32 S3 fonctionnent en logique 3,3V. Un buzzer piezo nu connecté directement à une broche GPIO consomme très peu de courant et est sans danger à cette tension, mais ne connectez jamais un buzzer haute tension directement sans relais ni circuit driver. Le capteur de porte s'appuie sur la résistance de tirage interne de l'ESP32 S3, donc aucune résistance externe n'est nécessaire du côté capteur du circuit.

Composant Broche Broche ESP32 S3
Capteur de porte Une borne GPIO2
Capteur de porte Autre borne GND
Buzzer piezo Positif (+) GPIO42
Buzzer piezo Négatif (-) GND

Code ESP32 S3 - Son simple

Le sketch suivant lit l'état du capteur de porte à chaque itération de la boucle et pilote directement le buzzer piezo à partir de cet état — lorsque la porte est ouverte le buzzer sonne, et lorsque la porte est fermée le buzzer s'arrête. Cette synchronisation étroite entre l'entrée du capteur et la sortie audio est la forme la plus simple d'alerte pilotée par porte que vous puissiez implémenter sur l'ESP32 S3.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-door-sensor-piezo-buzzer */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-door-sensor-piezo-buzzer */ #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin #define BUZZER_PIN 42 // ESP32-S3 pin GPIO42 connected to Buzzer's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32-S3 pin to input pull-up mode pinMode(BUZZER_PIN, OUTPUT); // set ESP32-S3 pin to output mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open, turns on Piezo Buzzer"); digitalWrite(BUZZER_PIN, HIGH); // turn on Piezo Buzzer } else { Serial.println("The door is closed, turns off Piezo Buzzer"); digitalWrite(BUZZER_PIN, LOW); // turn off Piezo Buzzer } }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants : Suivez le schéma de câblage présenté ci-dessus.
  3. Connectez l'ESP32 S3 : Utilisez un câble USB Type-C pour vous connecter à votre ordinateur.
  4. Configurez l'Arduino IDE : Si c'est la première fois que vous utilisez l'ESP32 S3, consultez comment configurer l'environnement pour l'ESP32 S3 sur Arduino IDE.
  5. Sélectionnez votre carte : Choisissez la carte ESP32 S3 et son port COM dans l'Arduino IDE.
  6. Téléversez le code : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
How to upload ESP32 S3 code on Arduino IDE
  1. Testez le capteur : Approchez l'aimant de l'interrupteur reed, puis éloignez-le pour simuler l'ouverture de la porte.
  2. Écoutez le buzzer : Le buzzer piezo sonnera tant que la porte est ouverte et s'arrêtera lorsque la porte sera fermée.
  3. Astuce pro : Si vous n'entendez aucun son, vérifiez la polarité du buzzer — la broche positive (+) doit être connectée à la broche GPIO, et la broche négative (−) à GND.

Sortie du moniteur série

Ouvrez le Serial Monitor de l'Arduino IDE à 9600 bauds pour observer les états du capteur de porte et du buzzer en temps réel.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:22:01] Door opened — Buzzer ON [2026-06-16 09:22:05] Door closed — Buzzer OFF [2026-06-16 09:22:09] Door opened — Buzzer ON [2026-06-16 09:22:13] Door closed — Buzzer OFF
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Explication du code ligne par ligne

Le code ESP32 S3 ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Code ESP32 S3 - Mélodie

Le sketch suivant joue une mélodie musicale complète via le buzzer piezo à chaque ouverture de la porte. Il utilise un fichier d'en-tête compagnon pitches.h qui associe des noms de notes comme NOTE_C4 et NOTE_G3 à leurs fréquences en Hz, ce qui garde le tableau de la mélodie facile à lire et à modifier pour n'importe quel air que vous choisissez.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32-s3/esp32-s3-door-sensor-piezo-buzzer */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-door-sensor-piezo-buzzer */ #include "pitches.h" #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin #define BUZZER_PIN 42 // ESP32-S3 pin GPIO42 connected to Buzzer's pin int doorState; // notes in the melody: int melody[] = { NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5 }; // note durations: 4 = quarter note, 8 = eighth note, etc, also called tempo: int noteDurations[] = { 8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 16, 16, 8, 8, 8, 8, 4, 4 }; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32-S3 pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open, playing the melody"); playMelody(); } } void playMelody() { // iterate over the notes of the melody: int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { // to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(BUZZER_PIN); } }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléversez le sketch de mélodie : Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  3. Créez le fichier pitches.h dans l'Arduino IDE en :
    • Cliquant sur le bouton juste en dessous de l'icône du moniteur série et en choisissant New Tab, ou en utilisant les touches Ctrl+Shift+N.
    Arduino IDE 2 adds file
    • Donnant au fichier le nom pitches.h et en cliquant sur le bouton OK
    Arduino IDE 2 adds file pitches.h
    • Copiant le code ci-dessous et en le collant dans le fichier pitches.h créé.
    /************************************************* * Public Constants *************************************************/ #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
    1. Compilez et téléversez : Cliquez sur le bouton Upload dans l'Arduino IDE.
    How to upload ESP32 S3 code on Arduino IDE
    1. Ouvrez la porte : Éloignez l'aimant de l'interrupteur reed pour déclencher la lecture de la mélodie.
    2. Écoutez la mélodie : Le buzzer piezo joue l'air complet du début à la fin.
    3. Astuce pro : La fonction delay() à l'intérieur de la boucle de mélodie bloque le reste du code pendant la lecture. Pour éviter ce blocage, remplacez-la par la bibliothèque ezBuzzer, conçue pour jouer des mélodies sans bloquer.

    Sortie du moniteur série

    Ouvrez le Serial Monitor de l'Arduino IDE à 9600 bauds pour suivre la progression de la lecture de la mélodie.

    ∞
    Newbiely | Arduino IDE 2.3.8
    ──
    ☐
    ✕
    File
    Edit
    Sketch
    Tools
    Help
    ESP32S3 Dev Module
    Newbiely.ino
    ···
    8 Serial.println("Hello World!");
    Output
    Serial Monitor
    Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
    New Line
    9600 baud
    [2026-06-16 09:25:10] Door opened — Starting melody [2026-06-16 09:25:10] Note: NOTE_C4 | Duration: 250ms [2026-06-16 09:25:11] Note: NOTE_G3 | Duration: 125ms [2026-06-16 09:25:14] Melody complete
    Ln 11, Col 1
    ESP32S3 Dev Module on COM15
    2

    Explication du code ligne par ligne

    Le code ESP32 S3 ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

    ※ Note:

    Le code ci-dessus utilise la fonction delay(). Cela bloque le reste du code pendant la lecture de la mélodie. Pour éviter de bloquer le reste du code, utilisez plutôt la bibliothèque ezBuzzer. Cette bibliothèque est conçue pour faire biper ou jouer une mélodie sur le buzzer sans bloquer le reste du code.

Idées d'applications

La combinaison capteur de porte et buzzer piezo de l'ESP32 S3 est un élément de base polyvalent pour des dizaines de projets pratiques de sécurité et de notification. Voici quelques idées pour stimuler votre imagination :

  1. Alarme de porte : Émettez une tonalité continue chaque fois qu'une porte ou une fenêtre est ouverte sans autorisation.
  2. Carillon d'entrée : Jouez une mélodie de bienvenue à chaque fois qu'un client entre dans un magasin ou un bureau.
  3. Surveillance d'armoire : Alertez lorsqu'une armoire de rangement, un coffre-fort ou un tiroir est ouvert de manière inattendue.
  4. Alerte multi-zones : Connectez plusieurs capteurs de porte et assignez un motif de bip distinct à chaque zone.
  5. Alerte en mode veille : Réveillez un appareil endormi et jouez une tonalité lorsqu'une porte surveillée est ouverte en dehors des heures.
  6. Déclencheur de journalisation : Associez l'alerte du buzzer à une entrée de journal sur carte SD ou dans le cloud chaque fois que l'état de la porte change.

Section vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

Défiez-vous

Maintenant que vous avez un circuit fonctionnel ESP32 S3 avec capteur de porte et buzzer piezo, poussez vos compétences plus loin avec ces défis classés par difficulté :

  1. Débutant : Modifiez le tableau de mélodie pour jouer « Joyeux anniversaire » en utilisant les constantes de pitches.h lorsque la porte s'ouvre.
  2. Débutant : Faites biper le buzzer trois fois brièvement au lieu de sonner en continu lorsque la porte est ouverte.
  3. Intermédiaire : Ajoutez une limite de temps afin que le buzzer ne sonne que 10 secondes après l'ouverture de la porte, même si la porte reste ouverte.
  4. Intermédiaire : Utilisez la bibliothèque ezBuzzer pour jouer une mélodie en arrière-plan sans bloquer le reste du code.
  5. Avancé : Implémentez une fonction de désactivation par code PIN à l'aide d'un clavier afin que l'alarme puisse être arrêtée en saisissant le bon code.
  6. Avancé : Connectez l'ESP32 S3 au Wi-Fi et envoyez un email ou une notification push chaque fois que la porte est ouverte.

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !