Obsah:
- Zásoby
- Krok 1: Zostavenie krabice
- Krok 2: Zapojenie
- Krok 3: Sťahovanie knižníc
- Krok 4: Nastavenie snímača odtlačkov prstov a snímača karty Rfid
- Krok 5: KÓD
- Krok 6: Dokončite
Video: High -tech trezor Arduino: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Toto je môj bezpečný trezor arduino. Odomknite zásuvku tak, že naskenujete prst, naskenujete kartu a potom zadáte 4 -miestne heslo. Tento projekt sa neodporúča začiatočníkom, pretože je veľmi pokročilý. Kód je dlhý, ale zdieľam ho v tomto projekte. Ak postavíte rovnaký trezor ako ja, náklady sa pohybujú okolo 75 dolárov. Dokončenie tohto projektu môže tiež trvať 1-3 dni. Začnime teda!
Zásoby
Na vybudovanie rovnakého trezoru ako ja budem potrebovať:
Arduino (odporúča sa Uno, pretože nemám kroky pre arduino mega alebo nano. Ale stále ich môžete použiť)
breadboard
servo
prepojovacie vodiče
joystick
20*4 (môžete použiť 16*4, ale budete musieť zmeniť kód)
snímač odtlačkov prstov
mfrc522 skener karty rfid
vedro lega
Krok 1: Zostavenie krabice
Najprv budete potrebovať krabicu, do ktorej vložíte elektroniku. Môžete použiť lego, 3D tlačenú škatuľu alebo dokonca kartón! (Aj keď to môže byť ťažšie) Nezabudnite do nej vložiť otvory pre zásuvku a elektroniku. Ak používate skener kariet rfid, v prípade tenkých stien nemusíte vytvárať diery. Karty stále fungujú, ale kľúčenky musíte dať blízko, aby ich mohol prečítať čítačka kariet RFID. Vnútri tiež nechajte miesto pre arduino a drôty. POZNÁMKA: Keď zostavujete zásuvku, nechajte v nej otvor, aby sa vaše servo mohlo zásuvku otočiť a uzamknúť.
Krok 2: Zapojenie
Tento krok môže byť komplikovaný, pretože musíte zapojiť vodiče na presné miesto, inak elektronika nebude fungovať. Nemám schému zapojenia, ale poviem vám, že každá pôjde. Zapojenie je len pre arduino uno. Ak používate arduino mega alebo nano, budete musieť vyhľadať umiestnenie káblov. Ak nepoužívate všetky elektróny, ktoré mám, môžete toto zapojenie jednoducho preskočiť.
Skener odtlačkov prstov: zelený vodič: D2 biely vodič: D3 čierny vodič: GND červený vodič: 5V
Joystick: 5V = 3,3V GND = GND X = A2 Y = A3 Prepínač = D4
skener RFID kariet: 3,3 V = 3,3 V prvý = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD obrazovka: 5V = 5V GND = GND sda = A4 sck = A5
Servo: červený vodič: 5V Hnedý vodič: GND žltý vodič: D6
POZNÁMKA: NENAPÁJAJTE SKENER RFID KARTY DO 5V. AK ROBÍTE, ROZlomí sa !!!
Možno sa čudujete, prečo som povedal, aby som zapojil napájanie joysticku na 3,3 V, keď na boku je napísané 5 V. Je to preto, že servo, obrazovka a snímač odtlačkov prstov potrebujú 5V. Ak k tomu pridáte joystick, elektronika nemusí fungovať, pretože všetko potrebuje 5V. Joystick bude stále fungovať s napätím 3,3 V. Je to len maximálna hodnota, ktorá nebude 1023, ale bude ~ 670.
Krok 3: Sťahovanie knižníc
V tomto projekte budete potrebovať 6 knižníc, aby ste mohli používať všetku elektroniku. 1 pre servo, 1 pre snímač odtlačkov prstov, 2 pre skener kariet rfid a 2 pre obrazovku. Joystick nepotrebuje knižnicu. Teraz, čo je knižnica? Je to v podstate súbor, ktorý obsahuje veľa kódu, ktorý môžete použiť vo svojom projekte pomocou jednoduchých príkazov. Ak chcete získať tieto knižnice, musíte ísť na miesto s názvom GitHub. Ak viete, ako sťahovať a rozbaľovať knižnice, stiahnite si ich pomocou odkazov nižšie. Ak neviete ako, môžete ísť na môj návod, ktorý hovorí o tom, ako stiahnuť knižnicu v kroku 3:
alebo vyhľadajte na youtube video, ako stiahnuť arduino knižnicu z GitHubu
ODKAZY NA LIRARIES:
Servo
snímač odtlačkov prstov:
spi
snímač karty rfid
knižnica obrazovky 1
knižnica obrazovky 2
Krok 4: Nastavenie snímača odtlačkov prstov a snímača karty Rfid
Tento krok hovorí o tom, ako nastaviť snímač odtlačkov prstov a snímač karty rfid. Pokiaľ ste snímač odtlačkov prstov ešte nepoužili, budete mu musieť ukázať, ako vyzerá váš odtlačok prsta, aby si ho mohol uložiť do pamäte. Aj keď ste ho už použili, pravdepodobne by ste mali urobiť tento krok. Stručne vám poviem, ako to urobiť, ale ak to nedáva zmysel, v poslednom kroku prejdite na rovnaký odkaz s pokynmi. Ide to veľmi dobre. Základné stačí otvoriť arduino ide. Prejdite do súboru> príklady> snímač odtlačkov prstov adafruit> zaregistrovať sa. Nahrajte kód do arduina, otvorte sériový monitor a postupujte podľa pokynov. Keď vám povie, aby ste mu dali číslo. Zadajte 1#.
Teraz pre kartu rfid je tento krok veľmi jednoduchý. Otvorte arduino ide. Prejdite do súboru> príklady> mfrc522> prečítajte si osobné údaje. Nahrajte na arduino a otvorte sériový monitor. Naskenujte kartu alebo kľúčenku, ktorú chcete použiť, dodanú so senzorom. Potom vám poskytne niekoľko informácií. Vyhľadajte ID karty, budú to 4 sady 2 číslic. Niečo také: AB 45 2Y 45, ale váš kód bude iný. Napíšte to na kúsok papiera. Neskôr to budete potrebovať znova. To je k tomuto kroku všetko.
Krok 5: KÓD
Toto bude pre väčšinu z vás najťažší krok, ale je to veľmi jednoduché. Najprv skopírujte a prilepte kód do arduino ide zospodu. Za druhé, upravte 2 sekcie, kde je napísané UPRAVIŤ KÓD. 1 časť je pre skener kariet, 1 pre joystick. Tieto kroky nemožno preskočiť. Akonáhle budete hotoví, nahrajte kód do arduina!
#include #include Fingerprint.h>
#zahrnúť
#zahrnúť
#zahrnúť
#zahrnúť
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POZITÍVNE);
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint (& mySerial);
Servo servo;
znak d1;
znak d2;
char d3;
char d4;
neplatné nastavenie () {
servo.attach (6);
servo.pis (170);
lcd.begin (20, 4);
Serial.begin (9600);
while (! Serial);
SPI.begin ();
mfrc522. PCD_Init ();
oneskorenie (4);
mfrc522. PCD_DumpVersionToSerial ();
oneskorenie (100);
Serial.println ("\ n / nAdafruit test na detekciu prsta");
finger.begin (57600);
oneskorenie (5);
if (finger.verifyPassword ()) {
Serial.println („Všetky systémy fungujú“);
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print („Naskenujte prst“);
} else {
Serial.println ("CHYBA: Snímač odtlačkov prstov nebol nájdený!");
lcd.setCursor (0, 0);
lcd.print ("CHYBA: Odtlačok prsta");
lcd.setCursor (1, 1);
lcd.print ("snímač nebol nájdený!");
while (1) {delay (1); }
}
finger.getTemplateCount ();
Serial.print ("Senzor obsahuje"); Serial.print (finger.templateCount); Serial.println ("šablóny"); Serial.println ("Čakanie na platný prst …"); }
void (* resetFunc) (void) = 0;
prázdna slučka () {
getFingerprintIDez ();
oneskorenie (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
prepínač (p) {
prípad FINGERPRINT_OK:
Serial.println ("Obrázok urobený");
prestávka;
prípad FINGERPRINT_NOFINGER:
Serial.println ("Nebol zistený žiadny prst");
vrátiť p;
prípad FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Chyba komunikácie");
vrátiť p;
prípad FINGERPRINT_IMAGEFAIL:
Serial.println ("Chyba zobrazovania");
vrátiť p;
predvolené:
Serial.println ("Neznáma chyba");
vrátiť p;
}
p = finger.image2Tz ();
prepínač (p) {
prípad FINGERPRINT_OK:
Serial.println ("Obrázok skonvertovaný");
prestávka;
prípad FINGERPRINT_IMAGEMESS:
Serial.println ("Obrázok je príliš chaotický");
vrátiť p;
prípad FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Chyba komunikácie");
vrátiť p;
prípad FINGERPRINT_FEATUREFAIL:
Serial.println ("Nepodarilo sa nájsť funkcie odtlačkov prstov");
vrátiť p;
prípad FINGERPRINT_INVALIDIMAGE:
Serial.println ("Nepodarilo sa nájsť funkcie odtlačkov prstov");
vrátiť p;
predvolené:
Serial.println ("Neznáma chyba");
vrátiť p;
}
p = prst.fingerFastSearch ();
ak (p == FINGERPRINT_OK) {
Serial.println („Našla sa zhoda s tlačou!“);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Chyba komunikácie");
vrátiť p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Nenašiel som zhodu");
vrátiť p;
} else {
Serial.println ("Neznáma chyba");
vrátiť p;
}
Serial.print ("Nájdené ID #"); Serial.print (finger.fingerID);
Serial.print ("s dôverou"); Serial.println (finger.confidence);
vrátiť finger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
ak (p! = FINGERPRINT_OK) vráti -1;
p = finger.image2Tz ();
ak (p! = FINGERPRINT_OK) vráti -1;
p = prst.fingerFastSearch ();
ak (p! = FINGERPRINT_OK) vráti -1;
Serial.print ("Nájdené ID #"); Serial.print (finger.fingerID);
Serial.print ("s dôverou"); Serial.println (finger.confidence);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print („Prst prijatý“,);
lcd.setCursor (2, 0);
lcd.print („teraz naskenujte kartu …“);
lcd.setCursor (0, 3);
lcd.print ("====================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ============================ UPRAVIŤ KÓD ========= ===============
mfrc522.uid.uidByte [1] == 0xAB && // Vezmite ten kus papiera s ID, boli tam 4 sady 2 číslic
mfrc522.uid.uidByte [2] == 0x90 && // Pozrite sa podľa kódu a zistite, kde je napísané 0x92, 0xAB, 0x90, 0x1c? Zadajte každú
mfrc522.uid.uidByte [3] == 0x1C) {// 2 -miestnu sekciu za 0x. Napríklad časť ID uvádza
lcd.clear (); // 3E, potom zadajte 3E za 0x, aby ste vytvorili 0x3E. Vykonajte to pre každú sekciu
lcd.setCursor (3, 0);
lcd.print („Nakoniec zadajte“);
lcd.setCursor (1, 1);
lcd.print („heslo joysticku“);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); if (analogRead (A2) <= 100) {
dl = L;
}
if (analogRead (A2)> = 670) {
dl = R;
}
if (analogRead (A3) <= 100) {
dl = U;
}
if (analogRead (A3)> = 670) {
dl = D;
}
oneskorenie (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d2 = L;
}
if (analogRead (A2)> = 670) {
d2 = R;
}
if (analogRead (A3) <= 100) {
d2 = U;
}
if (analogRead (A3)> = 670) {
d2 = D;
}
oneskorenie (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d3 = L;
}
if (analogRead (A2)> = 670) {
d3 = R;
}
if (analogRead (A3) <= 100) {
d3 = U;
}
if (analogRead (A3)> = 670) {
d3 = D;
}
oneskorenie (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
if (analogRead (A2) <= 100) {
d4 = L;
}
if (analogRead (A2)> = 670) {
d4 = R;
}
if (analogRead (A3) <= 100) {
d4 = U;
}
if (analogRead (A3)> = 670) {
d4 = D;
}
oneskorenie (500);
ak (d1 == L && d2 == U && d3 == L && d4 == R) {// =================== UPRAVIŤ KÓD ====== =================
lcd.clear (); // V tejto sekcii môžete heslo upravovať pomocou joysticku
lcd.setCursor (2, 0); // heslo je nastavené doľava, hore doľava, doprava. Ak sa chceš zmeniť
lcd.print („Prístup povolený!“); // v ktoromkoľvek z nich umiestnite L doľava, R doprava, U hore alebo D dolu
lcd.setCursor (2, 1); // 4 sekcie s písmenom za znakmi ==.
lcd.print ("Zásuvka odomknutá.");
lcd.setCursor (2, 2);
lcd.print („Keď skončíte, presuňte sa“);
lcd.setCursor (1, 3);
lcd.print ("joystick na opätovné uzamknutie");
servo.write (90);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.pis (170);
lcd.setCursor (3, 0);
lcd.print ("Zásuvka uzamknutá");
oneskorenie (3000);
resetFunc ();
} else {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print („PRÍSTUP ODMIETNUTÝ !!!“);
lcd.setCursor (0, 2);
lcd.print („Reštartovací systém …“);
oneskorenie (3000);
resetFunc ();
}
} else {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print („PRÍSTUP ODMIETNUTÝ !!!“);
lcd.setCursor (0, 2);
lcd.print („Reštartovací systém …“);
oneskorenie (3000);
resetFunc ();
}
} else {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print („PRÍSTUP ODMIETNUTÝ !!!“);
lcd.setCursor (0, 2);
lcd.print („Reštartovací systém …“);
oneskorenie (3000);
resetFunc ();
}
vrátiť finger.fingerID; }
Krok 6: Dokončite
Jedna vec, ktorú som vám zabudol povedať, 2 veci je, že som to postavil predtým, ako som fotografoval, takže som vám nemohol ukázať, ako som postavil krabicu. Druhým je, že sa odporúča naskrutkovať servo časť na časť, ktorá sa otáča. Ak to neurobíte, niekto môže vytiahnuť zásuvku, keď je uzamknutá, a vytiahnuť kus. Ale skôr, ako ho zašroubujete, nájdite správne miesto, kam ho nasadiť, pretože servo sa do určitej miery otáča. Alebo to môžete jednoducho zmeniť v kóde. Ak sa časť elektroniky chová vtipne, možno budete chcieť nájsť iný spôsob, ako pre niektoré z nich získať napätie 5 V. Všimol som si, keď mi skener odtlačkov prstov zablikal, obrazovka s ním mierne zabliká a servo zašumí. Keď sa servo pohlo, obrazovka stmavla. Dúfam, že sa vám projekt páčil! Ak máte akékoľvek otázky, nechajte ich v komentároch. Nejde mi veľa o pokynoch, ale odpoviem im hneď, ako to bude možné!
Odporúča:
Vybudujte si trezor pomocou Rpi: 12 krokov
Vybudujte si trezor pomocou Rpi: Chcete sa dozvedieť, ako previesť váš Raspberry pi na plne funkčný trezor? Potom sa riaďte týmito 12 krokmi a naučte sa, ako na to. Trezor bude mať plne funkčnú klávesnicu a uzamykací systém, takže svoje veci môžete mať v bezpečí
Prenosný trezor B-Safe: 8 krokov (s obrázkami)
B-Safe, prenosný trezor: *** 4. septembra 2019: Nahral som nový 3D súbor samotného poľa. Vyzeralo to, že môj zámok je príliš vysoký o 10 mm na poriadne zavretie *** Problém Predstavte si toto: Raz ráno sa zobudíte a počasie je naozaj dobré. Chcete ísť na pláž. Pretože nemáte
Angelov kľúčový trezor: 5 krokov
Angela's Key Safe: Inšpirované: https://www.instructables.com/id/Key-Safe/ Dobre štruktúrovaný kľúčový trezor na uloženie vašich osobných vecí. Na základe pôvodnej verzie som vykonal niekoľko úprav. Pridaním ďalších 3 hesiel „A“, „B“, „C“a &
Jasný trezor: 6 krokov
Jasný trezor: Tento projekt navrhuje spôsob zabezpečenia vašej veci. Konečným výsledkom projektu je prepínač, ktorému velí arduino po dvoch stupňoch zabezpečenia. Prepínač môže otvoriť portál, nahradiť diaľkové ovládanie alebo jednoducho ovládať motor. Môj projekt pred
Kľúčový trezor: 6 krokov (s obrázkami)
Bezpečný kľúč: Počas pracovných dní málokedy vytiahnem kľúč, ale to spôsobuje problémy, keď moja matka odíde z domu. Keďže mama nemala žiadne iné možnosti, musí nechať kľúč vo vnútri skrinky vedľa dverí, čo nezaručuje, či je kľúč bezpečný alebo nie