Përmbajtje:
- Furnizimet
- Hapi 1: Ndërtimi i një kutie
- Hapi 2: Instalimi i telave
- Hapi 3: Shkarkimi i Bibliotekave
- Hapi 4: Vendosja e sensorit të gjurmëve të gishtave dhe sensorit të kartës Rfid
- Hapi 5: KODI
- Hapi 6: Përfundoni
Video: Arduino High Tech Safe: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:13
Ky është kasaforta ime arduino e teknologjisë së lartë. Duhet të skanoni gishtin, të skanoni kartën tuaj, pastaj të futni një fjalëkalim 4 shifror për të zhbllokuar sirtarin. Ky projekt nuk rekomandohet për fillestarët sepse është shumë i avancuar. Kodi është i gjatë, por unë do ta ndaj në këtë projekt. Kostoja është rreth 75 dollarë nëse ndërtoni të njëjtën kasafortë si unë. Ky projekt gjithashtu mund të zgjasë 1-3 ditë për t'u përfunduar. Pra, le të fillojmë!
Furnizimet
Për të ndërtuar të njëjtën kasafortë si e imja do t'ju duhet:
Arduino (Uno rekomandohet sepse nuk kam hapa për arduino mega ose nano. Por ju ende mund t'i përdorni ato)
dërrasë buke
servo
telat e kërcyesit
levë
20*4 (mund të përdorni 16*4, por do të duhet të ndryshoni kodin)
skaner i gjurmëve të gishtërinjve
skaner i kartave mfrc522 rfid
një kovë legos
Hapi 1: Ndërtimi i një kutie
Së pari do t'ju duhet një kuti për të futur pajisjet elektronike. Mund të përdorni legos, një kuti të printuar në 3D, apo edhe karton! (Megjithëse kjo mund të jetë më e vështirë) Mos harroni të vendosni vrima në të për një sirtar dhe pajisjet tuaja elektronike. Nëse jeni duke përdorur skanerin e kartave rfid, nuk keni nevojë të vendosni një vrimë për këtë nëse muret tuaja janë të holla. Kartat ende funksionojnë, por ju duhet t'i mbyllni çelësat e kyçit në mënyrë që senori i kartës rfid t'i lexojë ato. Gjithashtu lini vend për arduino -n tuaj dhe telat brenda. SHENIM: Kur ndërtoni sirtarin, lini një vrimë në të në mënyrë që servo juaj të kthehet dhe të bllokojë sirtarin.
Hapi 2: Instalimi i telave
Ky hap mund të jetë i komplikuar sepse ju duhet të lidhni telat në vendin e saktë ose elektronika nuk do të funksionojë. Unë nuk kam një diagram të instalimeve elektrike, por do t'ju them nëse secili shkon. Instalimet elektrike janë vetëm për arduino uno. Ju do të keni për të kërkuar për të vënë telat nëse jeni duke përdorur një arduino mega ose nano. Nëse nuk jeni duke përdorur të gjitha elektronet që kam, thjesht mund ta kaloni atë instalime elektrike.
Skaneri i printimit të gishtërinjve: tela jeshile: tela e bardhë D2: tela e zezë D3: tela e kuqe GND: 5V
Xhojstik: 5V = 3.3V GND = GND X = A2 Y = A3 Ndërprerës = D4
skaner i kartave rfid: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
Ekran LCD: 5V = 5V GND = GND sda = A4 sck = A5
Servo: tela e kuqe: 5V Teli kafe: Teli i verdhë GND: D6
SH NOTNIM: MOS E FSHENI SKANERIN E KARTS RFID N 5 5V. NFSE E BON, DO T B PRISH !!!
Ju mund të pyesni pse thashë të lidhni fuqinë e levës në 3.3V kur thotë 5V anash. Kjo ndodh sepse servo, ekrani dhe skaneri i gjurmëve të gishtërinjve kanë nevojë për 5V. Nëse shtoni levën në të, elektronika mund të mos funksionojë sepse gjithçka ka nevojë për 5V. Joystick do të punojë akoma me 3.3V. Thjesht vlera maksimale nuk do të jetë 1023, do të jetë 670.
Hapi 3: Shkarkimi i Bibliotekave
Në këtë projekt, do t'ju duhen 6 biblioteka për të përdorur të gjithë pajisjet elektronike. 1 për servo, 1 për sensorin e gjurmëve të gishtërinjve, 2 për skanerin e kartave rfid dhe 2 për ekranin. Joystick nuk ka nevojë për një bibliotekë. Tani, çfarë është një bibliotekë? Në thelb është një skedar që përmban shumë kod që mund të përdorni në projektin tuaj me komanda të thjeshta. Për të marrë këto biblioteka, duhet të shkoni në një vend të quajtur GitHub. Nëse dini si të shkarkoni dhe hapni bibliotekat, thjesht shkoni te lidhjet më poshtë për shkarkime. Nëse nuk e dini se si, mund të shkoni te instruksioni im i cili flet se si të shkarkoni një bibliotekë në hapin 3:
ose kërkoni një video në youtube se si të shkarkoni një bibliotekë arduino nga GitHub
LIDHJET ME LIRARI:
Servo
sensori i gjurmëve të gishtërinjve:
spi
sensori i kartës rfid
biblioteka e ekranit 1
biblioteka e ekranit 2
Hapi 4: Vendosja e sensorit të gjurmëve të gishtave dhe sensorit të kartës Rfid
Ky hap flet për mënyrën e vendosjes së sensorit të gjurmëve të gishtërinjve dhe sensorit të kartës rfid. Nëse nuk e keni përdorur tashmë sensorin tuaj të gjurmëve të gishtërinjve, do t'ju duhet të tregoni se si duket gjurma juaj e gishtit në mënyrë që ta ruajë atë në kujtesën e tij. Edhe nëse e keni përdorur më parë, me siguri duhet ta bëni këtë hap. Unë do t'ju tregoj se si ta bëni atë shkurt, por nëse nuk ka kuptim, shkoni te e njëjta lidhje udhëzuese në hapin e fundit. I kalon shumë mirë. Ideja themelore thjesht e hapur arduino. Shkoni te skedari> shembuj> sensori i gjurmëve të gishtërinjve adafruit> regjistrohuni. Ngarko kodin në arduino, hap monitorin serik dhe ndiq hapat që të tregon. Kur ju thotë të jepni një numër. Shkruani 1#.
Tani për kartën rfid, ky hap është mjaft i lehtë. Arduino ide e hapur. Shkoni te skedari> shembuj> mfrc522> lexoni të dhënat personale. Ngarko në arduino dhe hap monitorin serik. Skanoni kartën ose çelësin që dëshironi të përdorni që vjen me sensorin tuaj. Pastaj do t'ju japë disa informacione. Kërkoni ID -në e kartës do të jetë 4 grupe me 2 shifra. Diçka si kjo: AB 45 2Y 45 por kodi juaj do të jetë i ndryshëm. Shkruani këtë në një copë letër. Do t'ju duhet përsëri më vonë. Kaq është për këtë hap.
Hapi 5: KODI
Ky do të jetë hapi më i vështirë për shumicën prej jush, por është mjaft i thjeshtë. Së pari kopjoni dhe ngjisni kodin në arduino ide nga poshtë. Së dyti, redaktoni 2 seksionet ku thuhet EDIT CODE. 1 seksion është për skanerin e kartave, 1 është për levën. Këto hapa nuk mund të anashkalohen. Pasi të keni mbaruar, ngarkoni kodin në arduino!
#include #include Fingerprint.h>
#përfshi
#përfshi
#përfshi
#përfshi
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#përcakto RST_PIN 9
#përcakto SS_PIN 10
MFRC522 mfrc522 (SS_PIN, RST_PIN);
SoftwareSerial mySerial (2, 3);
Gishti Adafruit_Fingerprint = Gjurmë gishtash Adafruit (& mySerial);
Servo servo;
char d1;
kar d2;
kar d3;
char d4;
void setup () {
servo.tach (6);
servo.shkruaj (170);
lcd.filloni (20, 4);
Serial.filloj (9600);
ndërsa (! Serial);
SPI.filloj ();
mfrc522. PCD_Init ();
vonesa (4);
mfrc522. PCD_DumpVersionToSerial ();
vonesë (100);
Serial.println ("\ n / nTesti i zbulimit të gishtit të adafruit");
gisht.filloj (57600);
vonesa (5);
if (finger.verifyPassword ()) {
Serial.println ("Të gjitha sistemet që punojnë");
lcd.qartë ();
lcd.setCursor (1, 0);
lcd.print ("Ju lutemi skanoni gishtin");
} tjetër {
Serial.println ("ERROR: Sensori i printimit të gishtit nuk u gjet!");
lcd.setCursor (0, 0);
lcd.print ("ERROR: Printimi i gishtit");
lcd.setCursor (1, 1);
lcd.print ("sensori nuk u gjet!");
ndërsa (1) {vonesë (1); }
}
finger.getTemplateCount ();
Serial.print ("Sensori përmban"); Serial.print (finger.templateCount); Serial.println ("shabllone"); Serial.println ("Duke pritur për gishtin e vlefshëm …"); }
i pavlefshëm (* resetFunc) (i pavlefshëm) = 0;
lak void () {
getFingerprintIDez ();
vonesë (50);
}
uint8_t merrniFingerprintID () {
uint8_t p = gishti.getImage ();
kaloni (p) {
rasti FINGERPRINT_OK:
Serial.println ("Imazhi i marrë");
pushim;
rasti FINGERPRINT_NOFINGER:
Serial.println ("Asnjë gisht nuk u zbulua");
kthimi p;
rasti FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Gabim komunikimi");
kthimi p;
rasti FINGERPRINT_IMAGEFAIL:
Serial.println ("Gabim në imazh");
kthimi p;
parazgjedhje:
Serial.println ("Gabim i panjohur");
kthimi p;
}
p = gishti.image2Tz ();
kaloni (p) {
rasti FINGERPRINT_OK:
Serial.println ("Imazhi i konvertuar");
pushim;
rasti FINGERPRINT_IMAGEMESS:
Serial.println ("Imazhi shumë i çrregullt");
kthimi p;
rasti FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Gabim komunikimi");
kthimi p;
rasti FINGERPRINT_FEATUREFAIL:
Serial.println ("Nuk u gjetën veçoritë e gjurmëve të gishtërinjve");
kthimi p;
rasti FINGERPRINT_INVALIDIMAGE:
Serial.println ("Nuk u gjetën veçoritë e gjurmëve të gishtërinjve");
kthimi p;
parazgjedhje:
Serial.println ("Gabim i panjohur");
kthimi p;
}
p = gishti.fingerFastSearch ();
nëse (p == FINGERPRINT_OK) {
Serial.println ("Gjeti një ndeshje të shtypur!");
} tjetër if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Gabim komunikimi");
kthimi p;
} tjetër nëse (p == FINGERPRINT_NOTFOUND) {
Serial.println ("Nuk gjeta ndeshje");
kthimi p;
} tjetër {
Serial.println ("Gabim i panjohur");
kthimi p;
}
Serial.print ("ID e gjetur #"); Serial.print (gishti.fingerID);
Serial.print ("me besimin e"); Serial.println (gisht.besim);
gishti i kthimit.fingerID;
}
int getFingerprintIDez () {
uint8_t p = gishti.getImage ();
nëse (p! = FINGERPRINT_OK) kthehet -1;
p = gishti.image2Tz ();
nëse (p! = FINGERPRINT_OK) kthehet -1;
p = gishti.fingerFastSearch ();
nëse (p! = FINGERPRINT_OK) kthehet -1;
Serial.print ("ID e gjetur #"); Serial.print (gishti.fingerID);
Serial.print ("me besimin e"); Serial.println (gisht.besim);
nëse (gishti.fingerID == 1) {
lcd.qartë ();
lcd.setCursor (2, 0);
lcd.print ("Gishti u pranua");
lcd.setCursor (2, 0);
lcd.print ("tani skanoni kartën …");
lcd.setCursor (0, 3);
lcd.print ("===================>>");
ndërsa (! mfrc522. PICC_IsNewCardPresent ());
ndërsa (! mfrc522. PICC_ReadCardSerial ());
në qoftë se (mfrc522.uid.uidByte [0] == 0x92 && // ======================== EDIT KOD ========= ===============
mfrc522.uid.uidByte [1] == 0xAB && // Merrni atë copë letër me ID -në, kishte 4 grupe me 2 shifra
mfrc522.uid.uidByte [2] == 0x90 && // Shikoni kodin, shihni se ku thotë 0x92, 0xAB, 0x90, 0x1c? Shkruani secilën
mfrc522.uid.uidByte [3] == 0x1C) {// të seksionit 2 shifror pas 0x. Për shembull, pjesa e ID -së thotë
lcd.qartë (); // 3E, pastaj futni 3E pas 0x për të bërë 0x3E. Bëni këtë për secilën pjesë
lcd.setCursor (3, 0);
lcd.print ("Së fundi, fut");
lcd.setCursor (1, 1);
lcd.print ("fjalëkalimi i levës");
ndërsa (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); nëse (analogRead (A2) <= 100) {
d1 = L;
}
nëse (analogRead (A2)> = 670) {
d1 = R;
}
nëse (analogRead (A3) <= 100) {
d1 = U;
}
nëse (analogRead (A3)> = 670) {
d1 = D;
}
vonesë (500);
ndërsa (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
nëse (analogRead (A2) <= 100) {
d2 = L;
}
nëse (analogRead (A2)> = 670) {
d2 = R;
}
nëse (analogRead (A3) <= 100) {
d2 = U;
}
nëse (analogRead (A3)> = 670) {
d2 = D;
}
vonesë (500);
ndërsa (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
nëse (analogRead (A2) <= 100) {
d3 = L;
}
nëse (analogRead (A2)> = 670) {
d3 = R;
}
nëse (analogRead (A3) <= 100) {
d3 = U;
}
nëse (analogRead (A3)> = 670) {
d3 = D;
}
vonesë (500);
ndërsa (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
nëse (analogRead (A2) <= 100) {
d4 = L;
}
nëse (analogRead (A2)> = 670) {
d4 = R;
}
nëse (analogRead (A3) <= 100) {
d4 = U;
}
nëse (analogRead (A3)> = 670) {
d4 = D;
}
vonesë (500);
nëse (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDIT KOD ====== =================
lcd.qartë (); // Ky seksion është ku mund të ndryshoni fjalëkalimin me levë
lcd.setCursor (2, 0); // fjalëkalimi është vendosur në të majtë, lart majtas, djathtas. Nëse doni të ndryshoni
lcd.print ("Qasja u dha!"); // atë, vendosni një L për të majtë, R për të djathtë, U për lart, ose D për poshtë në cilindo nga
lcd.setCursor (2, 1); // 4 seksione me një shkronjë pas shenjave ==.
lcd.print ("Sirtari i hapur.");
lcd.setCursor (2, 2);
lcd.print ("Kur të mbaroni, lëvizni");
lcd.setCursor (1, 3);
lcd.print ("levë për rimbushje");
servo.shkruaj (90);
ndërsa (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.shkruaj (170);
lcd.setCursor (3, 0);
lcd.print ("Sirtari i kyçur");
vonesë (3000);
resetFunc ();
} tjetër {
lcd.qartë ();
lcd.setCursor (2, 0);
lcd.print ("QASJA E MENUAR !!!");
lcd.setCursor (0, 2);
lcd.print ("Rinis sistemin …");
vonesë (3000);
resetFunc ();
}
} tjetër {
lcd.qartë ();
lcd.setCursor (2, 0);
lcd.print ("QASJA E MENUAR !!!");
lcd.setCursor (0, 2);
lcd.print ("Rinis sistemin …");
vonesë (3000);
resetFunc ();
}
} tjetër {
lcd.qartë ();
lcd.setCursor (2, 0);
lcd.print ("QASJA E MENUAR !!!");
lcd.setCursor (0, 2);
lcd.print ("Rinis sistemin …");
vonesë (3000);
resetFunc ();
}
gishti i kthimit.fingerID; }
Hapi 6: Përfundoni
Një gjë kam harruar t'ju them, mirë 2 gjëra është se e kam ndërtuar këtë para se të bëja fotografi, kështu që nuk mund t'ju tregoja se si e ndërtova kutinë. Tjetra është se rekomandohet të vidhosni servo pjesën në pjesën që kthehet. Nëse nuk e bëni, dikush mund ta tërheqë sirtarin ndërsa është i kyçur dhe ta tërheqë copën. Por, para se ta vidhosni, gjeni vendin e duhur ku ta vendosni sepse servo kthehet në një shkallë të caktuar. Ose thjesht mund ta ndryshoni në kod. Nëse disa nga pajisjet elektronike janë qesharake, mund të dëshironi të gjeni një mënyrë tjetër për të marrë 5V për disa prej tyre. Vura re kur skaneri im i gjurmëve të gishtërinjve u ndez, ekrani do të ndizte pak me të dhe servo do të bënte zhurmë. Kur servo lëvizi, ekrani do të errësohej. Shpresoj se ju ka pëlqyer projekti! Nëse keni ndonjë pyetje, lërini ato në komente. Unë nuk jam shumë i udhëzueshëm, por do t'i përgjigjem sa më shpejt që të mundem!
Recommended:
Corona Safe: Prekja automatike e kursimit të ujit: 6 hapa
Corona Safe: Prekja automatike e kursimit të ujit: Të gjithë ne duhet të lajmë duart herë pas here për të hequr qafe virusin dhe bakteret posaçërisht për virusin Corona, ne duhet të lajmë duart për 20 sekonda që të shpëtojmë plotësisht prej tij. Gjithashtu shpërndarësi i sapunit ose çelësi i rubinetit mund të mos jetë i nevojshëm higjienik ose
Këshillë për iPad Stylus - (Si të ktheni pjesët e vogla në një torno Jet), e bëra këtë në Tech Shop !: 7 hapa
Këshillë IPad Stylus - (Si të ktheni pjesët e vogla në një torno Jet), Unë e bëra këtë në Tech Shop !: Bëni këtë këshillë prej bronzi për mbajtjen e thonjve të gomës! Kjo është pjesa më e vështirë e bërjes së stilolapsit tuaj kapacitiv! Më duhej një majë bronzi për të mbajtur majën e gomës për stilolapsin tim të ndjeshëm ndaj presionit që po zhvilloj. Ky udhëzues do t'ju tregojë
B-Safe, Sigurt Portativ: 8 hapa (me fotografi)
B-Safe, Sigurti Portativ: *** 4 Shtator 2019: Kam ngarkuar një skedar të ri 3D të vetë kutisë. Duket se kyçi im ishte 10 mm shumë i lartë për një mbyllje të mirë *** Problemi Imagjinoni këtë: Zgjoheni një mëngjes dhe moti është vërtet i mirë. Ju dëshironi të shkoni në plazh. Sepse nuk
Projekti përfundimtar i Wearable Tech - Helmeta e DJ: 6 hapa
Projekti përfundimtar i Wearable Tech - DJ Helmeta: Qëllimi i këtij projekti është që të bëjë një përkrenare DJ me LED reaktive ndaj muzikës për show and wow factor. Ne po përdorim një shirit LED të adresueshëm nga Amazon.com, si dhe një përkrenare motoçikletash, një Uno Arduino dhe tela
Arduino Key Safe: 4 hapa
Arduino Key Safe: Idetë nga: https://www.instructables.com/id/Key-Safe/Jam një person që gjithmonë kam humbur gjërat e mia pa asnjë arsye. Unë e bëj këtë çelës të sigurt, kështu që atëherë të mbaj mend të vendos gjërat e mia brenda, pa humbur gjërat. Në këtë projekt, unë kam bërë disa përmirësime