Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Bygning af en kasse
- Trin 2: Tilslutning
- Trin 3: Downloadning af biblioteker
- Trin 4: Opsætning af fingeraftrykssensor og Rfid -kortsensor
- Trin 5: KODEN
- Trin 6: Afslut
![Arduino High Tech Safe: 6 trin Arduino High Tech Safe: 6 trin](https://i.howwhatproduce.com/images/006/image-17938-j.webp)
Video: Arduino High Tech Safe: 6 trin
![Video: Arduino High Tech Safe: 6 trin Video: Arduino High Tech Safe: 6 trin](https://i.ytimg.com/vi/CdkctG37fRY/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
![Arduino High Tech Safe Arduino High Tech Safe](https://i.howwhatproduce.com/images/006/image-17938-1-j.webp)
Dette er min arduino højteknologiske pengeskab. Du skal scanne din finger, scanne dit kort og derefter indtaste en firecifret adgangskode for at låse skuffen op. Dette projekt anbefales ikke til begyndere, fordi det er meget avanceret. Koden er lang, men jeg vil dele den i dette projekt. Omkostningerne er omkring $ 75, hvis du bygger den samme pengeskab som mig. Dette projekt kan også tage 1-3 dage at gennemføre. Så lad os komme i gang!
Forbrugsvarer
For at bygge den samme pengeskab som min skal du bruge:
Arduino (Uno anbefales, fordi jeg ikke har trin til arduino mega eller nano. Men du kan stadig bruge dem)
brødbræt
servo
jumper ledninger
joystick
20*4 (du kan bruge 16*4, men du bliver nødt til at ændre koden)
fingeraftryksscanner
mfrc522 rfid -kortscanner
en spand legoer
Trin 1: Bygning af en kasse
![Bygger en kasse Bygger en kasse](https://i.howwhatproduce.com/images/006/image-17938-2-j.webp)
Først skal du bruge en kasse til at sætte din elektronik i. Du kan bruge legoer, en 3D -trykt æske eller endda pap! (Selvom det kan være sværere) Glem ikke at sætte huller i det til en skuffe og din elektronik. Hvis du bruger rfid -kortscanneren, behøver du ikke at sætte et hul til det, hvis dine vægge er tynde. Kortene fungerer stadig, men du skal lægge nøgleringene tæt, så rfid -kortets senor kan læse dem. Efterlad også plads til din arduino og ledninger indeni. BEMÆRK: Når du bygger skuffen, skal du efterlade et hul i den, så din servo kan dreje og låse skuffen.
Trin 2: Tilslutning
![Kabelføring! Kabelføring!](https://i.howwhatproduce.com/images/006/image-17938-3-j.webp)
Dette trin kan være kompliceret, fordi du skal tilslutte ledninger til det nøjagtige sted, ellers vil elektronikken ikke fungere. Jeg har ikke et ledningsdiagram, men jeg vil fortælle dig, om hver enkelt går. Ledningerne er kun til arduino uno. Du bliver nødt til at søge efter at sætte ledningerne, hvis du bruger en arduino mega eller nano. Hvis du ikke bruger alle de elektroner, jeg har, kan du bare springe den ledning over.
Fingeraftryksscanner: grøn ledning: D2 hvid ledning: D3 sort ledning: GND rød ledning: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Switch = D4
rfid -kortscanner: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
lcd -skærm: 5V = 5V GND = GND sda = A4 sck = A5
Servo: rød ledning: 5V Brun tråd: GND gul ledning: D6
BEMÆRK: STIK IKKE RFID CARD SCANNER I 5V. HVIS DU GØR DET, VIL DET GÅ PÅ !!!
Du undrer dig måske over, hvorfor jeg sagde at tilslutte joystick -strømmen til 3,3V, når der står 5V på siden. Det er fordi servoen, skærmen og fingeraftryksscanneren har brug for 5V. Hvis du tilføjer joysticket til det, fungerer elektronikken muligvis ikke, fordi alt har brug for 5V. Joysticket fungerer stadig med 3,3V. Det er bare den maksimale værdi, der ikke vil være 1023, den vil være ~ 670.
Trin 3: Downloadning af biblioteker
I dette projekt skal du bruge 6 biblioteker til at bruge al elektronikken. 1 til servoen, 1 til fingeraftrykssensoren, 2 til rfid -kortscanner og 2 til skærmen. Joysticket behøver ikke et bibliotek. Hvad er et bibliotek nu? Det er dybest set en fil, der indeholder masser af kode, som du kan bruge i dit projekt med enkle kommandoer. For at få disse biblioteker skal du gå til et sted kaldet GitHub. Hvis du ved, hvordan du downloader og pakker biblioteker ud, skal du bare gå til nedenstående links for at downloade. Hvis du ikke ved hvordan, kan du gå til min instruktive, der taler om, hvordan du downloader et bibliotek i trin 3:
eller søg i en youtube -video om, hvordan du downloader et arduino -bibliotek fra GitHub
LINKER TIL LIRARIES:
Servo
fingeraftrykssensor:
spi
rfid -kort sensor
skærmbibliotek 1
skærmbibliotek 2
Trin 4: Opsætning af fingeraftrykssensor og Rfid -kortsensor
Dette trin taler om, hvordan du konfigurerer fingeraftrykssensor og RFID -kort sensor. Medmindre du allerede har brugt din fingeraftrykssensor, skal du vise den, hvordan dit fingeraftryk ser ud, så det kan gemme det i hukommelsen. Selvom du har brugt det før, bør du sandsynligvis stadig gøre dette trin. Jeg vil fortælle dig, hvordan du gør det kort, men hvis det ikke giver mening, skal du gå til det samme instruerbare link i det sidste trin. Det går meget godt over det. Grundlæggende bare åben arduino ide. Gå til fil> eksempler> adafruit fingeraftrykssensor> tilmeld dig. Upload kode til arduino, åbn den serielle skærm, og følg trinene, den fortæller dig. Når det fortæller dig at give det et nummer. Indtast 1#.
Nu til rfid -kortet er dette trin ret let. Åben arduino ide. Gå til fil> eksempler> mfrc522> læs personlige data. Upload til arduino og åben seriel skærm. Scan det kort eller den nøglering, du vil bruge, der fulgte med din sensor. Så vil det give dig nogle oplysninger. Kig efter kortets ID, det vil være 4 sæt med 2 cifre. Noget som dette: AB 45 2Y 45, men din kode vil være anderledes. Skriv dette ned på et stykke papir. Du får brug for det igen senere. Det er det for dette trin.
Trin 5: KODEN
Dette bliver det sværeste trin for de fleste af jer, men det er ret simpelt. Kopier og indsæt først koden i arduino -ideen nedenunder. For det andet, rediger de 2 sektioner, hvor der står EDIT CODE. 1 sektion er til kortscanneren, 1 er til joysticket. Disse trin kan ikke springes over. Når det er gjort, skal du uploade kode til arduino!
#include #include Fingerprint.h>
#omfatte
#omfatte
#omfatte
#omfatte
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIV);
#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;
char d1;
char d2;
char d3;
char d4;
ugyldig opsætning () {
servo. fastgør (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
mens (! Seriel);
SPI.begin ();
mfrc522. PCD_Init ();
forsinkelse (4);
mfrc522. PCD_DumpVersionToSerial ();
forsinkelse (100);
Serial.println ("\ n / nAdafruit finger detect test");
finger.begynder (57600);
forsinkelse (5);
hvis (finger.verifyPassword ()) {
Serial.println ("Alle systemer fungerer");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Scan venligst finger");
} andet {
Serial.println ("FEJL: Fingeraftrykssensor ikke fundet!");
lcd.setCursor (0, 0);
lcd.print ("FEJL: Fingeraftryk");
lcd.setCursor (1, 1);
lcd.print ("sensor ikke fundet!");
mens (1) {forsinkelse (1); }
}
finger.getTemplateCount ();
Serial.print ("Sensor indeholder"); Serial.print (finger.templateCount); Serial.println ("skabeloner"); Serial.println ("Venter på gyldig finger …"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
forsinkelse (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
switch (p) {
sag FINGERPRINT_OK:
Serial.println ("Billede taget");
pause;
sag FINGERPRINT_NOFINGER:
Serial.println ("Ingen finger registreret");
returnere p;
sag FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikationsfejl");
returnere p;
sag FINGERPRINT_IMAGEFAIL:
Serial.println ("billedfejl");
returnere p;
Standard:
Serial.println ("Ukendt fejl");
returnere p;
}
p = finger.image2Tz ();
switch (p) {
sag FINGERPRINT_OK:
Serial.println ("Billede konverteret");
pause;
sag FINGERPRINT_IMAGEMESS:
Serial.println ("Billedet er for rodet");
returnere p;
sag FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikationsfejl");
returnere p;
sag FINGERPRINT_FEATUREFAIL:
Serial.println ("Kunne ikke finde fingeraftryksfunktioner");
returnere p;
sag FINGERPRINT_INVALIDIMAGE:
Serial.println ("Kunne ikke finde fingeraftryksfunktioner");
returnere p;
Standard:
Serial.println ("Ukendt fejl");
returnere p;
}
p = finger.fingerFastSearch ();
hvis (p == FINGERPRINT_OK) {
Serial.println ("Fundet et printmatch!");
} ellers hvis (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kommunikationsfejl");
returnere p;
} ellers hvis (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Fandt ikke et match");
returnere p;
} andet {
Serial.println ("Ukendt fejl");
returnere p;
}
Serial.print ("Fundet ID #"); Serielt tryk (finger.fingerID);
Serial.print ("med tillid til"); Serial.println (finger.confidence);
return finger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
hvis (p! = FINGERPRINT_OK) returnerer -1;
p = finger.image2Tz ();
hvis (p! = FINGERPRINT_OK) returnerer -1;
p = finger.fingerFastSearch ();
hvis (p! = FINGERPRINT_OK) returnerer -1;
Serial.print ("Fundet ID #"); Serielt tryk (finger.fingerID);
Serial.print ("med tillid til"); Serial.println (finger.confidence);
hvis (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Finger accepteret");
lcd.setCursor (2, 0);
lcd.print ("nu scannekort …");
lcd.setCursor (0, 3);
lcd.print ("=====================>");
mens (! mfrc522. PICC_IsNewCardPresent ());
mens (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ========================= EDIT CODE ========= ================
mfrc522.uid.uidByte [1] == 0xAB && // Tag det stykke papir med id'et på, der var 4 sæt med 2 cifre
mfrc522.uid.uidByte [2] == 0x90 && // Kig efter koden, se hvor der står 0x92, 0xAB, 0x90, 0x1c? Indtast hver
mfrc522.uid.uidByte [3] == 0x1C) {// af det 2 -cifrede afsnit efter 0x. For eksempel siger afsnittet i id'et
lcd.clear (); // 3E, indtast derefter 3E efter 0x for at lave 0x3E. Gør dette for hver sektion
lcd.setCursor (3, 0);
lcd.print ("Endelig indtast");
lcd.setCursor (1, 1);
lcd.print ("joystick -adgangskode");
mens (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); hvis (analogRead (A2) <= 100) {
d1 = L;
}
hvis (analogRead (A2)> = 670) {
d1 = R;
}
hvis (analogRead (A3) <= 100) {
d1 = U;
}
hvis (analogRead (A3)> = 670) {
d1 = D;
}
forsinkelse (500);
mens (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
hvis (analogRead (A2) <= 100) {
d2 = L;
}
hvis (analogRead (A2)> = 670) {
d2 = R;
}
hvis (analogRead (A3) <= 100) {
d2 = U;
}
hvis (analogRead (A3)> = 670) {
d2 = D;
}
forsinkelse (500);
mens (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
hvis (analogRead (A2) <= 100) {
d3 = L;
}
hvis (analogRead (A2)> = 670) {
d3 = R;
}
hvis (analogRead (A3) <= 100) {
d3 = U;
}
hvis (analogRead (A3)> = 670) {
d3 = D;
}
forsinkelse (500);
mens (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
hvis (analogRead (A2) <= 100) {
d4 = L;
}
hvis (analogRead (A2)> = 670) {
d4 = R;
}
hvis (analogRead (A3) <= 100) {
d4 = U;
}
hvis (analogRead (A3)> = 670) {
d4 = D;
}
forsinkelse (500);
hvis (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT CODE ====== ==================
lcd.clear (); // Dette afsnit er, hvor du kan redigere adgangskoden med joysticket
lcd.setCursor (2, 0); // adgangskoden er indstillet til venstre, op til venstre, til højre. Hvis du vil ændre
lcd.print ("Adgang givet!"); // det, sæt en L for venstre, R for højre, U for op eller D for ned i nogen af
lcd.setCursor (2, 1); // 4 sektioner med et bogstav efter == tegnene.
lcd.print ("Skuffe ulåst.");
lcd.setCursor (2, 2);
lcd.print ("Når du er færdig, skal du flytte");
lcd.setCursor (1, 3);
lcd.print ("joystick til genlåsning");
servo.write (90);
mens (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print ("skuffe låst");
forsinkelse (3000);
resetFunc ();
}andet{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ADGANG NÆGT !!!");
lcd.setCursor (0, 2);
lcd.print ("Genstart af system …");
forsinkelse (3000);
resetFunc ();
}
}andet{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ADGANG NÆGT !!!");
lcd.setCursor (0, 2);
lcd.print ("Genstart af system …");
forsinkelse (3000);
resetFunc ();
}
}andet{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ADGANG NÆGT !!!");
lcd.setCursor (0, 2);
lcd.print ("Genstart af system …");
forsinkelse (3000);
resetFunc ();
}
return finger.fingerID; }
Trin 6: Afslut
En ting jeg glemte at fortælle dig, ja 2 ting er, at jeg byggede dette, før jeg tog billeder, så jeg kunne ikke vise dig, hvordan jeg byggede kassen. Den anden er, at det anbefales at skrue servodelen på den del, der drejer. Hvis du ikke gør det, kan nogen trække skuffen, mens den er låst, og trække stykket af. Men før du skruer den fast, skal du finde det rigtige sted, hvor du skal sætte den på, fordi servoen drejer til en vis grad. Eller du kan bare ændre det i koden. Hvis noget af elektronikken virker sjovt, vil du måske finde en anden måde at få 5V til nogle af dem. Jeg lagde mærke til, at da min fingeraftryksscanner blinkede, ville skærmen blinke lidt med den, og servoen ville lave støj. Når servoen flyttede, ville skærmen blive svag. Jeg håber du nød projektet! Hvis du har spørgsmål, skal du efterlade dem i kommentarerne. Jeg er ikke meget på instrukser, men jeg vil besvare dem, så snart jeg kan!
Anbefalede:
Corona Safe: Automatisk vandbesparende hane: 6 trin
![Corona Safe: Automatisk vandbesparende hane: 6 trin Corona Safe: Automatisk vandbesparende hane: 6 trin](https://i.howwhatproduce.com/images/001/image-753-26-j.webp)
Corona Safe: Automatisk vandbesparende hane: Vi er alle nødt til at vaske hænder nu og da for at slippe af med virussen og bakterierne specielt til Corona-virus, vi skal vaske vores hænder i 20 sekunder for helt at slippe af med det. Også sæbedispenseren eller haneknappen er ikke nødvendigvis hygiejnisk eller
B-Safe, den bærbare pengeskab: 8 trin (med billeder)
![B-Safe, den bærbare pengeskab: 8 trin (med billeder) B-Safe, den bærbare pengeskab: 8 trin (med billeder)](https://i.howwhatproduce.com/images/005/image-13584-j.webp)
B-Safe, the Portable Safe: *** 4. september 2019: Jeg har uploadet en ny 3D-fil af selve boksen. Det så ud til, at min lås var 10 mm for høj til en god tætning *** Problemet Forestil dig dette: Du vågner en morgen, og vejret er rigtig godt. Du vil gå til stranden. Fordi du ikke
Arduino Key Safe: 4 trin
![Arduino Key Safe: 4 trin Arduino Key Safe: 4 trin](https://i.howwhatproduce.com/images/008/image-23204-j.webp)
Arduino Key Safe: Ideer fra: https://www.instructables.com/id/Key-Safe/Jeg er en person, der altid har mistet mine ting uden grund. Jeg gør denne nøgle sikker, så jeg kan huske at lægge mine ting indeni, uden at ting går tabt. I dette projekt har jeg foretaget en vis forbedring
Arduino -baseret digital SAFE BOX: 10 trin
![Arduino -baseret digital SAFE BOX: 10 trin Arduino -baseret digital SAFE BOX: 10 trin](https://i.howwhatproduce.com/images/005/image-13219-11-j.webp)
Arduino Based Digital SAFE BOX: Hej fyre! Har du noget, du gerne vil opbevare sikkert? Noget der skal holdes væk fra uønskede ubudne gæster og privatlivsangribere? Nå, jeg har en løsning på dit problem! Her er en Arduino -baseret lås Safe Box
High-Tech Pine Needle Camo Painted LapTop Computer: 5 trin
![High-Tech Pine Needle Camo Painted LapTop Computer: 5 trin High-Tech Pine Needle Camo Painted LapTop Computer: 5 trin](https://i.howwhatproduce.com/images/005/image-14027-28-j.webp)
High-Tech Pine Needle Camo Painted LapTop Computer: Jeg var lige færdig med at konfigurere min gamle Toshiba LapTop med Linux og kiggede på det instruerbare websted, da jeg lige skete ved opslaget af "murph38_99. Jeg ledte virkelig ikke efter en metode til at male en pistol med, men jeg fik en skør idé og