Sisukord:
- Tarvikud
- Samm: kasti ehitamine
- 2. samm: ühendamine
- Samm: raamatukogude allalaadimine
- Samm: sõrmejäljeanduri ja RFID -kaardi anduri seadistamine
- 5. samm: KOOD
- 6. samm: lõpetage
Video: Arduino kõrgtehnoloogiline seif: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See on minu arduino kõrgtehnoloogiline seif. Sahtli avamiseks peate skannima sõrme, kaarti ja seejärel sisestama neljakohalise parooli. Seda projekti ei soovitata algajatele, kuna see on väga arenenud. Kood on pikk, kuid jagan seda selles projektis. Maksumus on umbes 75 dollarit, kui ehitate sama seifi nagu mina. Selle projekti valmimiseks võib kuluda ka 1-3 päeva. Niisiis, alustame!
Tarvikud
Minuga samasuguse seifi ehitamiseks vajate:
Arduino (Uno soovitatav, kuna mul pole arduino mega või nano jaoks samme. Kuid saate neid siiski kasutada)
leivalaud
servo
hüppaja juhtmed
juhtkangi
20*4 (saate kasutada 16*4, kuid peate koodi muutma)
sõrmejäljelugeja
mfrc522 rfid kaardi skanner
ämber legosid
Samm: kasti ehitamine
Kõigepealt vajate kasti, kuhu oma elektroonika panna. Võite kasutada legosid, 3D -prinditud kasti või isegi pappi! (Kuigi see võib olla raskem) Ärge unustage sinna sahtli ja elektroonika jaoks auke teha. Kui kasutate RFID -kaardiskannerit, ei pea te selleks auku panema, kui teie seinad on õhukesed. Kaardid töötavad endiselt, kuid võtmehoidjad tuleb sulgeda, et RFID -kaart saaks neid lugeda. Jätke ruumi ka oma arduinole ja juhtmetele. MÄRKUS. Sahtli ehitamisel jätke sinna auk, et teie servo saaks sahtlit pöörata ja lukustada.
2. samm: ühendamine
See samm võib olla keeruline, kuna peate juhtmed täpselt ühendama, vastasel juhul ei tööta elektroonika. Mul ei ole ühendusskeemi, kuid ma ütlen teile, kas igaüks läheb. Juhtmed on mõeldud ainult arduino uno jaoks. Kui kasutate arduino mega või nano, peate otsima juhtmete ühendamist. Kui te ei kasuta kogu minu elektroonikat, võite selle juhtmestiku lihtsalt vahele jätta.
Sõrmejäljeskanner: roheline juhe: D2 valge traat: D3 must traat: GND punane juhe: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = D4
RFID -kaardi skanner: 3.3V = 3.3V esimene = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD -ekraan: 5V = 5V GND = GND sda = A4 sck = A5
Servo: punane juhe: 5V Pruun juhe: GND kollane traat: D6
MÄRKUS. Ärge ühendage RFID -kaardi skännerit 5 V pingesse. KUI SEDA TEED, LÕPUB !!!
Teil võib tekkida küsimus, miks ma ütlesin, et ühendage juhtkangi toide 3.3 V külge, kui küljel on kirjas 5 V. Seda seetõttu, et servo, ekraan ja sõrmejäljeskanner vajavad 5 V pinget. Kui lisate sellele juhtkangi, ei pruugi elektroonika töötada, sest kõik vajab 5V. Juhtkang töötab endiselt 3.3V -ga. Maksimaalne väärtus ei ole 1023, see on ~ 670.
Samm: raamatukogude allalaadimine
Selles projektis vajate kogu elektroonika kasutamiseks 6 raamatukogu. 1 servo, 1 sõrmejäljeanduri, 2 RFID -kaardiskanneri ja 2 ekraani jaoks. Juhtkang ei vaja raamatukogu. Mis on nüüd raamatukogu? Põhimõtteliselt on see fail, mis sisaldab palju koodi, mida saate oma projektis lihtsate käskudega kasutada. Nende raamatukogude hankimiseks peate minema kohta nimega GitHub. Kui teate, kuidas raamatukogusid alla laadida ja lahti pakkida, minge allalaadimiseks allolevatele linkidele. Kui te ei tea, kuidas, võite minna minu juhendisse, kus räägitakse teegi allalaadimisest 3. sammus:
või otsige YouTube'i videost, kuidas GitHubist arduino raamatukogu alla laadida
LINGID LIRARIATELE:
Servo
sõrmejäljeandur:
spi
rfid -kaardi andur
ekraanikogu 1
ekraanikogu 2
Samm: sõrmejäljeanduri ja RFID -kaardi anduri seadistamine
See samm räägib sõrmejäljeanduri ja RFID -kaardi anduri seadistamisest. Kui te pole oma sõrmejäljeandurit juba kasutanud, peate näitama, kuidas teie sõrmejälg välja näeb, et see saaks selle mällu salvestada. Isegi kui olete seda varem kasutanud, peaksite tõenäoliselt selle sammu tegema. Ma ütlen teile lühidalt, kuidas seda teha, kuid kui sellel pole mõtet, minge viimases etapis samale juhendatavale lingile. See läheb sellest väga hästi üle. Põhiline lihtsalt avatud arduino ide. Avage fail> näited> adafruit sõrmejäljeandur> registreeruge. Laadige kood üles arduino, avage seeriamonitor ja järgige juhiseid. Kui see ütleb teile numbri andmise. Sisestage 1#.
Nüüd on RFID -kaardi puhul see samm üsna lihtne. Avatud arduino ide. Avage fail> näited> mfrc522> loe isikuandmeid. Laadige üles arduino ja avage seeriamonitor. Skannige anduriga kaasas olnud kaart või võtmehoidja, mida soovite kasutada. Siis annab see teile teavet. Otsige kaardi ID -d, see koosneb 4 kahekohalisest komplektist. Midagi sellist: AB 45 2Y 45, kuid teie kood on erinev. Kirjutage see paberilehele. Vajate seda hiljem uuesti. See on selle sammu jaoks.
5. samm: KOOD
See saab olema enamiku teie jaoks kõige raskem samm, kuid see on üsna lihtne. Esmalt kopeerige ja kleepige kood altpoolt arduino ide. Teiseks muutke kahte jaotist, kus on kirjas EDIT CODE. 1 jaotis on kaardiskanneri jaoks, 1 juhtkangi jaoks. Neid samme ei saa vahele jätta. Kui olete valmis, laadige kood üles arduino!
#kaasama #sisalda sõrmejälg.h>
#kaasake
#kaasake
#kaasake
#kaasake
LiquidCrystal_I2C LCD (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Adafruit_ sõrmejälje sõrm = Adafruit_ sõrmejälg (& mySerial);
Servo servo;
char d1;
char d2;
char d3;
char d4;
tühine seadistus () {
servo.kinnitus (6);
servo.write (170);
lcd.algus (20, 4);
Seriaalne algus (9600);
while (! Seeria);
SPI.begin ();
mfrc522. PCD_Init ();
viivitus (4);
mfrc522. PCD_DumpVersionToSerial ();
viivitus (100);
Serial.println ("\ n / nAdafruit sõrme tuvastamise test");
sõrm.algus (57600);
viivitus (5);
if (finger.verifyPassword ()) {
Serial.println ("Kõik süsteemid töötavad");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Palun skaneeri sõrme");
} muud {
Serial.println ("VIGA: sõrmejäljeandurit ei leitud!");
lcd.setCursor (0, 0);
lcd.print ("VIGA: sõrmejälg");
lcd.setCursor (1, 1);
lcd.print ("andurit ei leitud!");
samas (1) {viivitus (1); }
}
finger.getTemplateCount ();
Serial.print ("Andur sisaldab"); Serial.print (sõrme.templateCount); Serial.println ("mallid"); Serial.println ("Ootan kehtivat sõrme …"); }
tühine (* resetFunc) (tühine) = 0;
void loop () {
getFingerprintIDez ();
viivitus (50);
}
uint8_t getFingerprintID () {
uint8_t p = sõrm.getImage ();
lüliti (p) {
juhtum FINGERPRINT_OK:
Serial.println ("Pilt tehtud");
murda;
juhtum FINGERPRINT_NOFINGER:
Serial.println ("Sõrme ei tuvastatud");
tagasta p;
juhtum FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Suhtlusviga");
tagasta p;
juhtum FINGERPRINT_IMAGEFAIL:
Serial.println ("Kujutise viga");
tagasta p;
vaikimisi:
Serial.println ("Tundmatu viga");
tagasta p;
}
p = sõrm.kujutis2Tz ();
lüliti (p) {
juhtum FINGERPRINT_OK:
Serial.println ("Pilt teisendatud");
murda;
juhtum FINGERPRINT_IMAGEMESS:
Serial.println ("Pilt on liiga räpane");
tagasta p;
juhtum FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Suhtlusviga");
tagasta p;
juhtum FINGERPRINT_FEATUREFAIL:
Serial.println ("Sõrmejälgede funktsioone ei leitud");
tagasta p;
juhtum FINGERPRINT_INVALIDIMAGE:
Serial.println ("Ei leidnud sõrmejälgede funktsioone");
tagasta p;
vaikimisi:
Serial.println ("Tundmatu viga");
tagasta p;
}
p = sõrm.sõrmFastSearch ();
kui (p == FINGERPRINT_OK) {
Serial.println ("Leiti prindivaste!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Suhtlusviga");
tagasta p;
} muu, kui (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Ei leidnud vastet");
tagasta p;
} muud {
Serial.println ("Tundmatu viga");
tagasta p;
}
Serial.print ("Leitud ID #"); Jadajälg (sõrme.sõrme ID);
Serial.print ("enesekindlalt"); Serial.println (sõrme.kindlus);
tagasi sõrm.sõrme ID;
}
int getFingerprintIDez () {
uint8_t p = sõrm.getImage ();
if (p! = FINGERPRINT_OK) tagastab -1;
p = sõrm.kujutis2Tz ();
if (p! = FINGERPRINT_OK) tagastab -1;
p = sõrm.sõrmFastSearch ();
if (p! = FINGERPRINT_OK) tagastab -1;
Serial.print ("Leitud ID #"); Jadajälg (sõrme.sõrme ID);
Serial.print ("enesekindlalt"); Serial.println (sõrme.kindlus);
kui (sõrme.sõrme ID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Sõrm on aktsepteeritud");
lcd.setCursor (2, 0);
lcd.print ("nüüd skaneeri kaart …");
lcd.setCursor (0, 3);
lcd.print ("===================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== KOODI redigeerimine ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Võtke paberitükk koos ID -ga, seal oli 4 kahekohalist numbrit
mfrc522.uid.uidByte [2] == 0x90 && // Vaadake koodi järgi, kus on kirjas 0x92, 0xAB, 0x90, 0x1c? Sisestage igaüks
mfrc522.uid.uidByte [3] == 0x1C) {// kahekohalisest jaotisest pärast 0x. Näiteks ID -jaotis ütleb
lcd.clear (); // 3E, seejärel sisestage 3x pärast 0x, et saada 0x3E. Tehke seda iga sektsiooni jaoks
lcd.setCursor (3, 0);
lcd.print ("Lõpuks sisesta");
lcd.setCursor (1, 1);
lcd.print ("juhtkangi parool");
samas (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) {
d1 = U;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
viivitus (500);
samas (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;
}
viivitus (500);
samas (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;
}
viivitus (500);
samas (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;
}
viivitus (500);
kui (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= KOODI redigeerimine ====== ================
lcd.clear (); // See jaotis on see, kus saate parooli muuta juhtkangiga
lcd.setCursor (2, 0); // parool on seatud vasakule, üles vasakule, paremale. Kui soovite muuta
lcd.print ("Juurdepääs lubatud!"); // see, pane ükskõik millisesse lahtrisse L vasakule, R paremale, U üles või D alla
lcd.setCursor (2, 1); // 4 jaotist tähega == märkide järel.
lcd.print ("Sahtel lukust lahti");
lcd.setCursor (2, 2);
lcd.print ("Kui valmis, liiguta");
lcd.setCursor (1, 3);
lcd.print ("juhtkangi uuesti avamiseks");
servo.write (90);
samas (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("Sahtel lukus");
viivitus (3000);
resetFunc ();
} muud {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("JUURDEPÄÄS KEELATUD !!!");
lcd.setCursor (0, 2);
lcd.print ("Süsteemi taaskäivitamine …");
viivitus (3000);
resetFunc ();
}
} muud {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("JUURDEPÄÄS KEELATUD !!!");
lcd.setCursor (0, 2);
lcd.print ("Süsteemi taaskäivitamine …");
viivitus (3000);
resetFunc ();
}
} muud {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("JUURDEPÄÄS KEELATUD !!!");
lcd.setCursor (0, 2);
lcd.print ("Süsteemi taaskäivitamine …");
viivitus (3000);
resetFunc ();
}
tagasi sõrm.sõrme ID; }
6. samm: lõpetage
Üks asi, mille unustasin teile öelda, 2 asja on see, et ma ehitasin selle enne pildistamist, nii et ma ei saanud teile näidata, kuidas ma kasti ehitasin. Teine on see, et servoosa on soovitatav keerata sellele osale, mis pöörleb. Kui te seda ei tee, võib keegi lukustatud sahtlit tõmmata ja tüki ära tõmmata. Kuid enne selle keeramist leidke õige koht, kuhu see panna, sest servo pöörleb teatud määral. Või saate seda lihtsalt koodis muuta. Kui mõni elektroonika käitub naljakalt, võiksite leida mõne muu viisi jaoks 5 V toomise. Märkasin, kui mu sõrmejäljeskanner vilkus, ekraan vilksas sellega kergelt koos ja servo tegi müra. Kui servo liikus, läks ekraan hämaraks. Loodan, et teile projekt meeldis! Kui teil on küsimusi, jätke need kommentaaridesse. Ma ei ole palju juhendeid, kuid vastan neile nii kiiresti kui võimalik!
Soovitan:
B-Safe, kaasaskantav seif: 8 sammu (piltidega)
B-Safe, kaasaskantav seif: *** 4. september 2019: laadisin üles karbi enda uue 3D-faili. Tundus, et mu lukk oli hea sulgemise jaoks 10 mm liiga kõrge. *** Probleem Kujutage ette: ärkate ühel hommikul ja ilm on tõesti hea. Sa tahad randa minna. Sest sa ei
RFID -panga seif: 3 sammu
RFID Bank Safe: RFID on raadiosagedustuvastus. Pangaseif on väärtesemete seif. Kahe kokku panemine muudab panga turvalisemaks. Siit saate teada, kuidas ehitada üks Arduino komponentidest ja natuke garaažitööd
Hele seif: 6 sammu
Hele seif: see projekt pakub välja viisi oma asja turvamiseks. Projekti lõpptulemus on lüliti, mida arduino käsib pärast kahte turvataset. Lüliti abil saab portaali avada, kaugjuhtimispuldi asendada või lihtsalt mootorit juhtida. Minu projekti ettevalmistus
Seif: 3 sammu
Turvakast: selline peaks olema teie lõpptulemus pärast selle kokkupanemist ja koodi üleslaadimist
Kõrgtehnoloogiline männiokkaga Camo värvitud sülearvuti: 5 sammu
Kõrgtehnoloogiline männinõelaga Camo värvitud sülearvuti: olin just lõpetanud oma vana Toshiba sülearvuti seadistamise Linuxiga ja otsisin läbi juhendatava saidi, kui sattusin just murph38_99 postitusele. Ma tõesti ei otsinud meetodit maalida relva, aga mul tuli hull idee ja