Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Schlüsselloses Arduino-Türschlosssystem mit Tastatur und LCD

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
SparkFun-Tastenfeld 4x4 - LED-kompatibel
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
Relais (generisch)
× 1
9-V-Batterie (generisch)
× 1
Single Turn Potentiometer - 10k Ohm
× 1
Widerstand 10k Ohm
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Arduino Keyless Door Lock System mit Tastatur und LCD

  0

0

Von Ali Hamza

In diesem Projekt werden wir ein schlüsselloses Türschlosssystem herstellen, das eine 4X4-Tastatur zur Eingabe der Schlüssel und ein DC-Schloss zum Öffnen oder Schließen der Tür verwendet. Zur Anzeige wird ein 16 × 2 großes LCD verwendet.

Erforderliche Komponenten

Die für dieses Projekt erforderlichen Komponenten sind wie folgt

  • Arduino
  • 4X4-Tastatur
  • LCD
  • DC-Sperre
  • Relais
  • 9-V-Batterie
  • 10k-Potentiometer
  • 220-Ohm-Widerstand

Wie funktioniert es?

Jedes Mal, wenn die Tasten gedrückt werden, werden sie mit den bereits gespeicherten Tasten abgeglichen. Wenn die gedrückten Tasten mit dem im EEPROM gespeicherten Anfangspasswort „1234“ übereinstimmen, öffnet sich das Schloss. Wenn das Passwort nicht übereinstimmt, wird „Zugriff verweigert“ auf dem LCD gedruckt.

Wenn die Taste „#“ gedrückt wird, werden Sie aufgefordert, das aktuelle Passwort einzugeben, und wenn es übereinstimmt, werden Sie aufgefordert, das neue Passwort einzugeben und das Passwort wird geändert.

Schaltplan

Verbinden Sie zuerst die 4X4-Tastatur mit dem Arduino; Verbinden Sie die ersten sechs Pins der 4X4-Tastatur mit den A0- und A5-Pins des Arduino. Verbinden Sie dann die letzten beiden Pins des 4X4-Tastaturmoduls mit den digitalen Pins 3 und 2 des Arduino.

Verbinden Sie danach das LCD mit dem Arduino. Die Anschlüsse zum Verbinden des LCD mit dem Arduino sind wie folgt

  • Verbinden Sie Pin 1 auf dem LCD, das ist der VSS-Pin, mit GND auf dem Arduino
  • Verbinden Sie Pin 2, den VDD-Pin, mit dem 5V-Pin des Arduino
  • Verbinden Sie Pin 3, das V0, mit der Mitte des 10k-Potentiometers und verbinden Sie die anderen beiden Pins des Potentiometers mit 5V und GND auf dem Arduino. Dieser Pin dient zum Einstellen des LCD-Kontrasts.
  • Verbinden Sie Pin 4, den RS-Pin, mit Pin 7 auf dem Arduino
  • Verbinden Sie Pin 5, den R/W-Pin, mit dem GND-Pin des Arduino
  • Verbinden Sie Pin 6, den Enable-Pin, mit Pin 6 auf dem Arduino
  • Verbinde die Pins 11, 12, 13 und 14, die die Datenpins sind, mit den Pins 5, 4, 3 und 2 auf dem Arduino
  • Verbinden Sie Pin 15, den Hintergrundbeleuchtungspin des LCD, über den 220-Ohm-Widerstand mit 5 V am Arduino.
  • Verbinden Sie Pin 16 auf dem Arduino, den negativen Pin der Hintergrundbeleuchtung, mit GND auf dem Arduino

Zuletzt verbinden wir die DC-Sperre mit dem Arduino. Das Schloss arbeitet mit einer Spannung von 7 bis 12 V, sodass wir es nicht direkt mit dem Arduino verbinden können. Um es mit dem Arduino zu verbinden, benötigen wir ein Relais und eine Batterie.

Verbinden Sie den Signalpin des Relais mit Pin 10 auf dem Arduino und die VCC und GND des Schlosses mit 5V und GND auf dem Arduino. Verbinden Sie dann am anderen Ende des Relais den Minuspol der Batterie mit der Masse am Relais und den NO (Normalerweise offen) am Relais an einer Seite des Schlosses. Verbinden Sie dann die andere Seite des Schlosses mit dem Pluspol der Batterie.

Arduino-Tastatursperrcode

Das anfängliche Passwort ist 1234.

#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4]; char initial_password[4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; const-Byte-Spalten =4; char hexaKeys[Zeilen][Spalten] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte column_pins[Spalten] ={A4,A5,3,2}; Keypad keyboard_key =Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, column);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print("DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Elektronisches Schloss"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print (key_pressed); }  if(i==4)  {    Verzögerung(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass akzeptiert"); digitalWrite (Relais_Pin, LOW); Verzögerung (2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Zur Änderung # drücken"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben:"); liquid_crystal_display.setCursor(0,1); i=0; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Falsches Passwort"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Zum Ändern # drücken"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); i=0; }  }}void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Aktuelles Passwort"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print (Schlüssel); }    key=0; }  Verzögerung(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Falsches Passwort"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Erneut versuchen"); Verzögerung (1000); }  sonst  {    j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Neues Passwort:"); liquid_crystal_display.setCursor(0,1); while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key; liquid_crystal_display.print (Schlüssel); EEPROM.write (j, Schlüssel); j++; }    }    liquid_crystal_display.print("Pass geändert"); Verzögerung (1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}  

Code-Erklärung

Zuallererst werden wir die Bibliotheken für die 4X4-Tastatur, das LCD und eine Bibliothek zum Speichern des Passworts einschließen. Die EEPROM-Bibliothek wird verwendet, um das Passwort zu speichern. Das darin gespeicherte Standardpasswort lautet „1234“.

#include #include#include  

Bei der Loop-Funktion wird die gedrückte Taste in der Datei „key_pressed . gespeichert ’ und wird mit den anderen Schlüsseln verglichen. Wenn die gedrückte Taste '#' ist, wird die Änderungsfunktion aufgerufen und nach dem neuen Passwort gefragt.

key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change(); 

Die gedrückten Tasten werden im „Passwort . gespeichert ’-Variable und diese werden auf dem LCD angezeigt, wenn die Tasten gedrückt werden. Dann werden diese Schlüssel mit dem im EEPROM gespeicherten Anfangspasswort abgeglichen. Wenn die gedrückten Tasten mit dem anfänglichen Passwort übereinstimmen, wird das Schloss geöffnet und auf dem LCD wird „Pass akzeptiert“ gedruckt. Wenn das Passwort nicht übereinstimmt, werden Sie aufgefordert, das Passwort erneut einzugeben.

if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print (key_pressed); }if(i==4)  {    Verzögerung(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass akzeptiert"); digitalWrite (Relais_Pin, LOW); Verzögerung(2000); 

Wenn die Taste '#' gedrückt wird, wird die 'change() . aufgerufen ’-Funktion. In der Änderungsfunktion werden Sie aufgefordert, das aktuelle Passwort einzugeben. Wenn das aktuelle Passwort korrekt ist, werden Sie aufgefordert, das neue Passwort einzugeben. Nach Eingabe des neuen Passworts wird das Passwort geändert.

void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Aktuelles Passwort"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print (Schlüssel); }    key=0; }  Verzögerung(500); 

Tags:4x4 Tastatur, Arduino, DC Lock, Keylock, Tastatur, LCD, Lock

Empfohlene Beiträge

Arduino-Wecker mit Echtzeituhr und LCD-Bildschirm

So bauen Sie einen selbstbalancierenden Arduino-Roboter

Verwenden Sie ein Arduino und ein Magnetventil, um einen Toaster-Tanz zu machen

Machen Sie mit Arduino ein automatisches Bewässerungssystem zum Selbermachen

Code

  • Code-Snippet Nr. 1
  • Code-Snippet 2
  • Code-Snippet #3
  • Code-Snippet Nr. 4
  • Code-Snippet Nr. 5
Code-Snippet Nr. 1Nur-Text
#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4];char initial_password[ 4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; const-Byte-Spalten =4; char hexaKeys[Zeilen][Spalten] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte column_pins[Spalten] ={A4,A5,3,2}; Keypad keyboard_key =Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, column);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print("DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Elektronisches Schloss"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print (key_pressed); }  if(i==4)  {    Verzögerung(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass akzeptiert"); digitalWrite (Relais_Pin, LOW); Verzögerung (2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Zur Änderung # drücken"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben:"); liquid_crystal_display.setCursor(0,1); i=0; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Falsches Passwort"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Zum Ändern # drücken"); Verzögerung (2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); i=0; }  }}void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Aktuelles Passwort"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print (Schlüssel); }    key=0; }  Verzögerung(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Falsches Passwort"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Erneut versuchen"); Verzögerung (1000); }  sonst  {    j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Neues Passwort:"); liquid_crystal_display.setCursor(0,1); while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key; liquid_crystal_display.print (Schlüssel); EEPROM.write (j, Schlüssel); j++; }    }    liquid_crystal_display.print("Pass geändert"); Verzögerung (1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Passwort eingeben"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}
Code-Snippet #2Klartext
#include #include#include
Code-Snippet #3Kurztext
key_pressed =keyboard_key.getKey(); if(key_pressed=='#')    change();
Code-Snippet #4Nur-Text
if (key_pressed)  {    Passwort[i++]=key_pressed; liquid_crystal_display.print (key_pressed); }if(i==4)  {    Verzögerung(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Pass akzeptiert"); digitalWrite (Relais_Pin, LOW); Verzögerung(2000);
Code-Snippet #5Klartext
void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Aktuelles Passwort"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print (Schlüssel); }    key=0; }  Verzögerung(500);

Schaltpläne

Verwenden Sie einen Arduino, um ein Magnettürschloss zu steuern, das mit der richtigen Tastenkombination geöffnet werden kann.

Herstellungsprozess

  1. Arduino-Gyroskop-Spiel mit MPU-6050
  2. Anwesenheitssystem mit Arduino und RFID mit Python
  3. DHT11-Sensor mit LEDs und einem Piezo-Lautsprecher
  4. LCD-Animation und -Spiele
  5. Unopad - Arduino MIDI-Controller mit Ableton
  6. Temperatur- und Feuchtigkeitsdatenlogger
  7. Einfacher Hindernissensor mit Arduino
  8. 4x4x4 LED-Würfel mit Arduino Uno und 1sheeld
  9. Arduino-basierter Drehzahlmesser mit neuem und schnellerem Algorithmus
  10. Anwesenheitssystem basierend auf Arduino und Google Spreadsheet