ESP32 S3 - Clavier - LCD
Un clavier associé à un écran LCD I2C donne à l'ESP32 S3 une boucle d'interface humaine complète — l'utilisateur appuie sur une touche et la carte affiche le résultat sur l'écran sans avoir besoin d'un ordinateur portable ni du moniteur série. Ce tutoriel vous montre comment connecter les deux composants à l'ESP32 S3 et écrire le code Arduino qui capture chaque pression de touche et l'affiche en direct sur le LCD.
Ce que vous allez construire :
- Un circuit reliant un clavier matriciel 3x4 ou 4x4 et un écran LCD I2C à l'ESP32 S3
- Un croquis qui détecte chaque pression de touche et met immédiatement à jour le LCD avec le caractère pressé
- Un affichage de saisie autonome qui fonctionne indépendamment d'un ordinateur une fois téléversé
- Une base réutilisable pour des panneaux de saisie de code PIN, des systèmes de menu et des interfaces de saisie interactives
Matériel requis
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) |
Note d'achat: La plupart des écrans LCD I2C du marché sont des modèles 5V. Ils peuvent fonctionner avec cette carte, mais ce n'est pas sûr et cela risque d'endommager la carte. Nous recommandons vivement d'utiliser l'écran LCD I2C 3.3V recommandé ci-dessus.
À propos du clavier et de l'écran LCD
Un clavier matriciel encode les pressions de bouton en balayant les lignes et les colonnes, de sorte que de nombreuses touches peuvent être lues avec seulement une poignée de broches GPIO, ce qui en fait un moyen efficace d'ajouter une saisie physique à n'importe quel projet ESP32 S3. L'associer à un écran LCD I2C referme la boucle de rétroaction en donnant à l'utilisateur une confirmation instantanée et visible de ce qui a été saisi — sans besoin d'une fenêtre du moniteur série.
Caractéristiques principales
Nous avons des tutoriels dédiés qui couvrent chaque composant en détail. Chaque tutoriel contient des informations détaillées et des instructions pas à pas sur le brochage matériel, le principe de fonctionnement, la connexion de câblage à l'ESP32 S3 et le code Arduino. Apprenez-en plus via les liens suivants :
Schéma de câblage
Connectez les broches de lignes et de colonnes du clavier aux GPIO de l'ESP32 S3 et câblez le module LCD I2C au bus I2C de la carte avant de mettre quoi que ce soit sous tension. Vérifiez deux fois chaque connexion par rapport aux schémas ci-dessous, en faisant particulièrement attention au fil VCC du LCD — il doit aller sur le rail 5V, et non 3,3V, pour que l'affichage fonctionne correctement.
- Schéma de câblage entre l'ESP32 S3 et le clavier 3x4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Vous voulez une connexion plus solide que des fils de connexion ? Essayez une carte à bornier à vis pour ESP32 S3 : la carte ESP32 S3 se place dessus et chaque broche a son propre bornier à vis. Voici le schéma de câblage avec la carte à bornier à vis.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Une carte d'extension GPIO pour ESP32 S3 convient aussi. En plus des broches S, 3,3V et GND de chaque GPIO, elle a des broches 3,3V et 5V supplémentaires :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Schéma de câblage entre l'ESP32 S3 et le clavier 4x4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Un bornier à vis maintient chaque fil bien serré, même quand la carte bouge. Pour cela, montez la carte ESP32 S3 sur une carte à bornier à vis pour ESP32 S3. Voici le montage avec la carte à bornier à vis :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Une carte d'extension GPIO pour ESP32 S3 convient aussi. En plus des broches S, 3,3V et GND de chaque GPIO, elle a des broches 3,3V et 5V supplémentaires :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Consignes de sécurité
Connectez toujours la broche VCC du LCD I2C au rail 5V (VBUS) plutôt qu'au rail 3,3V — le rétroéclairage et le circuit pilote du LCD nécessitent 5V et produiront un affichage faible ou nul à des tensions plus basses. Les lignes de signal du clavier fonctionnent en logique 3,3V, que les GPIO de l'ESP32 S3 gèrent nativement, donc aucune adaptation de niveau n'est nécessaire entre le clavier et la carte.
| Composant | Broche | Broche ESP32 S3 |
|---|---|---|
| Clavier 3x4 | Ligne 1 | GPIO1 |
| Clavier 3x4 | Ligne 2 | GPIO2 |
| Clavier 3x4 | Ligne 3 | GPIO42 |
| Clavier 3x4 | Ligne 4 | GPIO41 |
| Clavier 3x4 | Colonne 1 | GPIO40 |
| Clavier 3x4 | Colonne 2 | GPIO39 |
| Clavier 3x4 | Colonne 3 | GPIO38 |
| LCD I2C | VCC | 5V |
| LCD I2C | GND | GND |
| LCD I2C | SCL | GPIO9 (horloge I2C) |
| LCD I2C | SDA | GPIO8 (données I2C) |
Code ESP32 S3 - Clavier 3x4 - LCD I2C
Le code suivant initialise le clavier 3x4 et l'écran LCD I2C, puis entre dans une boucle qui interroge le clavier pour une touche pressée et l'affiche sur le LCD en temps réel. Il utilise la bibliothèque de clavier de Mark Stanley et Alexander Brevig pour gérer le balayage matriciel, et la bibliothèque DIYables LCD I2C pour réduire les mises à jour de l'affichage à un seul appel de fonction lisible.
※ Note:
L'adresse I2C du LCD peut varier selon chaque fabricant. Dans le code, nous avons utilisé l'adresse 0x27 spécifiée par le fabricant DIYables. Si votre LCD n'affiche rien, essayez plutôt l'adresse 0x3F.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez le clavier et le LCD I2C à l'ESP32 S3 en suivant le schéma de câblage ci-dessus.
- Connectez la carte ESP32 S3 à votre PC à l'aide d'un câble USB Type-C.
- Ouvrez Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 S3 et le bon port COM dans le menu Tools.
- Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
- Tapez "keypad" dans le champ de recherche, puis recherchez la bibliothèque de clavier par DIYables.
- 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.
- Tapez "DIYables LCD I2C" dans le champ de recherche, puis recherchez la bibliothèque DIYables_LCD_I2C par DIYables.
- Cliquez sur le bouton Install pour installer la bibliothèque DIYables_LCD_I2C.
- Search for DIYables LCD I2C created by DIYables.io and click the Install button.
- Copiez le code ci-dessus et collez-le dans Arduino IDE.
- Cliquez sur le bouton Upload pour compiler et téléverser le code sur votre ESP32 S3.

- Appuyez sur quelques touches du clavier.
- Observez les caractères pressés apparaître sur l'écran LCD.
- Astuce pro : Si le LCD n'affiche rien, ajustez le potentiomètre de contraste à l'arrière du module LCD et vérifiez que l'adresse I2C dans le code correspond à votre module (essayez 0x3F si 0x27 ne fonctionne pas). Consultez Dépannage du LCD I2C pour plus d'aide.
Sortie du moniteur série
La sortie du moniteur série suivante montre l'ESP32 S3 détectant les pressions de touches du clavier 3x4 et affichant chaque caractère pressé. Chaque ligne est horodatée afin que vous puissiez vérifier que chaque pression est capturée immédiatement et dans le bon ordre.
Code ESP32 S3 - Clavier 4x4 - LCD I2C
Le code suivant adapte le plan de touches et la configuration des broches pour un clavier matriciel 4x4 tout en conservant la même logique d'affichage LCD I2C. Passer d'un clavier 3x4 à un clavier 4x4 ajoute les lettres A, B, C et D, vous donnant un jeu de caractères plus riche pour des systèmes de menu ou des interfaces de contrôle d'accès.
Applications et idées de projets
Une fois que vous pouvez capturer la saisie du clavier et l'afficher sur le LCD avec votre ESP32 S3, vous pouvez étendre ce projet à un large éventail d'applications pratiques pilotées par saisie.
- Verrouillage par code PIN : Collectez une séquence de touches pressées, comparez-la à un code PIN enregistré, et déverrouillez un relais ou un solénoïde lorsque les codes correspondent.
- Calculatrice : Analysez les touches numériques et les opérateurs saisis sur le clavier, évaluez l'expression, et affichez le résultat sur le LCD.
- Système de navigation par menu : Utilisez le clavier pour parcourir des options sur le LCD et sélectionner des actions comme basculer des sorties ou ajuster des paramètres.
- Terminal de contrôle d'accès : Enregistrez chaque touche pressée avec un horodatage sur une carte SD et affichez des messages d'accès accordé ou refusé sur le LCD.
- Panneau d'alarme simple : Laissez l'utilisateur armer ou désarmer une alarme en saisissant un code sur le clavier, avec des messages d'état affichés sur le LCD.
- Terminal de saisie de données : Utilisez le clavier pour saisir des valeurs numériques pour des points de consigne, des seuils ou des paramètres de configuration stockés en mémoire flash.
Vidéo tutoriel
Regardez ci-dessous la vidéo pas à pas de ce projet ESP32 S3.
Défiez-vous
Maintenant que les touches pressées apparaissent sur le LCD avec votre ESP32 S3, essayez ces défis progressivement plus difficiles pour approfondir votre compréhension et créer des interfaces de saisie plus performantes.
- Débutant : Modifiez le croquis pour effacer le LCD après chaque cinq touches pressées afin que l'affichage ne montre toujours que la saisie la plus récente.
- Débutant : Ajoutez une fonction de retour arrière — appuyer sur la touche étoile (*) supprime le dernier caractère de l'écran LCD.
- Intermédiaire : Mettez en œuvre une vérification simple de code PIN à quatre chiffres : collectez quatre touches pressées, comparez le résultat à un code PIN enregistré, et affichez "ACCESS GRANTED" ou "ACCESS DENIED" sur le LCD.
- Intermédiaire : Ajoutez un délai d'inactivité afin que le LCD s'efface automatiquement si aucune touche n'est pressée dans les dix secondes, aidant à protéger les saisies sensibles dans un environnement partagé.
- Avancé : Créez une calculatrice numérique qui évalue de simples expressions arithmétiques saisies sur le clavier et affiche le résultat sur la deuxième ligne du LCD.
- Avancé : Stockez un code PIN configurable par l'utilisateur dans la mémoire flash de l'ESP32 S3 afin qu'il survive aux cycles d'alimentation, et ajoutez un mode de configuration permettant à l'utilisateur de changer le code PIN via le clavier lui-même.