Obsah:
Video: Safe Box: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
To by měl být váš konečný výsledek po sestavení a nahrání kódu.
Krok 1: Věci, které budete potřebovat
Propojovací vodiče, odpor 220 OHM, LCD obrazovka 16x2, tlačítka, servomotor, Breadboard, Arduino Uno.
Krok 2: Kód
James chinchay
#zahrnout
#include #include
int adresa = 0; statický nepodepsaný dlouhý SaveTimer; statický nepodepsaný dlouhý SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char Délka kódu = 4; int Pos = 0; bool Odemčeno; statický nepodepsaný dlouhý DisplayTimer; statický nepodepsaný dlouhý DisplayDelay = 200;
LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
int tlačítkoPin1 = 2; int tlačítko Pin2 = 3; int tlačítko Pin3 = 4; int tlačítko Pin4 = 5;
int enterbutton = 10; int clearlockbutton = 13;
Servo myServo; // nastavení programu konstrukce neplatné nastavení () {
myServo.attach (A1);
int EEPROMCodeOK = true; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// není platný kód EEPROMCodeOK = false; }} Pozice ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // nastavení vstupů pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);
pinMode (Enterbutton, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);
lcd.begin (16, 2); lcd.setCursor (0, 0); // nastavení messaged lcd.print ("Dobrý den pane Birch"); zpoždění (2000); lcd.clear (); lcd.setCursor (0, 0); // nastavení výzvy k zadání hesla lcd.print ("Heslo:");
DisplayTimer = milis () + 200; }
prázdná smyčka () {
Zámek();
Pos = omezení (Pos, 0, CodeLength); // tlačítka pro čtení 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); // požadavky na aktivaci if (buttonState1 == LOW) {Str [Pos] = '1'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print („přístup povolen“); zpoždění (2000); lcd.clear (); lcd.print ("Odemčeno"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (KÓD, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Ukládací kód:"); lcd.setCursor (0, 1); lcd.print (Str);
Unlocked = true; }
jinak {
lcd.clear (); lcd.print ("Přístup odepřen."); zpoždění (2000); lcd.clear (); lcd.print ("Heslo:");
} // odblokování kódu při (Odemčeno) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Zamčeno"); zpoždění (2000); lcd.clear (); Unlocked = false; SaveTimer = milis () + 30 000; }}
ClearCode ();
}
else if (clButtonState == LOW) {zpoždění (500);
while (clearlockbutton == LOW); if ((milis () - SaveTimer)> 4500) {
}
ClearCode ();
}
if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");
} }
neplatné ClearCode () {
Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Heslo:"); lcd.setCursor (0, 1); lcd.print ("");
}
zrušit Odemknout () {
myServo.write (150);
} // tlačítko zamykání programu neplatné Lock () {
myServo.write (50);
}
Krok 3:
po dokončení všeho by to mělo vypadat takto.
Doporučuje:
Corona Safe: Automatický kohoutek šetřící vodu: 6 kroků
Corona Safe: Automatický kohoutek šetřící vodu: Všichni si musíme každou chvíli umýt ruce, abychom se zbavili virů a bakterií speciálně pro virus Corona, musíme si umýt ruce po dobu 20 sekund, abychom se toho úplně zbavili. Také dávkovač mýdla nebo knoflík nemusí být hygienické nebo
Přenosný trezor B-Safe: 8 kroků (s obrázky)
B-Safe, přenosný trezor: *** 4. září 2019: Nahrál jsem nový 3D soubor samotného boxu. Vypadalo to, že můj zámek byl příliš vysoký 10 mm na pořádné zavření *** Problém Představte si toto: Jednou ráno se probudíte a počasí je opravdu dobré. Chcete jít na pláž, protože nemáte
Angela's Key Safe: 5 kroků
Angela's Key Safe: Inspirováno: https://www.instructables.com/id/Key-Safe/ Dobře strukturovaný klíčový trezor pro uložení vašich osobních věcí. Provedl jsem několik úprav na základě původní verze. Přidáním dalších 3 hesel „A“, „B“, „C“a &
High Tech Safe Arduino: 6 kroků
High Tech Safe Arduino: Toto je můj high tech trezor arduino. K odemčení zásuvky musíte naskenovat prst, naskenovat kartu a poté zadat 4místné heslo. Tento projekt není vhodný pro začátečníky, protože je velmi pokročilý. Kód je dlouhý, ale sdílím ho v
Digitální SAFE BOX na bázi Arduina: 10 kroků
Digitální BEZPEČNÝ BOX na bázi Arduina: Čau lidi! Máte něco, co chcete bezpečně uchovat? Něco, co je třeba chránit před nežádoucími vetřelci a narušiteli soukromí? Mám pro váš problém řešení! Zde je bezpečný box založený na Arduinu