Turinys:
Video: Seifas: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Štai koks turėtų būti jūsų galutinis rezultatas, jį sukūrus ir įkėlus kodą.
1 žingsnis: reikalingi dalykai
Trumpieji laidai, 220 OHM rezistorius, 16x2 LCD ekranas, mygtukai, servo variklis, duonos lenta, „Arduino Uno“.
2 žingsnis: kodas
Jamesas chinchay
#įtraukti
#įtraukti #įtraukti
int adresas = 0; statinis nepasirašytas ilgas „SaveTimer“; statinis nepasirašytas ilgas SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; statinis nepasirašytas ilgas „DisplayTimer“; statinis nepasirašytas ilgas „DisplayDelay“= 200;
„LiquidCrystal lcd“(12, 11, 9, 8, 7, 6);
int mygtukasPin1 = 2; int mygtukasPin2 = 3; int mygtukasPin3 = 4; int mygtukasPin4 = 5;
int enterbutton = 10; int clearlockbutton = 13;
Servo myServo; // sąrankos programos kūrimas void setup () {
myServo.attach (A1);
int EEPROMCodeOK = tiesa; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos])))) {// neteisingas kodas EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); jei (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str., CodeLength + 1); } „ClearCode“(); // įėjimų nustatymas pinMode (buttonPin1, INPUT_PULLUP); pinMode (mygtukasPin2, INPUT_PULLUP); pinMode (mygtukasPin3, INPUT_PULLUP); pinMode (mygtukasPin4, INPUT_PULLUP);
pinMode (įvesties mygtukas, INPUT_PULLUP); pinMode (skaidraus užrakto mygtukas, INPUT_PULLUP);
LCD. pradžia (16, 2); lcd.setCursor (0, 0); // nustatymas messaged lcd.print ("Labas pone beržai"); vėlavimas (2000 m.); lcd.clear (); lcd.setCursor (0, 0); // slaptažodžio nustatymo raginimas lcd.print ("Slaptažodis:");
„DisplayTimer“= milis () + 200; }
void loop () {
Užraktas ();
Pos = apriboti (Pos, 0, CodeLength); // skaitymo mygtukai 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); // reikalavimai aktyvuoti, jei (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Atrakinta = tiesa; lcd.setCursor (0, 0); lcd.print („Prieiga suteikta“); vėlavimas (2000 m.); lcd.clear (); lcd.print ("Atrakinta"); } else if (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 ("Išsaugojimo kodas:"); lcd.setCursor (0, 1); lcd.print (Str);
Atrakinta = tiesa; }
Kitas {
lcd.clear (); lcd.print („Prieiga uždrausta“); vėlavimas (2000 m.); lcd.clear (); lcd.print ("Slaptažodis:");
} // kodo atrakinimas tuo metu (Atrakinta) {Atrakinti (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Užrakinta"); vėlavimas (2000 m.); lcd.clear (); Atrakinta = klaidinga; „SaveTimer“= milis () + 30000; }}
„ClearCode“();
}
else if (clButtonState == LOW) {delay (500);
while (clearlockbutton == LOW); jei ((milis () - „SaveTimer“> 4500) {
}
„ClearCode“();
}
if ((ilgas) (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 ("Slaptažodis:"); lcd.setCursor (0, 1); lcd.print ("");
}
void Unlock () {
myServo.write (150);
} // programos užrakinimo mygtukas void Lock () {
myServo.write (50);
}
3 žingsnis:
kai viskas padaryta, tai turėtų atrodyti taip.
Rekomenduojamas:
„B-Safe“, nešiojamasis seifas: 8 žingsniai (su nuotraukomis)
„B-Safe“, nešiojamasis seifas: *** 2019 m. Rugsėjo 4 d.: Įkėliau naują pačios dėžutės 3D failą. Atrodė, kad mano spyna buvo 10 mm per aukšta, kad galėčiau gerai uždaryti *** Problema Įsivaizduokite: pabundi vieną rytą ir oras tikrai geras. Norite eiti į paplūdimį. Nes to nenorite
„Angela“raktų seifas: 5 žingsniai
„Angela“raktų seifas: įkvėptas: https://www.instructables.com/id/Key-Safe/ Gerai suplanuotas raktas, skirtas asmeniniams daiktams laikyti. Aš padariau keletą pakeitimų, remdamasis pradine versija. Pridėjus dar 3 slaptažodžius, „A“, „B“, „C“; ir &
RFID banko seifas: 3 žingsniai
RFID banko seifas: RFID yra radijo dažnio atpažinimas. Banko seifas yra vertingų daiktų seifas. Sudėjus du kartu, bankas tampa dar saugesnis. Štai kaip sukurti vieną iš „Arduino“komponentų ir šiek tiek garažo darbų
„Arduino Key“seifas: 4 žingsniai
„Arduino Key Safe“: idėjos iš: https://www.instructables.com/id/Key-Safe/Aš esu žmogus, kuris visada be priežasties prarasdavo savo daiktus. Aš padariau šį raktą saugų, kad galėčiau prisiminti savo daiktus į vidų, neprarasdamas daiktų. Šiame projekte aš šiek tiek patobulinau
Ryškus seifas: 6 žingsniai
Ryškus seifas: šis projektas siūlo būdą apsaugoti jūsų daiktą. Galutinis projekto rezultatas yra jungiklis, kurį po dviejų saugumo etapų valdo arduino. Jungiklis gali atidaryti portalą, pakeisti nuotolinio valdymo pultą arba tiesiog valdyti variklį. Mano projekto esmė