Sadržaj:
Video: Sef: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovo bi vaš konačni rezultat trebao biti nakon sastavljanja i učitavanja koda.
Korak 1: Stvari koje će vam trebati
Žice kratkospojnika, 220 OHM otpornik, 16x2 LCD zaslon, tipke, servo motor, matična ploča, Arduino Uno.
Korak 2: Kodiranje
James chinchay
#uključi
#include #include
int adresa = 0; statički nepotpisani dugi SaveTimer; statički nepotpisani dugi SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Otključano; statički nepotpisani dugi DisplayTimer; statički nepotpisani dugi DisplayDelay = 200;
LCD tekući kristal (12, 11, 9, 8, 7, 6);
int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5;
int enterbutton = 10; int clearlockbutton = 13;
Servo myServo; // postavljanje programa construct void setup () {
myServo.attach (A1);
int EEPROMCodeOK = istina; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.čitano (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// nije važeći kôd EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.čitano (Poz); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // postavljanje ulaza pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);
pinMode (tipka za unos, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);
lcd.begin (16, 2); lcd.setCursor (0, 0); // postavljanje poruka s lcd.printom ("Pozdrav, gospodine Birch"); odgoda (2000); lcd.clear (); lcd.setCursor (0, 0); // postavljanje upita za lozinku lcd.print ("Lozinka:");
DisplayTimer = millis () + 200; }
void loop () {{100} {101}
Zaključavanje ();
Pos = ograničiti (Pos, 0, CodeLength); // gumbi za čitanje int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalno čitanje (buttonPin2); int buttonState3 = digitalno čitanje (buttonPin3); int buttonState4 = digitalRead (buttonPin4);
int clButtonState = digitalRead (gumb za brisanje); int enterButtonState = digitalRead (tipka za unos);
lcd.setCursor (9, 0); // zahtjevi za aktiviranje if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; kašnjenje (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; kašnjenje (250); while (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; kašnjenje (250); while (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; kašnjenje (250); while (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; kašnjenje (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Otključano = istina; lcd.setCursor (0, 0); lcd.print ("Pristup odobren"); odgoda (2000); lcd.clear (); lcd.print ("Otključano"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {{100} {101}
strcpy (KOD, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Spremanje koda:"); lcd.setCursor (0, 1); lcd.print (Str);
Otključano = istina; }
drugo {
lcd.clear (); lcd.print ("Pristup odbijen."); odgoda (2000); lcd.clear (); lcd.print ("Lozinka:");
} // otključavanje koda while (Otključano) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {kašnjenje (200); lcd.clear (); lcd.print ("Zaključano"); odgoda (2000); lcd.clear (); Otključano = lažno; SaveTimer = millis () + 30000; }}
ClearCode ();
}
else if (clButtonState == LOW) {odgoda (500);
while (clearlockbutton == LOW); if ((millis () - TimeTime)> 4500) {
}
ClearCode ();
}
if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");
} }
void ClearCode () {
Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Lozinka:"); lcd.setCursor (0, 1); lcd.print ("");
}
void Otključaj () {
myServo.write (150);
} // gumb za zaključavanje programa void Lock () {
myServo.write (50);
}
3. korak:
kad se sve učini trebalo bi izgledati ovako.
Preporučeni:
Izgradite sef pomoću Rpi: 12 koraka
Izgradite sef koristeći Rpi: Želite li naučiti kako pretvoriti svoj Raspberry pi u potpuno funkcionalan sef? Zatim slijedite ove 12 koraka koje možete poučiti kako biste saznali kako. Sef će imati potpuno funkcionalnu tipkovnicu i sustav zaključavanja, tako da svoje stvari možete čuvati na sigurnom
B-Safe, prijenosni sef: 8 koraka (sa slikama)
B-Safe, prijenosni sef: *** 4. rujna 2019 .: Učitao sam novu 3D datoteku same kutije. Činilo se da je moja brava previsoka 10 mm za dobro zatvaranje *** Problem Zamislite ovo: Jedno jutro se probudite i vrijeme je stvarno dobro. Želite ići na plažu. Zato što ne
Angelin ključni sef: 5 koraka
Angelin ključni sef: Inspirirano: https://www.instructables.com/id/Key-Safe/ Dobro strukturiran ključ za čuvanje vaših osobnih stvari. Napravio sam nekoliko prilagodbi na temelju izvorne verzije. Dodavanjem još 3 lozinke, "A", "B", "C" i &
RFID bankarski sef: 3 koraka
RFID bankarski sef: RFID je radiofrekvencijska identifikacija. Bankovni sef je sef za dragocjenosti. Spajanje dva čini bankovnu sigurnost još sigurnijom. Evo kako napraviti jednu od Arduino komponenti i malo rada u garaži
Svijetli sef: 6 koraka
Svijetli sef: Ovaj projekt nudi način da osigurate svoju stvar. Konačni rezultat projekta je prekidač kojim zapovijeda arduino nakon dvije faze sigurnosti. Prekidač može otvoriti portal, zamijeniti daljinski upravljač ili jednostavno upravljati motorom. Predstava mog projekta