Indholdsfortegnelse:

Safe Box: 3 trin
Safe Box: 3 trin

Video: Safe Box: 3 trin

Video: Safe Box: 3 trin
Video: Best Biometric Safe Boxes 2023 [Favorable For Your Safety] 2024, November
Anonim
Sikkerhedsboks
Sikkerhedsboks
Sikkerhedsboks
Sikkerhedsboks
Sikkerhedsboks
Sikkerhedsboks

Dette er hvad dit endelige resultat skal være efter at have sat det sammen og uploadet koden.

Trin 1: Ting, du får brug for

Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for
Ting du får brug for

Jumper Wires, 220 OHM modstand, 16x2 LCD -skærm, trykknapper, servomotor, brødbræt, Arduino Uno.

Trin 2: Kode

James chinchay

#omfatte

#include #include

int adresse = 0; statisk usigneret lang SaveTimer; statisk usigneret lang SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Låst op; statisk usigneret lang DisplayTimer; statisk usigneret lang DisplayDelay = 200;

LiquidCrystal lcd (12, 11, 9, 8, 7, 6);

int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5;

int enter -knap = 10; int clearlock -knap = 13;

Servo myServo; // opsætning af konstruktionsprogrammets ugyldige opsætning () {

myServo.attach (A1);

int EEPROMCodeOK = sand; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); hvis (! (strrchr ("1123456789", Str [Pos]))) {// ikke en gyldig kode EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); hvis (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; hvis (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // opsætning af input pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (enterbutton, INPUT_PULLUP); pinMode (clearlock -knap, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // opsætning af besked lcd.print ("Hej hr. Birch"); forsinkelse (2000); lcd.clear (); lcd.setCursor (0, 0); // opsætning af prompt til password lcd.print ("Password:");

DisplayTimer = millis () + 200; }

void loop () {

Låse();

Pos = begrænsning (Pos, 0, CodeLength); // læs knapper int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);

int clButtonState = digitalRead (clearlockbutton); int enterButtonState = digitalRead (enterbutton);

lcd.setCursor (9, 0); // krav for at aktivere if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin1) == LOW);

}

ellers hvis (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin2) == LOW);

}

ellers hvis (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin3) == LOW); }

ellers hvis (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin4) == LOW);

} ellers hvis (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin1) == LOW); hvis (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("Adgang tildelt"); forsinkelse (2000); lcd.clear (); lcd.print ("ulåst"); } ellers hvis (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (KODE, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Gem kode:"); lcd.setCursor (0, 1); lcd.print (Str);

Unlocked = true; }

andet {

lcd.clear (); lcd.print ("Adgang nægtet."); forsinkelse (2000); lcd.clear (); lcd.print ("Adgangskode:");

} // oplåsningskode, mens (Unlocked) {Unlock (); hvis (digitalRead (clearlockbutton) == LOW) {forsinkelse (200); lcd.clear (); lcd.print ("Låst"); forsinkelse (2000); lcd.clear (); Unlocked = false; SaveTimer = millis () + 30000; }}

ClearCode ();

}

ellers hvis (clButtonState == LOW) {forsinkelse (500);

mens (clearlockbutton == LOW); hvis ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

hvis ((lang) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");

} }

ugyldig ClearCode () {

Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Adgangskode:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Unlock () {

myServo.write (150);

} // programlåseknap tomrum Lås () {

myServo.write (50);

}

Trin 3:

når alt er gjort, skal det se sådan ud.

Anbefalede: