ESP32 - Tastenfeld 3x4

Dieses Tutorial zeigt Ihnen, wie Sie einen ESP32 und ein 3x4-Tastenfeld mit MicroPython verwenden. Im Einzelnen lernen wir:

ESP32 MicroPython 3x4-Tastenfeld

Erforderliche Hardware

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form board
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×Membrane Keypad 3x4
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 (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.

Überblick über 3x4 Keypad

Das 3x4-Tastenfeld hat 12 Folientasten, die in einem Raster aus Zeilen und Spalten angeordnet sind. Jede Taste entspricht einem Knopf.

Pinbelegung

Ein 3x4-Tastenfeld hat 7 Pins. Diese Pins teilen sich in zwei Typen auf: Zeilen und Spalten.

  • 4 Pins sind mit den Zeilen verbunden (R1, R2, R3, R4).
  • 3 Pins sind mit den Spalten verbunden (C1, C2, C3).
3x4-Tastenfeld Pinbelegung

Verdrahtungsdiagramm

  • So verbinden Sie ESP32 und 3x4-Tastenfeld über ein Breadboard
ESP32 MicroPython 3x4-Tastenfeld Schaltplan

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

So verbinden Sie ESP32 und 3x4-Tastenfeld

ESP32 MicroPython-Code

from DIYables_MicroPython_Keypad import Keypad import time NUM_ROWS = 4 NUM_COLS = 3 # Constants for GPIO pins ROW_PINS = [18, 5, 17, 16] # The ESP32 pin GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins COLUMN_PINS = [4, 0, 2] # The ESP32 pin GPIO4, GPIO0, GPIO2 connect to the column pins # Keymap corresponds to the layout of the keypad 3x4 KEYMAP = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#'] # Initialize the keypad keypad = Keypad(KEYMAP, ROW_PINS, COLUMN_PINS, NUM_ROWS, NUM_COLS) keypad.set_debounce_time(400) # 400ms, addjust it if it detects twice for single press print("Keypad 3x4 example") # Main loop to check for key presses while True: key = keypad.get_key() if key: print("Key pressed: ", key)

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verbinden Sie Ihren ESP32 wie im Schaltplan gezeigt mit dem 3x4-Tastenfeld.
  • Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Navigieren Sie in der Thonny IDE zu Tools Manage packages.
  • Suchen Sie nach “DIYables-MicroPython-Keypad” und finden Sie die von DIYables erstellte Keypad-Bibliothek.
  • Klicken Sie auf DIYables-MicroPython-Keypad und dann auf die Schaltfläche Install, um die Keypad-Bibliothek zu installieren.
ESP32 MicroPython Keypad-Bibliothek
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Drücken Sie einige Tasten auf Ihrem Tastenfeld.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Key pressed: 3 Key pressed: 6 Key pressed: 9 Key pressed: 4 Key pressed: * Key pressed: #
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Wenn es nicht funktioniert, überprüfen Sie bitte sorgfältig Ihre Verdrahtung. Beim Anschließen des ESP32 an das 3x4-Tastenfeld kommt es sehr leicht zu Verwechslungen.

Tastenfeld und Passwort

Ein Tastenfeld wird häufig zur Eingabe eines Passworts verwendet. Hier konzentrieren wir uns auf zwei wichtige Tasten:

  • Eine Taste zum Starten oder Neustarten der Passworteingabe. Verwenden Sie zum Beispiel die Taste "*".
  • Eine Taste zum Abschließen der Eingabe. Verwenden Sie zum Beispiel die Taste "#".

Das Passwort besteht aus den übrigen Tasten; die beiden Sondertasten gehören nicht dazu.

Wenn Sie eine Taste drücken:

  • Ist die Taste weder "*" noch "#", wird sie dem eingegebenen Passwort hinzugefügt.
  • Ist die Taste "#", wird geprüft, ob das eingegebene Passwort korrekt ist, und es wird anschließend gelöscht.
  • Ist die Taste "*", wird das Passwort gelöscht.

Tastenfeld - Passwort-Code

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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-micropython/esp32-micropython-keypad-3x4 */ from DIYables_MicroPython_Keypad import Keypad import time NUM_ROWS = 4 NUM_COLS = 3 # Constants for GPIO pins ROW_PINS = [18, 5, 17, 16] # The ESP32 pin GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins COLUMN_PINS = [4, 0, 2] # The ESP32 pin GPIO4, GPIO0, GPIO2 connect to the column pins # Keymap corresponds to the layout of the keypad 3x4 KEYMAP = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#'] # Initialize the keypad keypad = Keypad(KEYMAP, ROW_PINS, COLUMN_PINS, NUM_ROWS, NUM_COLS) keypad.set_debounce_time(400) # 400ms, addjust it if it detects twice for single press # Define the correct password correct_password = "1234" input_password = "" print("Keypad 3x4 password") # Main loop while True: key = keypad.get_key() if key: print(key) if key == '*': input_password = "" # Clear input password elif key == '#': if input_password == correct_password: print("Password is correct") # DO YOUR WORK HERE else: print("Password is incorrect, try again") input_password = "" # Clear input password else: input_password += key # Append new character to input password string
  • Kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Thonny IDE ein.
  • Speichern Sie das Skript auf Ihrem ESP32.
  • Geben Sie "123" ein und drücken Sie anschließend “#”.
  • Geben Sie "1234" ein und drücken Sie dann "#".
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot MPY: soft reboot Keypad 3x4 password 1 2 3 # Password is incorrect, try again 1 2 3 4 # Password is correct
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

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.

Verwandte Tutorials

※ 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!