ESP32 S3 - Clavier 4x4

Apprenez à connecter et à programmer un clavier 4x4 avec votre carte ESP32 S3. Ce tutoriel vous guide dans la lecture de chaque touche appuyée 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 appuyée dans 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 des serrures de porte, des claviers PIN et d'autres projets ESP32 S3 sécurisés par saisie
ESP32 S3 - 4x4 Keypad

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 4x4
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 4x4

Le clavier 4x4 est un dispositif de saisie à membrane avec 16 boutons disposés en grille de quatre lignes et quatre colonnes. Chaque appui sur une touche est détecté en scannant successivement les connexions de lignes et de colonnes, permettant à l'ESP32 S3 d'identifier exactement quel bouton a été appuyé en utilisant seulement huit broches numériques.

Spécifications clés

Le clavier expose huit broches — quatre pour les lignes (R1 à R4) et quatre pour les colonnes (C1 à C4). Aucune broche d'alimentation n'est nécessaire ; le clavier repose entièrement sur les niveaux logiques GPIO du microcontrôleur connecté. La construction en membrane le rend fin et compact, et la disposition 4x4 offre les touches 0–9, A–D, *, et # pour des schémas de saisie 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 4x4 a 8 broches organisées en deux groupes :

  1. Broche R1 : Ligne 1 — rangée supérieure de touches (1, 2, 3, A)
  2. Broche R2 : Ligne 2 — deuxième rangée de touches (4, 5, 6, B)
  3. Broche R3 : Ligne 3 — troisième rangée de touches (7, 8, 9, C)
  4. Broche R4 : Ligne 4 — rangée inférieure de touches (*, 0, #, D)
  5. Broche C1 : Colonne 1 — colonne la plus à gauche (1, 4, 7, *)
  6. Broche C2 : Colonne 2 — deuxième colonne (2, 5, 8, 0)
  7. Broche C3 : Colonne 3 — troisième colonne (3, 6, 9, #)
  8. Broche C4 : Colonne 4 — colonne la plus à droite (A, B, C, D)
4x4 Keypad Pinout

Schéma de câblage

Connectez le clavier 4x4 à l'ESP32 S3 en faisant correspondre les broches de lignes et de colonnes du clavier aux broches GPIO disponibles, dans l'ordre. Le tableau et le schéma de câblage suivants montrent la connexion recommandée pour ce tutoriel.

ESP32 S3 Keypad 4x4 Wiring Diagram

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

Notes de sécurité

Le clavier 4x4 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 avec cette seule connexion. Vérifiez toujours que chaque fil est bien enfoncé dans son emplacement de breadboard avant de téléverser le code — des connexions mal fixées sont la cause la plus courante de touches manquées ou de lignes et colonnes inversées.

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

Code ESP32 S3

Le code suivant utilise la bibliothèque DIYables_Keypad pour détecter les appuis individuels sur le clavier 4x4 connecté à l'ESP32 S3. Il initialise le clavier avec l'affectation des broches de lignes et de colonnes, puis interroge 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-4x4 */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {18, 17, 16, 15}; // GPIO18, GPIO17, GPIO16, GPIO15 connect to the row pins byte pin_column[COLUMN_NUM] = {7, 6, 5, 4}; // GPIO7, 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 l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Connectez le clavier 4x4 à l'ESP32 S3 selon le schéma de câblage ci-dessus.
  3. Connectez votre ESP32 S3 à votre ordinateur à l'aide d'un câble USB Type-C.
  4. Ouvrez 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 dans la barre latérale gauche d'Arduino IDE.
  8. Saisissez DIYables_Keypad dans la zone de recherche et recherchez la bibliothèque de clavier de 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 Arduino IDE.
  2. Cliquez sur le bouton Upload pour compiler et téléverser le sketch sur l'ESP32 S3.
  3. Ouvrez le Serial Monitor dans 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 des broches de lignes et de colonnes dans le code — les câbles plats 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 4x4 une par une. Le Serial Monitor affichera chaque touche appuyée comme un caractère sur sa propre ligne, semblable à 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: 4 [2026-06-16 09:14:05] Key pressed: A [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 constitue la base des projets de clavier PIN et de serrure de porte. La logique de vérification de mot de passe repose sur deux touches spéciales pour contrôler le flux de saisie : la touche "*" efface la saisie en cours et repart à 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 sketch.

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

  • Si la touche n'est ni "*" ni "#", ajoutez-la au mot de passe en cours de saisie par l'utilisateur.
  • Si la touche est "#", comparez le mot de passe saisi avec le 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 implémenter 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 sketch, accumule les touches appuyées dans une chaîne de saisie, et affiche si l'accès est accordé ou refusé lorsque 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-4x4 */ /* * 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 4 // three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {18, 17, 16, 15}; // GPIO18, GPIO17, GPIO16, GPIO15 connect to the row pins byte pin_column[COLUMN_NUM] = {7, 6, 5, 4}; // GPIO7, GPIO6, GPIO5, GPIO4 connect to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890A"; // 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 1234BC suivies de #.
  4. Appuyez sur les touches 1234A 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 des mots de passe avec l'ESP32 S3, vous pouvez adapter cette base à 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 gâche électrique — déverrouillez quand le bon code PIN est saisi.
  2. Combinaison de coffre-fort : Exigez une séquence de touches en plusieurs étapes pour ouvrir un boîtier 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 appui 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 A–D à des opérations arithmétiques pour construire une simple calculatrice à quatre fonctions.
  6. Navigation de menu numérique : Utilisez les lignes et les colonnes comme contrôles directionnels et de sélection pour un système de menu LCD.
  7. Système PIN multi-utilisateur : Stockez plusieurs mots de passe valides dans un tableau et accordez l'accès si l'un d'eux correspond.

Tutoriel vidéo

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

Relevez le défi

Maintenant que vous pouvez lire les touches et vérifier des mots de passe avec le clavier 4x4 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 sketch en un code à six chiffres et vérifiez qu'il fonctionne correctement.
  2. Débutant : Affichez chaque touche appuyée sur un écran LCD I2C au lieu du Serial Monitor.
  3. Intermédiaire : Ajoutez un buzzer qui émet un bip pour chaque touche appuyée et joue un son plus long quand le mot de passe est accepté ou refusé.
  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 incorrect.
  5. Avancé : Stockez le mot de passe dans l'EEPROM ou la mémoire flash NVS pour 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 gâche électrique, 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 !