Satura rādītājs:
Video: Seifs: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šādam vajadzētu būt jūsu gala rezultātam pēc tā salikšanas un koda augšupielādes.
1. darbība: lietas, kas jums būs nepieciešamas
Džempera vadi, 220 OHM rezistors, 16x2 LCD ekrāns, spiedpogas, servomotors, maizes dēlis, Arduino Uno.
2. darbība: kods
Džeimss Činhajs
#iekļaut
#iekļaut #iekļaut
int adrese = 0; statisks neparakstīts garš SaveTimer; statisks neparakstīts garš SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char kodsLength = 4; int Pos = 0; bool Unlocked; statisks neparakstīts garš DisplayTimer; statisks neparakstīts garš DisplayDelay = 200;
LiquidCrystal LCD (12, 11, 9, 8, 7, 6);
int pogaPin1 = 2; int pogaPin2 = 3; int pogaPin3 = 4; int pogaPin4 = 5;
int ievades poga = 10; int clearlockbutton = 13;
Servo myServo; // konstruēšanas programmas iestatīšana void setup () {
myServo.attach (A1);
int EEPROMCodeOK = patiess; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos])))) {// nav derīgs kods EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); ja (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; ja (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str., CodeLength + 1); } ClearCode (); // ieeju iestatīšana pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);
pinMode (ievadīšanas poga, INPUT_PULLUP); pinMode (skaidrs bloķēšanas poga, INPUT_PULLUP);
lcd. sākums (16, 2); lcd.setCursor (0, 0); // messaged lcd.print iestatīšana ("Labdien, Bērza kungs"); kavēšanās (2000); lcd.clear (); lcd.setCursor (0, 0); // paroles iestatīšanas uzvedne lcd.print ("Parole:");
DisplayTimer = milis () + 200; }
void loop () {
Slēdzene ();
Pos = ierobežot (Pos, 0, CodeLength); // lasīšanas pogas 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); // prasības aktivizēt, ja (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin1) == LOW);
}
cits if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin2) == LOW);
}
cits if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin3) == LOW); }
cits if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin4) == LOW);
} cits if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin1) == LOW); ja (strcmp (Str, CODE) == 0) {Atbloķēts = true; lcd.setCursor (0, 0); lcd.print ("Piekļuve piešķirta"); kavēšanās (2000); lcd.clear (); lcd.print ("Atbloķēts"); } cits, ja (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (CODE, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Saglabāšanas kods:"); lcd.setCursor (0, 1); lcd.print (Str);
Atbloķēts = taisnība; }
cits {
lcd.clear (); lcd.print ("Piekļuve liegta."); kavēšanās (2000); lcd.clear (); lcd.print ("Parole:");
} // atbloķēšanas kods, kamēr (atbloķēts) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {kavēšanās (200); lcd.clear (); lcd.print ("Bloķēts"); kavēšanās (2000); lcd.clear (); Atbloķēts = nepatiess; SaveTimer = milis () + 30000; }}
ClearCode ();
}
else if (clButtonState == LOW) {kavēšanās (500);
while (clearlockbutton == LOW); ja ((milis () - SaveTimer)> 4500) {
}
ClearCode ();
}
ja ((garš) (milis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");
} }
void ClearCode () {
Poz = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Parole:"); lcd.setCursor (0, 1); lcd.print ("");
}
void Unlock () {
myServo.write (150);
} // programmas bloķēšanas poga void Lock () {
myServo.write (50);
}
3. darbība:
kad viss ir izdarīts, tam vajadzētu izskatīties šādi.
Ieteicams:
B-Safe, portatīvais seifs: 8 soļi (ar attēliem)
B-Safe, portatīvais seifs: *** 2019. gada 4. septembris: es augšupielādēju jaunu kastes 3D failu. Šķita, ka mana slēdzene bija par 10 mm pārāk augsta, lai labi aizvērtu. Jūs vēlaties doties uz pludmali. Jo jums nav
Andželas atslēgu seifs: 5 soļi
Angelas atslēgu seifs: iedvesmojoties no: https://www.instructables.com/id/Key-Safe/ Labi strukturēts atslēgu seifs personisko mantu glabāšanai. Es veicu dažus pielāgojumus, pamatojoties uz sākotnējo versiju. Pievienojot vēl 3 paroles, " A ", " B ", " C " un &
RFID bankas seifs: 3 soļi
RFID Bank Safe: RFID ir radiofrekvenču identifikācija. Bankas seifs ir seifs vērtslietām. Saliekot divus kopā, banka kļūst vēl drošāka. Lūk, kā izveidot vienu no Arduino komponentiem un nedaudz garāžas darbu
Arduino augsto tehnoloģiju seifs: 6 soļi
Arduino augsto tehnoloģiju seifs: Šis ir mans arduino augsto tehnoloģiju seifs. Lai atbloķētu atvilktni, jums jānoskenē pirksts, jāpārbauda karte un pēc tam jāievada 4 ciparu parole. Šis projekts nav ieteicams iesācējiem, jo tas ir ļoti progresīvs. Kods ir garš, bet es dalīšos tajā
Arduino atslēgas seifs: 4 soļi
Arduino Key Safe: idejas no: https://www.instructables.com/id/Key-Safe/Esmu cilvēks, kurš vienmēr bez iemesla ir pazaudējis savas lietas. Es padaru šo atslēgu drošu, lai es varētu atcerēties ievietot savas lietas, nepazūdot. Šajā projektā esmu veicis dažus uzlabojumus