Password Security Lock Circuit mit 4 × 4-Tastatur und Arduino

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In diesem Beitrag werden wir eine Kennwortsicherheits-Sperrschaltung erstellen, auf die über ein 6-stelliges Kennwort zugegriffen werden kann. Genauer gesagt handelt es sich um ein alphanumerisches Passwort.

Hardware für dieses Projekt

Wir werden eine 4x4-Tastatur verwenden, die aus 0 bis 9 Dezimalwerten, zwei Sonderzeichen '#' und '*' sowie A bis D-Alphabeten besteht. Die Kombination dieser Zeichen kann als Passwort verwendet werden.



Das Arduino ist das Gehirn des Systems. Ein Relais ist mit Arduino verbunden, um es zu aktivieren und zu deaktivieren, wenn das richtige Passwort befohlen wird. Hier werden zwei Anzeige-LED verwendet, um den Status des Schließsystems anzuzeigen.

Wenn Sie mit der 4x4-Tastatur nicht vertraut sind, lesen Sie bitte meinen früheren Artikel, der ausführlich besprochen wurde Grundlagen der 4x4-Matrixtastatur



Das vorgeschlagene Projekt hat ein ziemlich minimalistisches Hardware-Design. Es besteht nur aus einer Tastatur, einem Relais, einem Arduino und einigen LEDs, selbst ein Neuling in Arduino kann dies problemlos erreichen.

Der einzige Teil, der in diesem Projekt etwas schwierig ist, ist die Codierung. Sie müssen sich keine Sorgen machen, dass der Code in diesem Projekt angegeben wird. Das Programm sollte so geschrieben sein, dass es narrensicher ist und kein Hijacker das System hacken kann.

Seien Sie jedoch vorsichtig, wenn Sie die Hardware verfügbar machen oder die Hardware dieses Projekts leicht zugänglich ist. Das Relais kann problemlos gehackt werden. Bewahren Sie dieses Projekt in einem gut geschützten Gehäuse auf.

Wie es funktioniert

Hinweis: Ein Strombegrenzungswiderstand von 4,7 K muss an die Basis des Transistors angeschlossen werden, was im Diagramm nicht dargestellt ist.

Lassen Sie uns nun sehen, wie diese Arduino-Passwortsicherheitsschaltschaltung funktioniert. Lesen Sie die folgenden Anweisungen sorgfältig durch, um die Schaltung zu betreiben.

Schaltplan

Arduino Password Security Lock Circuit mit 4x4-Tastatur

Hier sind die beiden Abbildungen zur Schnittstelle von Tastatur und Arduino:

Testergebnisse für Arduino Password Security Lock

• Wenn der Stromkreis eingeschaltet ist, werden Sie nach einem Kennwort gefragt, das Sie auf dem seriellen Monitor sehen können (der serielle Monitor ist nicht obligatorisch, kann jedoch zu Testzwecken verwendet werden).

• Geben Sie das Passwort ein, das Sie vor dem Kompilieren in das Programm eingegeben haben.

• Während Sie die Tasten drücken, blinkt die grüne LED eine Zehntelsekunde lang und zeigt damit an, dass der Benutzer eine Taste gedrückt hat.

• Nachdem Sie das 6-stellige Passwort eingegeben haben, drücken Sie 'D' auf der Tastatur, die als 'Enter' fungiert. Wenn Ihr Passwort korrekt ist, wird das Relais aktiviert und die grüne LED leuchtet auf.

• Um das Relais zu deaktivieren, drücken Sie auf der Tastatur „C“. Wenn dies erledigt ist, erlischt die grüne LED und das Relais wird deaktiviert. Kein anderer Schlüssel kann das Relais deaktivieren.

• Wenn das vom Benutzer eingegebene Passwort falsch ist, leuchtet die rote LED auf und der Benutzer muss 30 Sekunden warten, um den nächsten Versuch zu starten. Nach Ablauf der 30 Sekunden erlischt die rote LED und informiert den Benutzer darüber, dass das System bereit ist, Eingaben vom Benutzer zu erhalten.

• Wenn das Relais nach erfolgreicher Aktivierung deaktiviert wird, muss der Benutzer das Kennwort erneut eingeben und 'D' drücken, um das Relais erneut zu aktivieren.

Hier ist ein Sonderfall:

• Wenn das richtige Passwort eingegeben wird, wird das Relais aktiviert. Wenn der Benutzer nach erfolgreicher Deaktivierung einen falschen Tastendruck (nicht das gesamte Passwort) drückt, erkennt das Programm das falsche Passwort und der Benutzer muss weitere 30 Sekunden warten. Wenn dies ein Entführer war, wird die Anzahl der vom Entführer durchgeführten Versuche verzögert.

• Wenn beim ersten Versuch der richtige Tastendruck gedrückt wird, kann nur dann die nächste Taste eingegeben werden. Dies gilt nur für den ersten Tastendruck und nicht für alle aufeinanderfolgenden Tastenanschläge.

• Das Motto des oben erläuterten Konzepts besteht darin, die Anzahl der vom Entführer durchgeführten Versuche zu verzögern.

Programmcode:

//---------------------------------Program Developed by R.Girish--------------------------//
#include
const byte ROWS = 4
const byte COLS = 4
char pass[] = '123ABC' // 6 digit password only (no less or no more)
int OP=10
int green=12
int red=11
char key1
char key2
char key3
char key4
char key5
char key6
char dumpkey
char keyOK
char ok[]='D'
char offkey
char off[]='C'
int z
char keys[ROWS][COLS] =
{
{'D','#','0','*'},
{'C','9','8','7'},
{'B','6','5','4'},
{'A','3','2','1'}
}
byte rowPins[ROWS] = {6,7,8,9} //connect to the row pinouts of the keypad
byte colPins[COLS] = {2,3,4,5} //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS )
void setup()
{
Serial.begin(9600)
pinMode(OP,OUTPUT)
pinMode(green,OUTPUT)
pinMode(red,OUTPUT)
digitalWrite(OP,LOW)
}
void loop()
{
top:
Serial.println('')
Serial.println('[Press D = Enter]')
Serial.print('Enter the password: ')
key1=keypad.waitForKey()
if(key1 == pass[0])
{
digitalWrite(green,HIGH)
delay(100)
digitalWrite(green,LOW)
{
z=1
Serial.print('*')
goto A

}}
}}
sonst
{
gehe zu Dump
}}
ZU:
key2 = keypad.waitForKey ()
if (key2 == pass [1])
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
{
z = 2
Serial.print ('*')
gehe zu B.
}}
}}
sonst
{
gehe zu Dump
}}
B:
key3 = keypad.waitForKey ()
if (key3 == pass [2])
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
{
z = 3
Serial.print ('*')
gehe zu C.
}}
}}
sonst
{
gehe zu Dump
}}
C:
key4 = keypad.waitForKey ()
if (key4 == pass [3])
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
{
z = 4
Serial.print ('*')
gehe zu D.
}}
}}
sonst
{
gehe zu Dump
}}
D:
key5 = keypad.waitForKey ()
if (key5 == pass [4])
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
{
z = 5
Serial.print ('*')
gehe zu E.
}}
}}
sonst
{
gehe zu Dump
}}
IS:
key6 = keypad.waitForKey ()
if (key6 == pass [5])
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
{
z = 6
Serial.print ('*')
gehe ok
}}
}}
sonst
{
gehe zu Dump
}}
OK:
keyOK = keypad.waitForKey ()
if (keyOK == ok [0])
{
digitalWrite (OP, HIGH)
digitalWrite (grün, HOCH)
Serial.println ('')
Serial.println ('Relais aktiviert, drücken Sie' C ', um.n zu deaktivieren')
}}
sonst
{
Serial.println ('')
Serial.println ('Drücken Sie' D ', um einzugeben')
gehe ok
}}
aus:
offkey = keypad.waitForKey ()
if (offkey == off [0])
{
digitalWrite (OP, LOW)
digitalWrite (grün, NIEDRIG)
Serial.println ('Relais deaktiviert.n')
zur Spitze gehen
}}
sonst
{
Serial.println ('Drücken Sie' C 'zum Deaktivieren')
gehe weg
}}
Dump:
if (z == 0)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
if (z == 1)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
if (z == 2)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
if (z == 3)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
if (z == 4)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
if (z == 5)
{
digitalWrite (grün, HOCH)
Verzögerung (100)
digitalWrite (grün, NIEDRIG)
Serial.print ('*')
dumpkey = keypad.waitForKey ()
Serial.print ('*')
gehe zu Fehler
}}
Error:
Serial.println ('')
Serial.print ('Falsches Passwort, 30 Sekunden warten.')
digitalWrite (rot, HOCH)
Verzögerung (10000)
Verzögerung (10000)
Verzögerung (10000)
digitalWrite (rot, NIEDRIG)
zur Spitze gehen
}}
// --------------------------------- Programm entwickelt von R.Girish --------- ----------------- //

HINWEIS: So legen Sie das Passwort fest: char pass [] = '123ABC' // Nur 6-stelliges Passwort (nicht weniger oder nicht mehr)
Ändern Sie '123ABC' mit Ihrem eigenen Passwort im Anführungszeichen.

Stellen Sie sicher, dass das im Programm festgelegte Passwort NUR 6-stellig ist, nicht weniger oder nicht mehr, sondern genau 6-stellig. Andernfalls funktioniert das Programm nicht richtig.

Wenn Sie weitere Zweifel bezüglich der erläuterten Kennwortsicherheitsschaltung haben, können Sie diese gerne über Ihre Kommentare veröffentlichen




Zurück: Sunrise Sunset Simulator LED-Schaltung Weiter: Bluetooth Motor Controller Circuit