Arduino Nano ESP32 - Clavier

Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 avec un clavier. En détail, nous apprendrons :

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×Keypad 3x4 and 4x4 Kit
1×(Alternative) Keypad 3x4
1×(Alternative) Keypad 4x4
1×(Optional) DC Power Jack
1×Breadboard
1×Jumper Wires
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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

Clavier

Le clavier est composé d'un groupe de boutons disposés en matrice (lignes et colonnes). Un bouton représente une touche. Il existe de nombreux types de claviers. Le clavier 3x4 (12 touches) et le clavier 4x4 (16 touches) sont les deux types les plus couramment utilisés dans les projets DIY.

Brochage du clavier

Les broches du clavier sont classées en deux groupes : ligne et colonne.

  • Le clavier 3x4 possède 7 broches :
    • R1, R2, R3, R4 : broches des rangées
    • C1, C2, C3 : broches des colonnes
  • Le clavier 4x4 possède 8 broches :
    • R1, R2, R3, R4 : broches des rangées
    • C1, C2, C3, C4 : broches des colonnes
    Disposition des broches du clavier

    Fonctionnement du clavier

    Voyez comment fonctionne le clavier

Schéma de câblage entre le clavier et l'Arduino Nano ESP32

Schéma de câblage du clavier Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32

Clavier 3x4

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Pavé numérique 4x4

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), 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

  • Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
  • Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE
  • Tapez keypad dans la boîte de recherche, puis recherchez la bibliothèque keypad de Mark Stanley, Alexander Brevig
  • Cliquez sur le bouton Install pour installer la bibliothèque keypad.
Bibliothèque de clavier pour Arduino Nano ESP32
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
  • Compilez et téléchargez le code sur la carte Arduino Nano ESP32 en cliquant sur le bouton Upload dans l'IDE Arduino
  • Ouvrez le moniteur série dans l'IDE Arduino
Comment ouvrir le moniteur série sur Arduino IDE
  • Appuyez sur quelques touches du clavier
  • Voyez le résultat dans le moniteur série
COM6
Send
1 2 3 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Clavier et mot de passe

Le clavier est largement utilisé pour authentifier quelqu'un par mot de passe. Dans ce tutoriel, un mot de passe valide est prédéfini dans le code. Lorsqu'un utilisateur saisit le mot de passe depuis le clavier, il est comparé avec le mot de passe prédéfini :

  • Si correspondance, l'accès est accordé.
  • Sinon, l'accès est refusé.

Pour utiliser un mot de passe avec un clavier, nous spécifions deux touches spéciales :

  • Une touche pour commencer à saisir le mot de passe. Par exemple, la touche "*"
  • Une touche pour terminer la saisie du mot de passe. Par exemple, la touche "#"

Le mot de passe saisi par un utilisateur sera stocké dans une chaîne, appelée chaîne de mot de passe saisie. Lorsqu'une touche est pressée :

  • Si une touche saisie est "*", effacez la chaîne de mot de passe saisie pour commencer un nouveau mot de passe.
  • Si une touche saisie n'est ni "*" ni "#", ajoutez la touche à la chaîne de mot de passe saisie.
  • Si une touche saisie est "#", comparez la chaîne de mot de passe saisie avec le mot de passe prédéfini.

Clavier - Code de mot de passe

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), 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 } } }
  • Exécutez le code ci-dessus
  • Ouvrez le moniteur série sur Arduino IDE
Comment ouvrir le moniteur série sur Arduino IDE
  • Appuyez sur les touches "123456" puis sur "#"
  • Appuyez sur les touches "7890" puis sur "#"
  • Vérifiez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
COM6
Send
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!