Arduino Nano ESP32 - Türschloss-System mit Passwort

Dieses Tutorial zeigt Ihnen, wie Sie ESP32, Keypad und eine elektromagnetische Türverriegelung verwenden, um ein Türverriegelungssystem zu erstellen. Die Benutzer werden über das Keypad nach dem Passwort gefragt. Wenn das Passwort gültig ist, steuert der Arduino Nano ESP32 die elektromagnetische Türverriegelung, um die Tür zu entriegeln. Die Tutorials fügen optional ein LCD-Display hinzu, um mehr Bequemlichkeit zu bieten. Der Arduino Nano ESP32-Code unterstützt außerdem mehrere Passwörter.

Erforderliche Hardware

1×Arduino Nano ESP32
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×Elektromagnetisches Schloss
1×12V Netzteil
1×Breadboard
1×Verbindungskabel
1×(Optional) LCD I2C
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

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 Ziffernblock, elektromagnetisches Schloss und LCD

Wir haben spezielle Tutorials zu Kypad, elektromagnetischem Schloss und LCD. Jedes Tutorial enthält detaillierte Informationen und eine Schritt-für-Schritt-Anleitung zur Hardware-Pinbelegung, zum Funktionsprinzip, zur Verdrahtung zum ESP32, zum Arduino Nano ESP32-Code... Erfahren Sie mehr darüber in den folgenden Links:

Wie prüft man das Passwort

  • Eine spezielle Taste * wird verwendet, um das Passwort zurückzusetzen.
  • Eine spezielle Taste # wird verwendet, um die Passworteingabe zu beenden.
  • Jede eingegebene Taste, mit Ausnahme von * und #, wird zu einem String hinzugefügt.
  • Wenn die # Taste gedrückt wird, ist die Passworteingabe abgeschlossen. Der Arduino Nano ESP32 vergleicht den eingegebenen String mit vordefinierten Passwörtern.
  • Wenn das eingegebene Passwort gültig ist, wird die Tür entriegelt.

Verdrahtungsdiagramm

Schaltplan für das Türschloss-System Arduino Nano ESP32

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

Arduino Nano ESP32-Code - Türschloss-System mit Passwort über Tastatur, elektromagnetisches Türschloss

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-door-lock-system-using-password */ #include <Keypad.h> #define RELAY_PIN D2 // The Arduino Nano ESP32 pin 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] = {D10, D9, D8, D7}; // The Arduino Nano ESP32 pin connected to the row pins byte pin_column[COLUMN_NUM] = {D6, D5, D4}; // The Arduino Nano ESP32 pin connected to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "1234"; // change your password here const String password_2 = "4444"; // 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 32 pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, HIGH); // 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("Valid Password => unlock the door"); digitalWrite(RELAY_PIN, LOW); // unlock the door for 20 seconds delay(20000); digitalWrite(RELAY_PIN, HIGH); // lock the door } else { Serial.println("Invalid Password => Try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Schnelle Schritte

Um mit dem Arduino Nano ESP32 zu beginnen, folgen Sie diesen Schritten:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Nano ESP32 in der Arduino IDE (BASE_URL/tutorials/arduino-nano-esp32/arduino-nano-esp32-software-installation).
  • Verbinden Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Anschluss aus. Klicken Sie im linken Bereich der Arduino IDE auf das Libraries-Symbol.
  • Geben Sie im Suchfeld „keypad“ ein und suchen Sie anschließend nach der keypad-Bibliothek von Mark Stanley und Alexander Brevig.
  • Klicken Sie auf die Schaltfläche Installieren, um die keypad-Bibliothek zu installieren.
Arduino Nano ESP32 Keypad-Bibliothek
  • 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 Arduino Nano ESP32-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Hochladen klicken.
  • Um den in der Tür installierten Elektromagneten zu simulieren, positionieren Sie den Elektromagneten nahe der Armaturplatte.
  • Drücken Sie die Tasten 1111 und danach #.
  • Überprüfen Sie die Anziehungskraft zwischen dem Elektromagneten und der Armaturplatte.
  • Drücken Sie die Tasten 1234 und danach #.
  • Überprüfen Sie die Anziehungskraft zwischen dem Elektromagneten und der Armaturplatte.
  • Zeigen Sie das Ergebnis im Serial Monitor an.
COM6
Send
Invalid Password => Try again Valid Password => unlock the door
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Arduino Nano ESP32-Code – Türschloss-System mit Passwort, das ein Keypad, ein elektromagnetisches Schloss und ein LCD verwendet

Der folgende Code fügt LCD-I2C hinzu, um den Zugriffsstatus anzuzeigen. Für die Verdrahtung mit dem LCD sehen Sie sich dieses Tutorial an Esp32 - LCD I2C Tutorial.

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-door-lock-system-using-password */ #include <LiquidCrystal_I2C.h> #include <Keypad.h> #define RELAY_PIN D2 // The Arduino Nano ESP32 pin 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] = {D10, D9, D8, D7}; // The Arduino Nano ESP32 pin connected to the row pins byte pin_column[COLUMN_NUM] = {D6, D5, D4}; // The Arduino Nano ESP32 pin connected to the column pins Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "1234"; // change your password here const String password_2 = "4444"; // change your password here const String password_3 = "55555"; // change your password here String input_password; LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 32 pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, HIGH); lcd.init(); // initialize the lcd lcd.backlight(); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password lcd.clear(); } else if (key == '#') { lcd.clear(); if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("Valid Password => unlock the door"); lcd.setCursor(0, 0); lcd.print("CORRECT!"); lcd.setCursor(0, 1); lcd.print("DOOR UNLOCKED!"); digitalWrite(RELAY_PIN, LOW); // unlock the door for 20 seconds delay(20000); digitalWrite(RELAY_PIN, HIGH); // lock the door } else { Serial.println("Invalid Password => Try again"); lcd.setCursor(0, 0); lcd.print("INCORRECT!"); lcd.setCursor(0, 1); lcd.print("ACCESS DENIED!"); } input_password = ""; // reset the input password } else { if (input_password.length() == 0) { lcd.clear(); } input_password += key; // append new character to input password string lcd.setCursor(input_password.length(), 0); // move cursor to new position lcd.print('*'); // print * key as hiden character } } }

※ Notiz:

Die LCD-I2C-Adresse kann je nach Hersteller unterschiedlich sein. Im Code haben wir die Adresse 0x27 verwendet, die vom Hersteller DIYables vorgegeben ist.

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!