Sisukord:

Arduino kõrgtehnoloogiline seif: 6 sammu
Arduino kõrgtehnoloogiline seif: 6 sammu

Video: Arduino kõrgtehnoloogiline seif: 6 sammu

Video: Arduino kõrgtehnoloogiline seif: 6 sammu
Video: Quand j'ai la flemme d'ouvrir ma boîte de thé ☕🤤🥱 . #arduino #hightech #electrotech #électronique 2024, Juuli
Anonim
Arduino kõrgtehnoloogiline seif
Arduino kõrgtehnoloogiline seif

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

Kasti ehitamine
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

Juhtmestik!
Juhtmestik!

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: