Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Bygg en boks
- Trinn 2: Tilkobling
- Trinn 3: Last ned biblioteker
- Trinn 4: Konfigurere fingeravtrykkssensor og Rfid -kortsensor
- Trinn 5: KODEN
- Trinn 6: Fullfør
Video: Arduino High Tech Safe: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Dette er min arduino høyteknologiske safe. Du må skanne fingeren, skanne kortet og deretter skrive inn et firesifret passord for å låse opp skuffen. Dette prosjektet anbefales ikke for nybegynnere fordi det er veldig avansert. Koden er lang, men jeg vil dele den i dette prosjektet. Kostnaden er rundt $ 75 hvis du bygger den samme safen som meg. Dette prosjektet kan også ta 1-3 dager å fullføre. Så, la oss komme i gang!
Rekvisita
For å bygge den samme safe som min trenger du:
Arduino (Uno anbefales fordi jeg ikke har trinn for arduino mega eller nano. Men du kan fortsatt bruke dem)
brødbrett
servo
jumper ledninger
styrespak
20*4 (du kan bruke 16*4, men du må endre koden)
fingeravtrykkskanner
mfrc522 rfid -kortskanner
en bøtte legos
Trinn 1: Bygg en boks
Først trenger du en eske for å sette elektronikken i. Du kan bruke legos, en 3D -boks eller til og med papp! (Selv om dette kan være vanskeligere) Ikke glem å sette hull i den for en skuff og elektronikken din. Hvis du bruker rfid -kortskanneren, trenger du ikke sette hull for det hvis veggene er tynne. Kortene fungerer fortsatt, men du må sette nøkkelringene tett slik at rfid -kortets senor kan lese dem. La også plass til arduino og ledninger inne. MERK: Når du bygger skuffen, la det være et hull i den slik at servoen din kan snu og låse skuffen.
Trinn 2: Tilkobling
Dette trinnet kan være komplisert fordi du må koble ledninger til det nøyaktige stedet, ellers vil elektronikken ikke fungere. Jeg har ikke et koblingsskjema, men jeg vil fortelle deg om hver enkelt går. Ledningene er kun for arduino uno. Du må søke etter å sette ledningene hvis du bruker en arduino mega eller nano. Hvis du ikke bruker alle elektronene jeg har, kan du bare hoppe over ledningene.
Fingerutskriftsscanner: grønn ledning: D2 hvit ledning: D3 svart ledning: GND rød ledning: 5V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Bryter = D4
rfid -kortskanner: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
LCD -skjerm: 5V = 5V GND = GND sda = A4 sck = A5
Servo: rød ledning: 5V Brun ledning: GND gul ledning: D6
MERK: IKKE KOBLE RFID -KORTSKANNER I 5V. HVIS DU GJØR DET, VIL DET BRYTE !!!
Du lurer kanskje på hvorfor jeg sa å koble styrespaken til 3,3V når det står 5V på siden. Det er fordi servoen, skjermen og fingeravtrykksskanneren trenger 5V. Hvis du legger joysticken til det, fungerer kanskje ikke elektronikken fordi alt trenger 5V. Styrespaken vil fortsatt fungere med 3,3V. Det er bare maksverdien som ikke vil være 1023, den vil være ~ 670.
Trinn 3: Last ned biblioteker
I dette prosjektet trenger du 6 biblioteker for å bruke all elektronikken. 1 for servoen, 1 for fingeravtrykkssensoren, 2 for rfid -kortskanner og 2 for skjermen. Styrespaken trenger ikke et bibliotek. Hva er et bibliotek? Det er i utgangspunktet en fil som inneholder mye kode som du kan bruke i prosjektet ditt med enkle kommandoer. For å få disse bibliotekene må du gå til et sted som heter GitHub. Hvis du vet hvordan du laster ned og pakker ut biblioteker, går du til koblingene nedenfor for nedlasting. Hvis du ikke vet hvordan, kan du gå til instruksjonsboken min som snakker om hvordan du laster ned et bibliotek i trinn 3:
eller søk i en youtube -video om hvordan du laster ned et arduino -bibliotek fra GitHub
LENKER TIL LIRARIES:
Servo
fingeravtrykkssensor:
spi
rfid -kortsensor
skjermbibliotek 1
skjermbibliotek 2
Trinn 4: Konfigurere fingeravtrykkssensor og Rfid -kortsensor
Dette trinnet snakker om hvordan du konfigurerer fingeravtrykkssensor og rfid -kortsensor. Med mindre du allerede har brukt fingeravtrykkssensoren din, må du vise den hvordan fingeravtrykket ditt ser ut, slik at det kan lagre det i minnet. Selv om du har brukt det før, bør du sannsynligvis gjøre dette trinnet. Jeg vil fortelle deg hvordan du gjør det kort, men hvis det ikke er fornuftig, gå til den samme instruerbare lenken i det siste trinnet. Det går veldig bra over det. Grunnleggende bare åpne arduino ide. Gå til fil> eksempler> adafruit fingeravtrykkssensor> registrer deg. Last opp kode til arduino, åpne seriell skjerm, og følg trinnene den forteller deg. Når den forteller deg å gi den et tall. Skriv inn 1#.
Nå for rfid -kortet, dette trinnet er ganske enkelt. Åpen arduino ide. Gå til fil> eksempler> mfrc522> les personlige data. Last opp til arduino og åpne seriell skjerm. Skann kortet eller nøkkelringen du vil bruke som fulgte med sensoren. Da vil det gi deg litt informasjon. Se etter ID -en til kortet det vil være 4 sett med 2 sifre. Noe som dette: AB 45 2Y 45, men koden din vil være annerledes. Skriv dette ned på et stykke papir. Du trenger det igjen senere. Det er det for dette trinnet.
Trinn 5: KODEN
Dette kommer til å være det vanskeligste trinnet for de fleste av dere, men det er ganske enkelt. Kopier og lim først koden inn i arduino ideen nedenfra. For det andre, rediger de to seksjonene der det står EDIT CODE. 1 del er for kortskanneren, 1 er for styrespaken. Disse trinnene kan ikke hoppes over. Når du er ferdig, last opp koden til arduino!
#include #include Fingerprint.h>
#inkludere
#inkludere
#inkludere
#inkludere
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;
røye d1;
røye d2;
røye d3;
røye d4;
ugyldig oppsett () {
servo. fest (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
mens (! Seriell);
SPI.begin ();
mfrc522. PCD_Init ();
forsinkelse (4);
mfrc522. PCD_DumpVersionToSerial ();
forsinkelse (100);
Serial.println ("\ n / nAdafruit finger detect test");
finger.begin (57600);
forsinkelse (5);
if (finger.verifyPassword ()) {
Serial.println ("Alle systemer fungerer");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Vennligst skann finger");
} annet {
Serial.println ("FEIL: Fingerutskriftssensor ikke funnet!");
lcd.setCursor (0, 0);
lcd.print ("FEIL: Fingerprint");
lcd.setCursor (1, 1);
lcd.print ("sensor ikke funnet!");
mens (1) {forsinkelse (1); }
}
finger.getTemplateCount ();
Serial.print ("Sensor inneholder"); Serial.print (finger.templateCount); Serial.println ("maler"); Serial.println ("Venter på gyldig finger …"); }
void (* resetFunc) (void) = 0;
void loop () {
getFingerprintIDez ();
forsinkelse (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
bytte (p) {
sak FINGERPRINT_OK:
Serial.println ("Bilde tatt");
gå i stykker;
sak FINGERPRINT_NOFINGER:
Serial.println ("Ingen finger oppdaget");
retur p;
sak FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikasjonsfeil");
retur p;
sak FINGERPRINT_IMAGEFAIL:
Serial.println ("bildefeil");
retur p;
misligholde:
Serial.println ("Ukjent feil");
retur p;
}
p = finger.image2Tz ();
bytte (p) {
sak FINGERPRINT_OK:
Serial.println ("Bilde konvertert");
gå i stykker;
sak FINGERPRINT_IMAGEMESS:
Serial.println ("Bildet er for rotete");
retur p;
sak FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Kommunikasjonsfeil");
retur p;
sak FINGERPRINT_FEATUREFAIL:
Serial.println ("Kunne ikke finne fingeravtrykkfunksjoner");
retur p;
sak FINGERPRINT_INVALIDIMAGE:
Serial.println ("Kunne ikke finne fingeravtrykkfunksjoner");
retur p;
misligholde:
Serial.println ("Ukjent feil");
retur p;
}
p = finger.fingerFastSearch ();
hvis (p == FINGERPRINT_OK) {
Serial.println ("Fant en utskriftsmatch!");
} annet hvis (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Kommunikasjonsfeil");
retur p;
} annet hvis (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Fant ingen treff");
retur p;
} annet {
Serial.println ("Ukjent feil");
retur p;
}
Serial.print ("Fant ID #"); Serial.print (finger.fingerID);
Serial.print ("med tillit 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 ("Fant ID #"); Serial.print (finger.fingerID);
Serial.print ("med tillit til"); Serial.println (finger.confidence);
hvis (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Finger akseptert");
lcd.setCursor (2, 0);
lcd.print ("nå skannekort …");
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 && // Ta det papiret med ID -en på, det var 4 sett med 2 sifre
mfrc522.uid.uidByte [2] == 0x90 && // Se etter koden, se hvor det står 0x92, 0xAB, 0x90, 0x1c? Skriv inn hver
mfrc522.uid.uidByte [3] == 0x1C) {// av den tosifrede delen etter 0x. For eksempel sier delen av ID -en
lcd.clear (); // 3E, skriv deretter inn 3E etter 0x for å lage 0x3E. Gjør dette for hver seksjon
lcd.setCursor (3, 0);
lcd.print ("Endelig, skriv inn");
lcd.setCursor (1, 1);
lcd.print ("joystick -passord");
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;
}
if (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;
}
if (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;
}
if (analogRead (A3) <= 100) {
d3 = U;
}
if (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;
}
if (analogRead (A3)> = 670) {
d4 = D;
}
forsinkelse (500);
hvis (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT CODE ====== ==================
lcd.clear (); // Denne delen er hvor du kan redigere passordet med styrespaken
lcd.setCursor (2, 0); // passordet er satt til venstre, opp til venstre, høyre. Hvis du vil endre
lcd.print ("Tilgang gitt!"); // den, sett en L for venstre, R for høyre, U for opp, eller D for ned i noen av
lcd.setCursor (2, 1); // 4 seksjoner med en bokstav etter == skiltene.
lcd.print ("Skuff ulåst.");
lcd.setCursor (2, 2);
lcd.print ("Når du er ferdig, flytt");
lcd.setCursor (1, 3);
lcd.print ("joystick til relock");
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 ("Skuff låst");
forsinkelse (3000);
resetFunc ();
}ellers{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Start systemet på nytt …");
forsinkelse (3000);
resetFunc ();
}
}ellers{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Start systemet på nytt …");
forsinkelse (3000);
resetFunc ();
}
}ellers{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESS DENIED !!!");
lcd.setCursor (0, 2);
lcd.print ("Start systemet på nytt …");
forsinkelse (3000);
resetFunc ();
}
return finger.fingerID; }
Trinn 6: Fullfør
En ting jeg glemte å fortelle deg, vel 2 ting er at jeg bygde dette før jeg tok bilder, så jeg kunne ikke vise deg hvordan jeg bygde boksen. Den andre er at det anbefales å skru servodelen på delen som snur. Hvis du ikke gjør det, kan noen trekke skuffen mens den er låst og trekke av stykket. Men før du skrur den på, finn det rette stedet å sette den på fordi servoen svinger til en viss grad. Eller du kan bare endre det i koden. Hvis noen av elektronikkene virker morsomme, kan det være lurt å finne en annen måte å få 5V for noen av dem. Jeg la merke til at når fingeravtrykksskanneren min blinket, ville skjermen blinke litt med den, og servoen bråket. Når servoen flyttet, ble skjermen svak. Jeg håper du likte prosjektet! Hvis du har spørsmål, legg dem i kommentarene. Jeg er ikke mye på instrukser, men jeg vil svare dem så snart jeg kan!
Anbefalt:
Corona Safe: Automatisk vannbesparende kran: 6 trinn
Corona Safe: Automatisk vannbesparende kran: Vi må alle vaske hender nå og da for å bli kvitt viruset og bakteriene spesielt for Corona-viruset, vi må vaske hendene våre i 20 sekunder for å bli kvitt det helt. Såpedispenseren eller kranbryteren er kanskje ikke nødvendigvis hygienisk eller
B-Safe, den bærbare safe: 8 trinn (med bilder)
B-Safe, the Portable Safe: *** 4. september 2019: Jeg lastet opp en ny 3D-fil av selve esken. Det virket som om låsen min var 10 mm for høy for et godt lukk *** Problemet Tenk deg dette: Du våkner en morgen og været er skikkelig bra. Du vil gå til stranden. Fordi du ikke
Arduino Key Safe: 4 trinn
Arduino Key Safe: Ideer fra: https://www.instructables.com/id/Key-Safe/Jeg er en person som alltid har mistet tingene mine uten grunn. Jeg gjør denne nøkkelen trygg, så da kan jeg huske å sette tingene mine inne, uten at ting går seg vill. I dette prosjektet har jeg gjort noen forbedringer
Arduino -basert digital SAFE BOX: 10 trinn
Arduino Based Digital SAFE BOX: Hei folkens! Har du noe du vil oppbevare trygt? Noe som må holdes borte fra uønskede inntrengere og personverninntrengere? Vel, jeg har en løsning på problemet ditt! Her er en Arduino -basert lås Safe Box
High-Tech Pine Needle Camo Painted LapTop Computer: 5 trinn
High-Tech Pine Needle Camo Painted LapTop Computer: Jeg hadde nettopp ferdig med å sette opp min gamle Toshiba LapTop med Linux og lette etter det instruerbare nettstedet da jeg akkurat skjedde med innlegget av "murph38_99. Jeg var egentlig ikke ute etter en metode for å male en pistol med, men jeg fikk en gal idé og