ESP32 S3 - Clavier 3x4

Apprenez à connecter et programmer un clavier 3x4 avec votre carte ESP32 S3. Ce tutoriel vous guide dans la lecture des pressions de touches individuelles et la construction d'un système de vérification de mot de passe utilisant la bibliothèque de clavier DIYables.

Ce que vous allez construire :

  1. Un lecteur de clavier qui affiche chaque touche pressée sur le Serial Monitor
  2. Un système de saisie de mot de passe qui valide un code défini par l'utilisateur saisi sur le clavier
  3. Une base de contrôle d'accès utilisant les touches « * » et « # » comme déclencheurs de démarrage et de confirmation
  4. Un modèle réutilisable pour les serrures de porte, les claviers PIN, et d'autres projets ESP32 S3 sécurisés par saisie
ESP32 S3 - Clavier 3x4

Matériel Requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Clavier 3x4
1×Fils de connexion
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du Clavier 3x4

Le clavier 3x4 est un dispositif de saisie à membrane avec 12 boutons disposés dans une grille de quatre rangées et trois colonnes. Chaque pression de touche est détectée en balayant les connexions de rangée et de colonne en séquence, permettant à l'ESP32 S3 d'identifier exactement quel bouton a été pressé en utilisant seulement sept broches numériques.

Spécifications Clés

Le clavier expose sept broches — quatre pour les rangées (R1 à R4) et trois pour les colonnes (C1 à C3). Aucune broche d'alimentation n'est requise ; le clavier s'appuie entièrement sur les niveaux logiques GPIO du microcontrôleur connecté. La construction à membrane le rend mince et compact, et la disposition 3x4 fournit les touches 0–9 plus « * » et « # » pour des schémas de saisie numérique flexibles. Le clavier est entièrement compatible avec la logique 3,3V, ce qui en fait un choix naturel pour l'ESP32 S3.

Brochage

Le clavier 3x4 a 7 broches organisées en deux groupes :

  1. Broche R1 : Rangée 1 — rangée supérieure de touches (1, 2, 3)
  2. Broche R2 : Rangée 2 — deuxième rangée de touches (4, 5, 6)
  3. Broche R3 : Rangée 3 — troisième rangée de touches (7, 8, 9)
  4. Broche R4 : Rangée 4 — rangée inférieure de touches (*, 0, #)
  5. Broche C1 : Colonne 1 — colonne la plus à gauche (1, 4, 7, *)
  6. Broche C2 : Colonne 2 — colonne du milieu (2, 5, 8, 0)
  7. Broche C3 : Colonne 3 — colonne la plus à droite (3, 6, 9, #)
Brochage du Clavier 3x4

Schéma de Câblage

Connectez le clavier 3x4 à l'ESP32 S3 en associant les broches de rangée et de colonne du clavier à des broches GPIO disponibles dans l'ordre. Le tableau et le schéma de câblage suivants montrent la connexion recommandée pour ce tutoriel.

Schéma de Câblage Clavier 3x4 ESP32 S3

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

Notes de Sécurité

Le clavier 3x4 fonctionne entièrement en logique 3,3V et consomme un courant négligeable, donc il n'y a aucun risque d'endommager l'ESP32 S3 à partir de cette seule connexion. Vérifiez toujours que chaque fil est bien inséré dans son emplacement de breadboard avant de téléverser le code — les connexions lâches sont la cause la plus courante de touches manquées ou de rangées et colonnes inversées.

Broche du Clavier Broche ESP32 S3
R1 GPIO17
R2 GPIO16
R3 GPIO15
R4 GPIO7
C1 GPIO6
C2 GPIO5
C3 GPIO4

Code ESP32 S3

Le code suivant utilise la bibliothèque DIYables_Keypad pour détecter les pressions de touches individuelles sur le clavier 3x4 connecté à l'ESP32 S3. Il initialise le clavier avec les affectations de broches de rangée et de colonne, puis scrute en continu les événements de touche dans la boucle principale et affiche chaque caractère détecté sur le Serial Monitor.

/* * 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-3x4 */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // 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}; // GPIO17, GPIO16, GPIO15, GPIO7 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // GPIO6, GPIO5, GPIO4 connect to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Étapes Rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Connectez le clavier 3x4 à l'ESP32 S3 selon le schéma de câblage ci-dessus.
  3. Connectez votre ESP32 S3 à votre ordinateur en utilisant un câble USB Type-C.
  4. Ouvrez l'Arduino IDE sur votre ordinateur.
  5. Sélectionnez votre carte : choisissez la bonne carte ESP32 S3 dans le menu Tools > Board.
  6. Choisissez votre port : sélectionnez le bon port COM dans le menu Tools > Port.
  7. Cliquez sur l'icône Libraries sur la barre latérale gauche de l'Arduino IDE.
  8. Tapez DIYables_Keypad dans la boîte de recherche et cherchez la bibliothèque de clavier par DIYables.io.
  9. Cliquez sur le bouton Install pour installer la bibliothèque de clavier.
  • 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 l'Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et téléverser le croquis sur l'ESP32 S3.
  3. Ouvrez le Serial Monitor dans l'Arduino IDE.
  4. Appuyez sur quelques touches du clavier et observez la sortie.
  5. Astuce : Si les touches ne sont pas détectées correctement, échangez les affectations de broches de rangée et de colonne dans le code — les câbles ruban de clavier peuvent être orientés différemment selon les fabricants.

Sortie du Serial Monitor

Après avoir téléversé le code et ouvert le Serial Monitor à 115200 bauds, appuyez sur les touches du clavier 3x4 une à la fois. Le Serial Monitor affichera chaque touche pressée comme un caractère sur sa propre ligne, similaire à la sortie ci-dessous.

∞
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:14:01] Key pressed: 1 [2026-06-16 09:14:03] Key pressed: 5 [2026-06-16 09:14:05] Key pressed: 9 [2026-06-16 09:14:07] Key pressed: #
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Clavier et Mot de Passe

Une utilisation courante du clavier est la saisie et la vérification d'un mot de passe, ce qui est la base des projets de clavier PIN et de serrure de porte. La logique de vérification du mot de passe s'appuie sur deux touches spéciales pour contrôler le flux de saisie : la touche « * » efface la saisie en cours et recommence à zéro, tandis que la touche « # » finalise la saisie et déclenche une comparaison avec le mot de passe prédéfini stocké dans le croquis.

Le mot de passe est construit caractère par caractère à partir des autres touches. Quand une touche est pressée :

  • Si la touche n'est pas « * » ou « # », ajoutez-la au mot de passe que l'utilisateur est en train de saisir.
  • Si la touche est « # », comparez le mot de passe saisi au mot de passe prédéfini, puis effacez la saisie.
  • Si la touche est « * », effacez le mot de passe saisi sans vérification.

Code Clavier - Mot de Passe

Le code suivant étend le lecteur de touches de base pour mettre en œuvre un système complet de vérification de mot de passe sur l'ESP32 S3. Il stocke un mot de passe prédéfini dans le croquis, accumule les pressions de touches dans une chaîne de saisie, et affiche si l'accès est accordé ou refusé quand l'utilisateur appuie sur « # » pour confirmer.

/* * 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-3x4 */ /* * 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-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // 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}; // GPIO17, GPIO16, GPIO15, GPIO7 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // GPIO6, GPIO5, GPIO4 connect to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // clear input password } else if (key == '#') { if (password == input_password) { Serial.println("The password is correct, ACCESS GRANTED!"); // DO YOUR WORK HERE } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Étapes Rapides (Exemple de Mot de Passe)

  1. Téléversez le code de mot de passe sur votre ESP32 S3.
  2. Ouvrez le Serial Monitor.
  3. Appuyez sur les touches 123456 suivies de #.
  4. Appuyez sur les touches 7890 suivies de #.
  5. Vérifiez les résultats sur le Serial Monitor.
∞
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:15:12] password is incorrect, try again [2026-06-16 09:15:18] password is correct
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications et Idées de Projets

Une fois que vous pouvez lire les touches et vérifier les mots de passe avec l'ESP32 S3, vous pouvez adapter cette base en de nombreux projets pratiques de sécurité et de saisie.

  1. Système de serrure de porte : Utilisez le vérificateur de mot de passe pour contrôler un relais ou une serrure à solénoïde — déverrouillez quand le bon PIN est saisi.
  2. Combinaison de coffre-fort : Exigez une séquence en plusieurs étapes de touches pour ouvrir une enceinte ou déclencher un événement.
  3. Clavier PIN de système d'alarme : Laissez les utilisateurs armer et désarmer une alarme en saisissant un code sur le clavier.
  4. Journal d'accès : Enregistrez chaque pression de touche avec un horodatage sur une carte SD pour auditer qui a accédé à une zone sécurisée.
  5. Calculatrice : Associez les touches 0–9 et les touches « * » et « # » à des opérations arithmétiques pour construire une calculatrice numérique simple.
  6. Navigation de menu numérique : Utilisez les rangées et les colonnes comme contrôles de direction et de sélection pour un système de menu LCD.
  7. Système PIN multi-utilisateurs : Stockez plusieurs mots de passe valides dans un tableau et accordez l'accès si l'un d'eux correspond.

Tutoriel Vidéo

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

Défiez-vous

Maintenant que vous pouvez lire les touches et vérifier les mots de passe avec le clavier 3x4 sur l'ESP32 S3, essayez ces extensions progressivement plus difficiles pour approfondir votre compréhension.

  1. Débutant : Changez le mot de passe prédéfini dans le croquis par un code à six chiffres et vérifiez qu'il fonctionne correctement.
  2. Débutant : Affichez chaque pression de touche sur un écran LCD I2C au lieu du Serial Monitor.
  3. Intermédiaire : Ajoutez un buzzer qui bipe une fois pour chaque pression de touche et joue une tonalité plus longue quand le mot de passe est accepté ou rejeté.
  4. Intermédiaire : Implémentez un verrouillage qui désactive la saisie pendant 30 secondes après trois tentatives consécutives de mot de passe incorrectes.
  5. Avancé : Stockez le mot de passe dans l'EEPROM ou la flash NVS afin qu'il survive aux cycles d'alimentation, et ajoutez une séquence de touches pour changer le mot de passe pendant l'exécution.
  6. Avancé : Construisez un système complet de serrure de porte en combinant le clavier avec un relais, une serrure à solénoïde, et un écran OLED qui affiche des messages d'accès accordé ou refusé.

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 !