ESP8266 - Tastatur

Diese Anleitung zeigt Ihnen, wie Sie den ESP8266 mit einer 3×4- und einer 4×4-Tastatur verwenden. Im Detail werden wir lernen:

Erforderliche Hardware

1×ESP8266 NodeMCU
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×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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

Ein Tastenfeld ist eine Ansammlung von Tasten, die in Reihen und Spalten angeordnet sind und als Matrix bezeichnet werden. Jede Taste wird als Taste bezeichnet. Tastenfelder gibt es in verschiedenen Ausführungen. Zwei der gebräuchlichsten für DIY-Projekte sind das 3×4-Tastenfeld (mit 12 Tasten) und das 4×4-Tastenfeld (mit 16 Tasten).

Die Pinbelegung des Keypads

Die Pins werden in zwei Gruppen eingeteilt: Zeilen und Spalten.

  • Eine 3x4-Tastatur hat 7 Pins: Vier Pins für die Zeilen (mit den Bezeichnungen R1, R2, R3 und R4) und vier Pins für die Spalten (mit den Bezeichnungen C1, C2 und C3).
  • Eine 4x4-Tastatur hat 8 Pins: Vier Pins für die Zeilen (mit den Bezeichnungen R1, R2, R3 und R4) und vier Pins für die Spalten (mit den Bezeichnungen C1, C2 und C3 und C4).
Pinbelegung des Tastfelds

Verdrahtungsdiagramm

  • ESP8266 - 3x4-Tastatur-Verdrahtungsdiagramm
ESP8266 NodeMCU-Tastenfeld-Verdrahtungsdiagramm

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

  • ESP8266 - 4x4-Tastatur-Verdrahtungsdiagramm
ESP8266 NodeMCU Tastatur-Verdrahtungsdiagramm

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

※ Notiz:

Sie können die ESP8266-Pins ändern, die mit den Keypad-Pins verbunden sind. Sie sollten jedoch vermeiden, den Pin D8 für das Keypad zu verwenden. Wenn die ESP8266-Pins jedoch nicht ausreichen, können Sie den Pin D8 für das Keypad verwenden, aber MÜSSEN Sie die untenstehenden Anweisungen befolgen:

  • Verwenden Sie NICHT den ESP8266-Pin D8 für Zeilenpins.
  • Wenn Sie den ESP8266-Pin D8 für einen Spaltenpin verwenden, MÜSSEN Sie die Keypad-Bibliothek wie folgt ändern:
    • Finden Sie die Arduino\libraries\Keypad\src\Keypad.cpp-Datei, gehen Sie zur Zeile 98, wo es so aussieht: pin_mode(columnPins[c], INPUT);
    • Kommentieren Sie diese Zeile aus. Nach der Änderung sollte der Code in Zeile 98 so aussehen: //pin_mode(columnPins[c], INPUT);

ESP8266-Code

ESP8266-Code für 3x4-Tastatur

#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); } }

ESP8266-Code für 4x4-Tastatur

#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); } }

Schnelle Schritte

Um mit ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial Tutorial zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls dies dein erster Kontakt mit dem ESP8266 ist.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Verbinde das ESP8266-Board über ein USB-Kabel mit deinem Computer.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, zum Beispiel (z. B. NodeMCU 1.0 (ESP-12E Modul)), und den entsprechenden COM-Port.
  • Klicke auf das Symbol Bibliotheken in der linken Leiste der Arduino IDE.
  • Suche nach „keypad“ und finde die von Mark Stanley und Alexander Brevig erstellte keypad-Bibliothek.
  • Klicke dann auf die Install-Schaltfläche, um die Installation der keypad-Bibliothek abzuschließen.
ESP8266 NodeMCU-Tastaturbibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Sobald es geöffnet ist, klicken Sie auf die Hochladen-Schaltfläche, um den Code auf den ESP8266 hochzuladen.
  • Öffnen Sie den Seriellen Monitor.
  • Drücken Sie einige Tasten auf dem Keypad.
  • Überprüfen Sie den Seriellen Monitor, um das Ergebnis zu sehen.
COM6
Send
3 6 9 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Tastatur und Passwort

Eine gängige Verwendung eines Tastenfelds besteht darin, Passwörter einzugeben. Wir verwenden in der Regel zwei bestimmte Tasten für diesen Zweck:

  • Eine Taste, um die Passworteingabe zu initiieren oder neu zu starten. Beispielsweise die '*'-Taste.
  • Eine Taste, um die Passworteingabe zu beenden. Beispielsweise die '#'‑Taste.

Das Passwort besteht aus einer Zeichenkette, die alle anderen Zeichen enthält, mit Ausnahme von zwei bestimmten Sonderzeichen.

Wenn eine Taste gedrückt wird:

  • Wenn der Schlüssel weder '*' noch '#' ist, füge den Schlüssel an die vom Benutzer eingegebene Passwort-Zeichenfolge an.
  • Wenn der Schlüssel '#', vergleiche die vom Benutzer eingegebene Zeichenfolge mit den vordefinierten Passwörtern, um zu entscheiden, ob das eingegebene Passwort korrekt ist, und lösche anschließend die vom Benutzer eingegebene Passwort-Zeichenfolge.
  • Wenn der Schlüssel '*', lösche die vom Benutzer eingegebene Passwort-Zeichenfolge.

Ziffernblock - Passwortcode

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/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 } } }

Schnelle Schritte

  • Führe den obigen Code aus.
  • Öffne den seriellen Monitor.
  • Drücke die Tasten "123456" und dann "#".
  • Anschließend drücke die Tasten "1234" und dann "#".
  • Schau dir das Ergebnis im seriellen Monitor an.
COM6
Send
password is incorrect, try again password is correct
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!