ESP32 S3 - Serrure de porte à clavier

Ce tutoriel vous montre comment construire un système de serrure de porte contrôlé par mot de passe à l'aide d'un clavier et d'une serrure à solénoïde avec l'ESP32 S3. Quand l'utilisateur saisit le bon mot de passe sur le clavier, l'ESP32 S3 active la serrure à solénoïde pour déverrouiller la porte, la garde ouverte pendant 20 secondes, puis la reverrouille automatiquement.

Le code de l'ESP32 S3 prend en charge plusieurs mots de passe, ce qui vous permet d'enregistrer plus d'un code d'accès valide pour différents utilisateurs ou scénarios.

Ce que vous allez construire :

  1. Un circuit connectant un clavier 3x4, un relais, et une serrure à solénoïde à l'ESP32 S3
  2. Un croquis qui lit un mot de passe depuis le clavier et déverrouille la porte quand le bon mot de passe est saisi
  3. Un mécanisme de reverrouillage automatique qui sécurise à nouveau la porte après 20 secondes
  4. Une base pour des projets de contrôle d'accès et de serrure intelligente utilisant l'ESP32 S3

À propos du clavier et de la serrure à solénoïde

Un clavier donne aux utilisateurs une manière familière et sûre de saisir des mots de passe numériques ou alphanumériques directement dans un système embarqué sans aucun appareil externe. Une serrure à solénoïde convertit un signal électrique provenant de l'ESP32 S3 (via un relais) en un mouvement mécanique de pêne, ce qui en fait l'actionneur idéal pour le contrôle d'accès physique. Ensemble, ils forment une serrure de porte autonome et économique qui ne nécessite aucun smartphone ni connexion réseau.

Spécifications clés

Nous avons des tutoriels dédiés couvrant chaque composant en détail. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage matériel, le principe de fonctionnement, la connexion de câblage à l'ESP32 S3, et le code Arduino. En savoir plus via les liens suivants :

Schéma de câblage

Connectez le clavier, le relais, et la serrure à solénoïde à votre ESP32 S3 en suivant le schéma ci-dessous. Vérifiez soigneusement toutes les connexions avant de mettre sous tension, en particulier sur le côté haute tension du relais qui pilote la serrure à solénoïde.

ESP32 S3 keypad solenoid lock wiring diagram

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

Pour un projet durable, les borniers à vis tiennent mieux les fils que les fils de connexion. Vous pouvez placer la carte ESP32 S3 sur une carte à bornier à vis pour ESP32 S3 et brancher les fils sur ses borniers à vis. Voici le même circuit câblé avec la carte à bornier à vis :

ESP32 S3 keypad solenoid lock wiring diagram (Screw Terminal)

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

Voici le même circuit avec une carte d'extension GPIO pour ESP32 S3, qui relie chaque GPIO à des connecteurs à broches :

ESP32 S3 keypad solenoid lock wiring diagram (GPIO Breakout Board)

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

Notes de sécurité

La serrure à solénoïde fonctionne en 12 V CC et doit être alimentée via le relais, pas directement depuis les broches GPIO de l'ESP32 S3. Gardez le câblage 12 V physiquement séparé du câblage basse tension du clavier, et assurez-vous que toutes les bornes à vis du relais sont serrées avant de mettre le circuit sous tension.

Composant Broche Broche ESP32 S3
Keypad Row 1 GPIO17
Keypad Row 2 GPIO16
Keypad Row 3 GPIO15
Keypad Row 4 GPIO7
Keypad Col 1 GPIO6
Keypad Col 2 GPIO5
Keypad Col 3 GPIO4
Relay DC- GND
Relay DC+ 5V
Relay IN GPIO18
Solenoid Lock + Relay NO
Solenoid Lock - 12V GND

Code ESP32 S3 - Système de serrure de porte avec mot de passe à l'aide d'un clavier et d'une serrure à solénoïde

Le code suivant lit les touches pressées sur le clavier de l'ESP32 S3, les accumule dans une chaîne de saisie, et active la serrure à solénoïde via le relais quand le mot de passe saisi correspond à l'un des mots de passe prédéfinis. Une fois déverrouillée, la porte reste ouverte pendant 20 secondes puis l'ESP32 S3 ferme automatiquement le relais pour la reverrouiller.

/* * 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-keypad-door-lock */ #include <Keypad.h> #define RELAY_PIN 18 // ESP32-S3 pin GPIO18 connected to the relay #define ROW_NUM 4 // keypad four rows #define COLUMN_NUM 3 // keypad three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte pin_rows[ROW_NUM] = {17, 16, 15, 7}; // ESP32-S3 pin: GPIO17, GPIO16, GPIO15, GPIO7 connected to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // ESP32-S3 pin: GPIO6, GPIO5, GPIO4 connected to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "1234567"; // change your password here const String password_2 = "987654"; // change your password here const String password_3 = "55555"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // lock the door } void loop() { char key = keypad.getKey(); if (key){ Serial.println(key); if(key == '*') { input_password = ""; // reset the input password } else if(key == '#') { if(input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The password is correct, unlocking the door in 20 seconds"); digitalWrite(RELAY_PIN, HIGH); // unlock the door for 20 seconds delay(20000); digitalWrite(RELAY_PIN, LOW); // lock the door } else { Serial.println("The password is incorrect, try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants en suivant le schéma de câblage montré ci-dessus.
  3. Connectez la carte ESP32 S3 à votre PC à l'aide d'un câble USB Type-C.
  4. Ouvrez Arduino IDE sur votre PC.
  5. Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
  6. Cliquez sur l'icône Libraries dans la barre gauche d'Arduino IDE.
  7. Recherchez "keypad", puis trouvez la bibliothèque Keypad par Mark Stanley et Alexander Brevig.
  8. Cliquez sur Install pour installer la bibliothèque Keypad.
  • Search for DIYables_Keypad created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
DIYables_Keypad by DIYables.io
The library is designed for Arduino, ESP32, ESP8266... to use with keypad such as 3x4, 4x4 keypad. It also works with Arduino Uno R4 WiFi/Minima More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Copiez le code ci-dessus et collez-le dans Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et téléverser le code vers l'ESP32 S3.
Arduino IDE Upload Code
  1. Ouvrez le Serial Monitor dans Arduino IDE.
  2. Appuyez sur les touches 12345 puis appuyez sur # sur le clavier.
  3. Appuyez sur les touches 1234567 puis appuyez sur # sur le clavier.
  4. Observez l'état du pêne de la serrure à solénoïde pendant 20 secondes.
  5. Astuce pro : Utilisez la touche * à tout moment pour effacer votre saisie actuelle et recommencer à saisir le mot de passe depuis le début.

Sortie du moniteur série

La sortie du Serial Monitor suivante montre l'ESP32 S3 répondant aux saisies de mot de passe en temps réel. Les tentatives correctes et incorrectes sont enregistrées afin que vous puissiez vérifier d'un coup d'œil le comportement du contrôle d'accès.

∞
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] Key pressed: 1 [2026-06-16 09:22:02] Key pressed: 2 [2026-06-16 09:22:02] Key pressed: 3 [2026-06-16 09:22:03] Key pressed: 4 [2026-06-16 09:22:03] Key pressed: 5 [2026-06-16 09:22:04] The password is incorrect, try again [2026-06-16 09:22:10] Key pressed: 1 [2026-06-16 09:22:10] Key pressed: 2 [2026-06-16 09:22:11] Key pressed: 3 [2026-06-16 09:22:11] Key pressed: 4 [2026-06-16 09:22:12] Key pressed: 5 [2026-06-16 09:22:12] Key pressed: 6 [2026-06-16 09:22:13] Key pressed: 7 [2026-06-16 09:22:13] The password is correct, unlocking the door in 20 seconds
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Explication du code

Les mots de passe autorisés sont prédéfinis dans le code de l'ESP32 S3. Une variable de type chaîne appelée la chaîne de saisie accumule chaque touche que l'utilisateur appuie. Deux touches spéciales sur le clavier contrôlent le déroulement : * efface la chaîne de saisie afin que vous puissiez recommencer la saisie, et # la termine et déclenche une comparaison. Quand # est appuyé, la chaîne de saisie est comparée à chaque mot de passe prédéfini — si elle correspond à l'un d'eux, le relais est activé pour déverrouiller la porte pendant 20 secondes puis la porte est automatiquement reverrouillée ; quel que soit le résultat, la chaîne de saisie est effacée, prête pour la tentative suivante.

※ Note:

  • Dans le code ci-dessus, pour garder les choses simples, nous avons utilisé la fonction delay(). Pour une approche non bloquante, envisagez d'utiliser millis() à la place. Consultez How to use millis() instead of delay().
  • Vous pouvez ajouter un ESP32 S3 - Buzzer piézoélectrique pour émettre un bip chaque fois qu'une touche est pressée sur le clavier.
  • Dans le code ci-dessus, la porte se reverrouille après 20 secondes. Vous pouvez remplacer cela par un ESP32 S3 - Capteur de Porte afin que la porte se verrouille dès que le capteur détecte qu'elle est fermée.

Applications et idées de projets

Une fois que vous maîtrisez le verrouillage de porte contrôlé par mot de passe avec l'ESP32 S3, vous pouvez étendre ce modèle à une large gamme de projets de contrôle d'accès et de sécurité.

  1. Porte d'entrée de maison : Remplacez une serrure à clé traditionnelle par un pêne à solénoïde contrôlé par clavier et définissez un code PIN familial pour l'entrée quotidienne.
  2. Serrure d'armoire de bureau : Sécurisez un classeur ou une baie de serveurs avec un code PIN numérique que seul le personnel autorisé connaît.
  3. Coffre-fort : Ajoutez une serrure à solénoïde à un coffre-fort et exigez le bon code PIN avant que le couvercle puisse être libéré.
  4. Système de vestiaire : Attribuez des codes PIN individuels à chaque casier et utilisez un ESP32 S3 par unité pour un fonctionnement autonome.
  5. Accès à un espace de travail partagé : Mettez à jour le mot de passe en réécrivant le firmware afin que seuls les membres actuels puissent entrer.
  6. Laboratoire de sécurité prototype : Construisez un banc de test qui enregistre chaque tentative d'accès sur une console série ou une carte SD à des fins d'audit.

Tutoriel vidéo

Regardez la démonstration vidéo étape par étape de ce projet ESP32 S3 ci-dessous.

Défiez-vous

Maintenant que vous pouvez construire une serrure de porte à clavier avec l'ESP32 S3, essayez ces extensions progressivement plus difficiles pour approfondir votre compréhension et construire des projets plus performants.

  1. Débutant : Changez le mot de passe prédéfini dans le code en un code PIN à six chiffres et vérifiez que les saisies plus courtes sont toujours rejetées.
  2. Débutant : Ajoutez un indicateur LED qui s'allume en vert pour un mot de passe correct et en rouge pour un mot de passe incorrect, donnant un retour visuel instantané.
  3. Intermédiaire : Implémentez un mécanisme de verrouillage qui désactive le clavier pendant 60 secondes après trois tentatives de mot de passe incorrectes consécutives.
  4. Intermédiaire : Stockez les mots de passe autorisés dans l'EEPROM ou la flash afin qu'ils persistent à travers les cycles d'alimentation et puissent être mis à jour sans réécrire le firmware.
  5. Avancé : Remplacez la fenêtre de déverrouillage fixe de 20 secondes par un capteur de porte afin que la porte se reverrouille dès qu'elle est physiquement fermée.
  6. Avancé : Ajoutez une interface web via WiFi afin qu'un administrateur puisse changer les mots de passe et consulter le journal d'accès complet depuis un navigateur.

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 !