ESP32 S3 - Tastenfeld-Türschloss

Dieses Tutorial zeigt Ihnen, wie Sie mit einem Tastenfeld und einem Magnetschloss am ESP32 S3 ein passwortgesteuertes Türschlosssystem bauen. Wenn der Benutzer am Tastenfeld das richtige Passwort eingibt, aktiviert der ESP32 S3 das Magnetschloss, um die Tür zu entriegeln, hält sie 20 Sekunden lang offen und verriegelt sie dann automatisch wieder.

Der ESP32-S3-Code unterstützt mehrere Passwörter, sodass Sie mehr als einen gültigen Zugangscode für verschiedene Benutzer oder Szenarien festlegen können.

Was Sie umsetzen werden:

  1. Eine Schaltung, die ein 3x4-Tastenfeld, ein Relais und ein Magnetschloss mit dem ESP32 S3 verbindet
  2. Einen Sketch, der ein Passwort über das Tastenfeld einliest und die Tür entriegelt, wenn das richtige Passwort eingegeben wird
  3. Einen Mechanismus zur automatischen Wiederverriegelung, der die Tür nach 20 Sekunden wieder sichert
  4. Eine Grundlage für Zugangskontroll- und Smart-Lock-Projekte mit dem ESP32 S3

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera 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×Tastenfeld 3x4
1×Relais
1×Magnetschloss
1×12V Netzteil
1×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 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 Keypad and Solenoid Lock

Ein Tastenfeld bietet Benutzern eine vertraute und sichere Möglichkeit, numerische oder alphanumerische Passwörter direkt in ein Embedded-System einzugeben, ohne ein externes Gerät zu benötigen. Ein Magnetschloss wandelt ein elektrisches Signal des ESP32 S3 (über ein Relais) in eine mechanische Riegelbewegung um und ist damit der ideale Aktor für die physische Zugangskontrolle. Zusammen bilden sie ein eigenständiges, kostengünstiges Türschloss, das weder ein Smartphone noch eine Netzwerkverbindung benötigt.

Wichtige Spezifikationen

Wir haben eigene Tutorials, die jede Komponente ausführlich behandeln. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zu Pinbelegung, Funktionsprinzip, Verdrahtung mit dem ESP32 S3 und Arduino-Code. Mehr dazu erfahren Sie unter den folgenden Links:

Verdrahtungsdiagramm

Schließen Sie Tastenfeld, Relais und Magnetschloss gemäß dem folgenden Schaltplan an Ihren ESP32 S3 an. Überprüfen Sie alle Verbindungen, bevor Sie die Stromversorgung einschalten, insbesondere auf der Hochspannungsseite des Relais, das das Magnetschloss ansteuert.

ESP32 S3 Tastenfeld Magnetschloss Schaltplan

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

Für ein dauerhaftes Projekt halten Schraubklemmen die Kabel besser als Jumperkabel. Sie können den ESP32 S3 auf ein Schraubklemmen-Board für ESP32 S3 stecken und die Kabel an seine Schraubklemmen anschließen. Hier ist dieselbe Schaltung, verdrahtet über das Schraubklemmen-Board:

ESP32 S3 Tastenfeld Magnetschloss Schaltplan (Screw Terminal)

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

Hier ist dieselbe Schaltung mit einem GPIO-Breakout-Board für ESP32 S3, das jeden GPIO auf Stiftleisten herausführt:

ESP32 S3 Tastenfeld Magnetschloss Schaltplan (GPIO Breakout Board)

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

Sicherheitshinweise

Das Magnetschloss arbeitet mit 12 V DC und muss über das Relais versorgt werden, nicht direkt über die GPIO-Pins des ESP32 S3. Halten Sie die 12-V-Verkabelung räumlich getrennt von der Niederspannungsverkabelung des Tastenfelds und stellen Sie sicher, dass alle Schraubklemmen am Relais festgezogen sind, bevor Sie die Schaltung unter Spannung setzen.

Komponente Pin ESP32-S3-Pin
Tastenfeld Reihe 1 GPIO17
Tastenfeld Reihe 2 GPIO16
Tastenfeld Reihe 3 GPIO15
Tastenfeld Reihe 4 GPIO7
Tastenfeld Spalte 1 GPIO6
Tastenfeld Spalte 2 GPIO5
Tastenfeld Spalte 3 GPIO4
Relais DC- GND
Relais DC+ 5V
Relais IN GPIO18
Magnetschloss + Relais NO
Magnetschloss - 12V GND

ESP32-S3-Code - Türschlosssystem mit Passwort über Tastenfeld und Magnetschloss

Der folgende Code liest die Tastendrücke des Tastenfelds am ESP32 S3 aus, sammelt sie in einem Eingabe-String und aktiviert das Magnetschloss über das Relais, wenn das eingegebene Passwort mit einem der vordefinierten Passwörter übereinstimmt. Nach dem Entriegeln bleibt die Tür 20 Sekunden lang offen, danach schaltet der ESP32 S3 das Relais automatisch zurück, um sie wieder zu verriegeln.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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-s3/esp32-s3-keypad-door-lock */ #include <Keypad.h> #define RELAY_PIN 18 // ESP32-S3 pin GPIO18 connected to the relay #define ROW_NUM 4 // keypad four rows #define COLUMN_NUM 3 // keypad three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte pin_rows[ROW_NUM] = {17, 16, 15, 7}; // ESP32-S3 pin: GPIO17, GPIO16, GPIO15, GPIO7 connected to the row pins byte pin_column[COLUMN_NUM] = {6, 5, 4}; // ESP32-S3 pin: GPIO6, GPIO5, GPIO4 connected to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "1234567"; // change your password here const String password_2 = "987654"; // change your password here const String password_3 = "55555"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); // lock the door } void loop() { char key = keypad.getKey(); if (key){ Serial.println(key); if(key == '*') { input_password = ""; // reset the input password } else if(key == '#') { if(input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The password is correct, unlocking the door in 20 seconds"); digitalWrite(RELAY_PIN, HIGH); // unlock the door for 20 seconds delay(20000); digitalWrite(RELAY_PIN, LOW); // lock the door } else { Serial.println("The password is incorrect, try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie die Komponenten gemäß dem obigen Schaltplan.
  3. Verbinden Sie das ESP32-S3-Board über ein USB-Type-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie im Menü Tools das richtige ESP32-S3-Board und den richtigen COM-Port aus.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Suchen Sie nach "keypad" und finden Sie die Keypad-Bibliothek von Mark Stanley und Alexander Brevig.
  8. Klicken Sie auf Install, um die Keypad-Bibliothek zu installieren.
  • Search for DIYables_Keypad created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
DIYables_Keypad by DIYables.io
The library is designed for Arduino, ESP32, ESP8266... to use with keypad such as 3x4, 4x4 keypad. It also works with Arduino Uno R4 WiFi/Minima More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP32 S3 hochzuladen.
Arduino IDE Code hochladen
  1. Öffnen Sie den seriellen Monitor in der Arduino IDE.
  2. Drücken Sie die Tasten 12345 und dann # auf dem Tastenfeld.
  3. Drücken Sie die Tasten 1234567 und dann # auf dem Tastenfeld.
  4. Beobachten Sie 20 Sekunden lang den Zustand des Riegels am Magnetschloss.
  5. Profi-Tipp: Verwenden Sie jederzeit die Taste *, um Ihre aktuelle Eingabe zu löschen und das Passwort von vorne einzugeben.

Ausgabe im seriellen Monitor

Die folgende Ausgabe des seriellen Monitors zeigt, wie der ESP32 S3 in Echtzeit auf Passworteingaben reagiert. Richtige und falsche Versuche werden protokolliert, sodass Sie das Verhalten der Zugangskontrolle auf einen Blick überprüfen können.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 09:22:01] Key pressed: 1 [2026-06-16 09:22:02] Key pressed: 2 [2026-06-16 09:22:02] Key pressed: 3 [2026-06-16 09:22:03] Key pressed: 4 [2026-06-16 09:22:03] Key pressed: 5 [2026-06-16 09:22:04] The password is incorrect, try again [2026-06-16 09:22:10] Key pressed: 1 [2026-06-16 09:22:10] Key pressed: 2 [2026-06-16 09:22:11] Key pressed: 3 [2026-06-16 09:22:11] Key pressed: 4 [2026-06-16 09:22:12] Key pressed: 5 [2026-06-16 09:22:12] Key pressed: 6 [2026-06-16 09:22:13] Key pressed: 7 [2026-06-16 09:22:13] The password is correct, unlocking the door in 20 seconds
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Code-Erklärung

Die berechtigten Passwörter sind im ESP32-S3-Code vordefiniert. Eine String-Variable, der Eingabe-String, sammelt jede Taste, die der Benutzer drückt. Zwei Sondertasten auf dem Tastenfeld steuern den Ablauf: * löscht den Eingabe-String, damit Sie die Eingabe neu beginnen können, und # schließt sie ab und löst einen Vergleich aus. Wenn # gedrückt wird, wird der Eingabe-String mit jedem vordefinierten Passwort verglichen – stimmt er mit einem davon überein, wird das Relais aktiviert, um die Tür 20 Sekunden lang zu entriegeln, danach wird die Tür automatisch wieder verriegelt; unabhängig vom Ergebnis wird der Eingabe-String für den nächsten Versuch gelöscht.

※ Notiz:

  • Im obigen Code haben wir der Einfachheit halber die Funktion delay() verwendet. Für einen nicht blockierenden Ansatz sollten Sie stattdessen millis() verwenden. Siehe How to use millis() instead of delay().
  • Sie können einen Piezo-Summer hinzufügen, der bei jedem Tastendruck auf dem Tastenfeld einen Piepton ausgibt.
  • Im obigen Code verriegelt die Tür nach 20 Sekunden wieder. Sie können dies durch einen Türsensor ersetzen, sodass die Tür verriegelt, sobald der Sensor erkennt, dass sie geschlossen ist.

Anwendungs- und Projektideen

Sobald Sie die passwortgesteuerte Türverriegelung mit dem ESP32 S3 beherrschen, können Sie dieses Muster auf eine Vielzahl von Zugangskontroll- und Sicherheitsprojekten übertragen.

  1. Haustür: Ersetzen Sie ein herkömmliches Schlüsselschloss durch einen per Tastenfeld gesteuerten Magnetriegel und legen Sie eine Familien-PIN für den täglichen Zugang fest.
  2. Büroschrankschloss: Sichern Sie einen Aktenschrank oder ein Serverrack mit einer numerischen PIN, die nur berechtigte Mitarbeiter kennen.
  3. Schließfach: Fügen Sie einer Geldkassette ein Magnetschloss hinzu und verlangen Sie die richtige PIN, bevor der Deckel freigegeben wird.
  4. Umkleideschranksystem: Weisen Sie jedem Schrank eine eigene PIN zu und verwenden Sie für einen eigenständigen Betrieb einen ESP32 S3 pro Einheit.
  5. Zugang zu gemeinsamen Arbeitsbereichen: Aktualisieren Sie das Passwort durch erneutes Flashen der Firmware, sodass nur aktuelle Mitglieder eintreten können.
  6. Prototyp-Sicherheitslabor: Bauen Sie einen Testaufbau, der jeden Zugangsversuch zu Prüfzwecken auf einer seriellen Konsole oder SD-Karte protokolliert.

Video-Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32-S3-Projekt an.

Fordern Sie sich selbst heraus

Nachdem Sie mit dem ESP32 S3 ein Tastenfeld-Türschloss bauen können, probieren Sie diese zunehmend anspruchsvollen Erweiterungen aus, um Ihr Verständnis zu vertiefen und leistungsfähigere Projekte zu bauen.

  1. Anfänger: Ändern Sie das vordefinierte Passwort im Code in eine sechsstellige PIN und prüfen Sie, dass kürzere Eingaben immer abgelehnt werden.
  2. Anfänger: Fügen Sie eine LED-Anzeige hinzu, die bei einem richtigen Passwort grün und bei einem falschen rot leuchtet, um sofortiges visuelles Feedback zu geben.
  3. Fortgeschritten: Implementieren Sie einen Sperrmechanismus, der das Tastenfeld nach drei aufeinanderfolgenden falschen Passworteingaben für 60 Sekunden deaktiviert.
  4. Fortgeschritten: Speichern Sie die berechtigten Passwörter im EEPROM oder Flash, damit sie Stromunterbrechungen überstehen und ohne erneutes Flashen der Firmware aktualisiert werden können.
  5. Experte: Ersetzen Sie das feste 20-Sekunden-Entriegelungsfenster durch einen Türsensor, sodass die Tür in dem Moment wieder verriegelt, in dem sie physisch geschlossen wird.
  6. Experte: Fügen Sie eine Weboberfläche über WLAN hinzu, damit ein Administrator Passwörter ändern und das vollständige Zugangsprotokoll im Browser einsehen kann.

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