ESP8266 - Clavier

Ce tutoriel vous explique comment utiliser l'ESP8266 avec un clavier 3x4 et 4x4. En détail, nous allons apprendre :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Keypad 3x4 and 4x4 Kit
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

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

Un clavier est un ensemble de touches organisées en rangées et en colonnes, appelé matrice. Chaque bouton est appelé une touche. Les claviers existent dans une variété de styles. Deux des plus courants pour les projets de bricolage sont le clavier 3x4 (avec 12 touches) et le clavier 4x4 (avec 16 touches).

Configuration des broches du clavier à touches

Les broches sont classées en deux groupes : rangées et colonnes.

  • Un clavier 3x4 possède 7 broches : quatre broches pour les rangées (étiquetées R1, R2, R3 et R4) et trois broches pour les colonnes (étiquetées C1, C2 et C3).
  • Un clavier 4x4 possède 8 broches : quatre broches pour les rangées (étiquetées R1, R2, R3 et R4) et quatre broches pour les colonnes (étiquetées C1, C2, C3 et C4).
Disposition des broches du clavier

Diagramme de câblage

  • ESP8266 - Schéma de câblage du clavier 3x4
Schéma de câblage du clavier ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

  • Schéma de câblage ESP8266 - Clavier 4x4
Schéma de câblage du clavier ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

※ NOTE THAT:

Vous pouvez changer les broches ESP8266 connectées aux broches du clavier. Cependant, vous devriez éviter d'utiliser la broche D8 pour le clavier. Si toutefois les broches ESP8266 ne suffisent pas, vous pouvez utiliser la broche D8 pour le clavier mais vous DEVEZ suivre les instructions ci-dessous :

  • N'utilisez PAS la broche D8 de l'ESP8266 pour les broches de rangée.
  • Lorsque vous utilisez la broche D8 de l'ESP8266 pour une broche de colonne, vous DEVEZ modifier la bibliothèque Keypad comme suit :
    • Trouvez le fichier Arduino\libraries\Keypad\src\Keypad.cpp, allez à la ligne 98, où cela ressemble à ceci : pin_mode(columnPins[c], INPUT);
    • Mettez cette ligne en commentaire. Après modification, le code à la ligne 98 devrait ressembler à ceci : //pin_mode(columnPins[c], INPUT);

Code ESP8266

Code ESP8266 pour clavier 3x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // The ESP8266 pins connect to the column pins 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); } }

Code ESP8266 pour clavier 4x4

#include <Keypad.h> const int ROW_NUM = 4; //four rows const int 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'} }; byte pin_rows[ROW_NUM] = {D0, D1, D2, D3}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D4, D5, D6, D7}; // The ESP8266 pins connect to the column pins 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

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
  • Recherchez “keypad” et localisez la bibliothèque de clavier créée par Mark Stanley et Alexander Brevig.
  • Puis, cliquez sur le bouton Install pour compléter l'installation de la bibliothèque de clavier.
Bibliothèque de clavier ESP8266 NodeMCU
  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Une fois ouvert, cliquez sur le bouton Upload pour charger le code sur l'ESP8266.
  • Ouvrez le moniteur série.
  • Appuyez sur quelques touches du clavier.
  • Vérifiez le moniteur série pour voir le résultat.
COM6
Send
3 6 9 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Clavier et Mot de Passe

Une utilisation courante d'un clavier est la saisie de mots de passe. Nous désignons généralement deux touches spécifiques à cet effet :

  • Une touche pour initier ou redémarrer la saisie du 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 sera constitué d'une chaîne qui inclut toutes les autres touches, à l'exception de deux touches spéciales spécifiques.

Lorsqu'une touche est pressée :

  • Si la touche n'est ni "*" ni "#", ajoutez la touche à la chaîne de mot de passe saisie par l'utilisateur.
  • Si la touche est "#", comparez la chaîne saisie par l'utilisateur avec les mots de passe prédéfinis pour décider si le mot de passe saisi est correct, puis effacez la chaîne de mot de passe saisie par l'utilisateur.
  • Si la touche est "*", effacez la chaîne de mot de passe saisie par l'utilisateur.

Clavier - Code de mot de passe

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-keypad */ #include <Keypad.h> #define ROW_NUM 4 // 4 rows #define COLUMN_NUM 3 // 3 columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // The ESP8266 pins connect to the column pins Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "1234"; // 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("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Étapes rapides

  • Exécutez le code ci-dessus.
  • Ouvrez le moniteur série.
  • Appuyez sur les touches "123456" puis appuyez sur "#".
  • Ensuite, appuyez sur les touches "1234" puis appuyez sur "#".
  • Vérifiez le résultat sur le moniteur série.
COM6
Send
password is incorrect, try again password is correct
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!