ESP32 - Tastatur

Dieses Tutorial erklärt Ihnen, wie Sie den ESP32 mit einem Tastenfeld verwenden. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Tastenfeld 3x4 and 4x4 Kit
1×(Alternativ) Tastenfeld 3x4
1×(Alternativ) Tastenfeld 4x4
1×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das Keypad

Ziffernblock

Das Tastfeld besteht aus einer Gruppe von Tasten, die in einer Matrix angeordnet sind (Zeilen und Spalten). Eine Taste entspricht einer Taste. Es gibt viele Arten von Tastaturen. Das 3x4-Tastfeld (12 Tasten) und das 4x4-Tastfeld (16 Tasten) sind zwei der am häufigsten verwendeten Tastfelder bei DIY-Projekten.

Keypad Pinbelegung

Die Pins des Keypads werden in zwei Gruppen unterteilt: Zeilen- und Spaltenpins.

  • Die 3x4-Tastatur hat 7 Anschlüsse:
    • R1, R2, R3, R4: Zeilenanschlüsse
    • C1, C2, C3: Spaltenanschlüsse
  • Die 4x4-Tastatur hat 8 Anschlüsse:
    • R1, R2, R3, R4: Zeilenanschlüsse
    • C1, C2, C3, C4: Spaltenanschlüsse
    Keypad-Pinbelegung

    Wie das Keypad funktioniert

    Siehe wie das Keypad funktioniert

Verdrahtungsdiagramm zwischen Tastenfeld und ESP32

ESP32 - Tastenfeld 3x4 Verdrahtungsdiagramm

  • Wie man ESP32 und ein 3x4-Tastenfeld mit einem Steckbrett verbindet Steckbrett
ESP32-Tastatur 3×4 Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Wie man ESP32 und ein 3×4-Tastenfeld verbindet

ESP32 – 4x4-Tastatur Verdrahtungsdiagramm

  • Wie man ESP32 und eine 4x4-Tastatur mit Steckbrett anschließt
ESP32-Tastenfeld 4x4 Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wie man ESP32 und eine 4x4-Tastatur anschließt.

ESP32-Code

Ziffernblock 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] = {18, 5, 17, 16}; // GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins byte pin_column[COLUMN_NUM] = {4, 0, 2}; // GPIO4, GPIO0, GPIO2 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); } }

4×4-Tastenfeld

#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] = {19, 18, 5, 17}; // GPIO19, GPIO18, GPIO5, GPIO17 connect to the row pins byte pin_column[COLUMN_NUM] = {16, 4, 0, 2}; // GPIO16, GPIO4, GPIO0, GPIO2 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); } }

Schnelle Schritte

  • Falls dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet an.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
  • Geben Sie keypad in das Suchfeld ein, dann suchen Sie nach der keypad-Bibliothek von Mark Stanley, Alexander Brevig.
  • Klicken Sie auf die Installieren-Schaltfläche, um die keypad-Bibliothek zu installieren.
ESP32-Tastenfeldbibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Kompilieren Sie den Code und laden Sie ihn auf das ESP32-Board hoch, indem Sie auf die Schaltfläche Hochladen in der Arduino-IDE klicken.
  • Öffnen Sie den Seriellen Monitor in der Arduino-IDE.
Wie öffnet man den seriellen Monitor in der Arduino-IDE?
  • Drücken Sie einige Tasten auf dem Tastenfeld.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
1 2 3 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tastatur und Passwort

Das Tastenfeld wird häufig verwendet, um jemanden anhand eines Passworts zu authentifizieren. In diesem Tutorial ist im Code ein gültiges Passwort vorgegeben. Wenn ein Benutzer das Passwort über das Tastenfeld eingibt, wird es mit dem vordefinierten Passwort verglichen:

  • Wenn es übereinstimmt, wird der Zugriff gewährt.
  • Andernfalls wird der Zugriff definiert.

Um ein Passwort mit dem Tastenfeld zu verwenden, geben wir zwei spezielle Tasten an:

  • Eine Taste, um die Eingabe des Passworts zu starten. Zum Beispiel die Taste "*"
  • Eine Taste, um die Eingabe des Passworts zu beenden. Zum Beispiel die Taste "#"

Das vom Benutzer eingegebene Passwort wird in einer Zeichenkette gespeichert, die als eingegebene Passwort-Zeichenfolge bezeichnet wird. Wenn eine Taste gedrückt wird:

  • Wenn ein eingegebener Schlüssel "*" ist, wird die eingegebene Passwortzeichenfolge gelöscht, um ein neues Passwort zu erstellen.
  • Wenn ein eingegebener Schlüssel weder "*" noch "#" ist, füge den Schlüssel zur eingegebenen Passwortzeichenfolge hinzu.
  • Wenn ein eingegebener Schlüssel "#" ist, vergleiche die eingegebene Passwortzeichenfolge mit dem vordefinierten Passwort.

Tastatur - Passwort-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-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] = {18, 5, 17, 16}; // GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins byte pin_column[COLUMN_NUM] = {4, 0, 2}; // GPIO4, GPIO0, GPIO2 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 } } }
  • Führe den obigen Code aus
  • Öffne den seriellen Monitor in der Arduino-IDE
So öffnen Sie den seriellen Monitor in der Arduino IDE.
  • Drücken Sie die Tasten "123456" und drücken Sie "#"
  • Drücken Sie die Tasten "7890" und drücken Sie "#"
  • Sehen Sie das Ergebnis im seriellen Monitor. Es sieht wie folgt aus:
COM6
Send
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!