Cuprins:
- Provizii
- Pasul 1: Construirea unei cutii
- Pasul 2: Cablare
- Pasul 3: Descărcarea bibliotecilor
- Pasul 4: Configurarea senzorului de amprentă digitală și a senzorului cardului RFID
- Pasul 5: CODUL
- Pasul 6: Terminați
Video: Arduino High Tech Safe: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Acesta este seiful meu arduino de înaltă tehnologie. Trebuie să vă scanați degetul, să vă scanați cardul, apoi să introduceți o parolă de 4 cifre pentru a debloca sertarul. Acest proiect nu este recomandat pentru începători, deoarece este foarte avansat. Codul este lung, dar îl voi împărtăși în acest proiect. Costul este de aproximativ 75 USD dacă construiți același seif ca mine. De asemenea, acest proiect ar putea dura 1-3 zile pentru finalizare. Deci sa începem!
Provizii
Pentru a construi același sigur ca și a mea veți avea nevoie de:
Arduino (Uno recomandat pentru că nu am pași pentru arduino mega sau nano. Dar totuși îi puteți folosi)
panou de masă
servo
fire jumper
joystick
20 * 4 (puteți utiliza 16 * 4, dar va trebui să schimbați codul)
scaner de amprente
scanner de carduri RFID mfrc522
o găleată de legos
Pasul 1: Construirea unei cutii
Mai întâi veți avea nevoie de o cutie pentru a vă pune electronica. Puteți folosi legosuri, o cutie imprimată 3D sau chiar carton! (Deși acest lucru ar putea fi mai greu) Nu uitați să puneți găuri în el pentru un sertar și electronice. Dacă utilizați scanerul de card RFID, nu trebuie să puneți o gaură pentru asta, dacă pereții dvs. sunt subțiri. Cardurile încă funcționează, dar trebuie să puneți brelocurile aproape, astfel încât senorul cardului RFID să le poată citi. De asemenea, lăsați spațiu pentru arduino și firele din interior. NOTĂ: Când construiți sertarul, lăsați o gaură în el, astfel încât servo-ul dvs. să poată roti și bloca sertarul.
Pasul 2: Cablare
Acest pas poate fi complicat, deoarece trebuie să conectați firele în locul exact, pentru ca electronica să nu funcționeze. Nu am o schemă de cablare, dar vă voi spune că fiecare va merge. Instalația electrică este de numai Arduino UNO. Va trebui să căutați să puneți firele dacă utilizați un mega arduino sau un nano. Dacă nu utilizați toate electronele pe care le am, puteți sări peste cablarea respectivă.
Scanner de amprente: fir verde: fir alb D2: fir negru D3: fir roșu GND: 5V
Joystick: 5V = 3,3V GND = GND X = A2 Y = A3 Comutator = D4
scaner de card RFID: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
ecran LCD: 5V = 5V GND = GND sda = A4 sck = A5
Servo: fir roșu: 5V fir maro: GND fir galben: D6
NOTĂ: NU CONECTAȚI SCANNERUL DE CARDURI RFID ÎN 5V. DACĂ O FACI, SE VA RUPE !!!
S-ar putea să vă întrebați de ce am spus să conectați joystick-ul la 3,3V când scrie 5V pe lateral. Acest lucru se datorează faptului că servo, ecranul și scanerul de amprentă au nevoie de 5V. Dacă adăugați joystick-ul la aceasta, este posibil ca dispozitivele electronice să nu funcționeze, deoarece totul are nevoie de 5V. Joystick-ul va funcționa în continuare cu 3,3V. Doar valoarea maximă nu va fi 1023, va fi de ~ 670.
Pasul 3: Descărcarea bibliotecilor
În acest proiect, veți avea nevoie de 6 biblioteci pentru a utiliza toate componentele electronice. 1 pentru servo, 1 pentru senzorul de amprentă, 2 pentru scanerul de card RFID și 2 pentru ecran. Joystick-ul nu are nevoie de o bibliotecă. Acum, ce este o bibliotecă? Este practic un fișier care conține o mulțime de cod pe care îl puteți utiliza în proiectul dvs. cu comenzi simple. Pentru a obține aceste biblioteci, trebuie să mergeți la un loc numit GitHub. Dacă știți cum să descărcați și să dezarhivați bibliotecile, accesați linkurile de mai jos pentru descărcări. Dacă nu știți cum, puteți merge la instructable-ul meu, care vorbește despre cum să descărcați o bibliotecă la pasul 3:
sau căutați un videoclip pe YouTube despre cum să descărcați o bibliotecă arduino de pe GitHub
LEGĂTURI LA LIRARE:
Servo
senzor de amprentă:
spi
senzor card RFID
bibliotecă ecran 1
biblioteca de ecran 2
Pasul 4: Configurarea senzorului de amprentă digitală și a senzorului cardului RFID
Acest pas vorbește despre cum să configurați senzorul de amprentă și senzorul cardului RFID. Dacă nu ați folosit deja senzorul de amprentă, va trebui să îi arătați cum arată amprenta dvs., astfel încât să o poată salva în memoria sa. Chiar dacă l-ați folosit înainte, probabil că ar trebui să faceți acest pas. Vă voi spune cum să o faceți pe scurt, dar dacă nu are sens mergeți la același link instructiv din ultimul pas. Se descurcă foarte bine. De bază doar deschide ideea arduino. Accesați fișier> exemple> senzor de amprentă adafruit> înscrieți-vă. Încărcați codul pe arduino, deschideți monitorul serial și urmați pașii pe care vi-i spune. Când îți spune să îi dai un număr. Introduceți 1 #.
Acum, pentru cardul RFID, acest pas este destul de ușor. Deschide arduino ide. Accesați fișierul> exemple> mfrc522> citiți datele personale. Încărcați pe arduino și deschideți monitorul serial. Scanați cardul sau brelocul pe care doriți să-l utilizați, furnizat împreună cu senzorul. Apoi vă va oferi câteva informații. Căutați ID-ul cardului, acesta va fi de 4 seturi de 2 cifre. Ceva de genul acesta: AB 45 2Y 45, dar codul dvs. va fi diferit. Notează acest lucru pe o bucată de hârtie. Veți avea nevoie de el mai târziu. Gata pentru acest pas.
Pasul 5: CODUL
Acesta va fi cel mai greu pas pentru majoritatea dintre voi, dar este destul de simplu. Mai întâi copiați și lipiți codul în ideea arduino de jos. În al doilea rând, editați cele 2 secțiuni unde scrie EDIT COD. 1 secțiune este pentru scanerul de carduri, 1 este pentru joystick. Acești pași nu pot fi omiși. După ce ați terminat, încărcați codul pe arduino!
#include #include Fingerprint.h>
#include
#include
#include
#include
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POZITIV);
#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;
configurare nulă () {
servo.attach (6);
servo.write (170);
lcd.inceput (20, 4);
Serial.begin (9600);
while (! Serial);
SPI.begin ();
mfrc522. PCD_Init ();
întârziere (4);
mfrc522. PCD_DumpVersionToSerial ();
întârziere (100);
Serial.println ("\ n / nTest de detectare a degetelor de fructe");
finger.begin (57600);
întârziere (5);
if (finger.verifyPassword ()) {
Serial.println („Toate sistemele funcționează”);
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Vă rugăm să degetul scanare");
} altceva {
Serial.println ("EROARE: Senzorul de amprentă nu a fost găsit!");
lcd.setCursor (0, 0);
lcd.print („EROARE: amprentă digitală”);
lcd.setCursor (1, 1);
lcd.print ("senzorul nu a fost găsit!");
while (1) {întârziere (1); }
}
finger.getTemplateCount ();
Serial.print ("Senzorul conține"); Serial.print (finger.templateCount); Serial.println ("șabloane"); Serial.println („Se așteaptă degetul valid …”); }
void (* resetFunc) (void) = 0;
bucla nulă () {
getFingerprintIDez ();
întârziere (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
comuta (p) {
carcasa FINGERPRINT_OK:
Serial.println („Imagine realizată”);
pauză;
caz FINGERPRINT_NOFINGER:
Serial.println („Nu a fost detectat niciun deget”);
retur p;
carcasa FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Eroare de comunicare");
retur p;
cazul FINGERPRINT_IMAGEFAIL:
Serial.println ("Eroare de imagine");
retur p;
Mod implicit:
Serial.println ("Eroare necunoscută");
retur p;
}
p = finger.image2Tz ();
comuta (p) {
carcasa FINGERPRINT_OK:
Serial.println („Imagine convertită”);
pauză;
cazul FINGERPRINT_IMAGEMESS:
Serial.println („Imaginea este prea dezordonată”);
retur p;
carcasa FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Eroare de comunicare");
retur p;
caz FINGERPRINT_FEATUREFAIL:
Serial.println („Nu s-au putut găsi caracteristici de amprentă”);
retur p;
carcasa FINGERPRINT_INVALIDIMAGE:
Serial.println („Nu s-au putut găsi caracteristici de amprentă”);
retur p;
Mod implicit:
Serial.println („Eroare necunoscută”);
retur p;
}
p = finger.fingerFastSearch ();
if (p == FINGERPRINT_OK) {
Serial.println („S-a găsit o potrivire de tipărit!”);
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Eroare de comunicare");
retur p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println („Nu a găsit o potrivire”);
retur p;
} altceva {
Serial.println ("Eroare necunoscută");
retur p;
}
Serial.print ("ID găsit #"); Serial.print (finger.fingerID);
Serial.print („cu încrederea în”); Serial.println (deget.încredere);
returnează degetul.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
if (p! = FINGERPRINT_OK) returnează -1;
p = finger.image2Tz ();
if (p! = FINGERPRINT_OK) returnează -1;
p = finger.fingerFastSearch ();
if (p! = FINGERPRINT_OK) returnează -1;
Serial.print („ID găsit #”); Serial.print (finger.fingerID);
Serial.print („cu încrederea în”); Serial.println (deget.încredere);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print („Degetul acceptat”);
lcd.setCursor (2, 0);
lcd.print („acum scanare card …”);
lcd.setCursor (0, 3);
lcd.print ("===================>>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== EDITĂ COD ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Ia acea bucată de hârtie cu ID-ul pe el, erau 4 seturi de 2 cifre
mfrc522.uid.uidByte [2] == 0x90 && // Uită-te după cod, vezi unde scrie 0x92, 0xAB, 0x90, 0x1c? Introduceți fiecare
mfrc522.uid.uidByte [3] == 0x1C) {// din secțiunea cu 2 cifre după 0x. De exemplu, secțiunea din ID spune
lcd.clear (); // 3E, apoi introduceți 3E după 0x pentru a face 0x3E. Faceți acest lucru pentru fiecare secțiune
lcd.setCursor (3, 0);
lcd.print ("În cele din urmă, introduceți");
lcd.setCursor (1, 1);
lcd.print („parola joystick-ului”);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); if (analogRead (A2) <= 100) {
d1 = L;
}
if (analogRead (A2)> = 670) {
d1 = R;
}
if (analogRead (A3) <= 100) {
d1 = U;
}
if (analogRead (A3)> = 670) {
d1 = D;
}
întârziere (500);
while (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;
}
întârziere (500);
while (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;
}
întârziere (500);
while (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;
}
întârziere (500);
if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================== EDITĂ COD ====== ================
lcd.clear (); // Această secțiune este în care puteți edita parola cu joystick-ul
lcd.setCursor (2, 0); // parola este setată la stânga, sus la stânga, la dreapta. Dacă vrei să te schimbi
lcd.print („Acces acordat!”); // it, puneți un L pentru stânga, R pentru dreapta, U pentru sus sau D pentru jos în oricare dintre
lcd.setCursor (2, 1); // 4 secțiuni cu o literă după semnele ==.
lcd.print („Sertar deblocat.”);
lcd.setCursor (2, 2);
lcd.print („Când ați terminat, mutați”);
lcd.setCursor (1, 3);
lcd.print („joystick pentru relock”);
servo.write (90);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670);
servo.write (170);
lcd.setCursor (3, 0);
lcd.print („Sertar blocat”);
întârziere (3000);
resetFunc ();
} altceva {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCES ÎNEGAT !!!");
lcd.setCursor (0, 2);
lcd.print („Repornirea sistemului …”);
întârziere (3000);
resetFunc ();
}
} altceva {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCES ÎNEGAT !!!");
lcd.setCursor (0, 2);
lcd.print („Repornirea sistemului …”);
întârziere (3000);
resetFunc ();
}
} altceva {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCES ÎNEGAT !!!");
lcd.setCursor (0, 2);
lcd.print („Repornirea sistemului …”);
întârziere (3000);
resetFunc ();
}
returnează degetul.fingerID; }
Pasul 6: Terminați
Un lucru pe care am uitat să-l spun, bine 2 lucruri este că am construit asta înainte de a face poze, așa că nu ți-am putut arăta cum am construit cutia. Cealaltă este că se recomandă înșurubarea piesei servo pe partea care se rotește. Dacă nu, cineva ar putea trage sertarul în timp ce este blocat și ar putea scoate piesa. Dar, înainte de a-l înșuruba, găsiți locul potrivit unde să-l puneți, deoarece servo se transformă într-un anumit grad. Sau l-ai putea schimba doar în cod. Dacă unele dintre componentele electronice acționează amuzant, poate doriți să găsiți un mod diferit de a obține 5V pentru unele dintre ele. Am observat că atunci când scanerul meu de amprente a clipit, ecranul ar clipi ușor cu el și servo ar face zgomot. Când sa mutat servo, ecranul ar merge dim. Sper că v-a plăcut proiectul! Dacă aveți întrebări, lăsați-le în comentarii. Nu sunt foarte instructiv, dar le voi răspunde cât de repede pot!
Recomandat:
Corona Safe: Robinet automat pentru economisirea apei: 6 pași
Corona Safe: robinet automat pentru economisirea apei: cu toții trebuie să ne spălăm pe mâini pentru a scăpa de virus și bacterii special pentru virusul Corona, trebuie să ne spălăm pe mâini timp de 20 de secunde pentru a scăpa complet de el. De asemenea, este posibil ca distribuitorul de săpun sau butonul de la robinet să nu fie igienic sau c
Construiți un Safe folosind un Rpi: 12 pași
Construiți un seif folosind un Rpi: doriți să aflați cum să vă convertiți Raspberry pi într-un seif pe deplin funcțional? Apoi, urmați acest pas cu 12 pași care poate fi instruit pentru a afla cum. Seiful va avea o tastatură complet funcțională și un sistem de blocare, astfel încât să vă puteți păstra bunurile în siguranță
B-Safe, seiful portabil: 8 pași (cu imagini)
B-Safe, Safe Portable: *** 4 septembrie 2019: am încărcat un nou fișier 3D al cutiei în sine. Se părea că încuietoarea mea avea o înălțime de 10 mm prea mare pentru o închidere bună *** Problema Imaginați-vă acest lucru: vă treziți într-o dimineață și vremea este foarte bună. Vrei să mergi la plajă. Pentru că nu
RFID Bank Safe: 3 pași
RFID Bank Safe: RFID este identificarea frecvenței radio. Un seif bancar este un seif pentru obiecte de valoare. Unirea a două face ca o bancă sigură să fie și mai sigură. Iată cum să construiești una din componentele Arduino și un pic de lucru în garaj
SAFE BOX digital bazat pe Arduino: 10 pași
Arduino based digital SAFE BOX: Hei băieți! Aveți ceva pe care doriți să îl păstrați în siguranță? Ceva care trebuie ținut departe de intruții nedoriti și de invadatorii de confidențialitate? Ei bine, am o soluție pentru problema ta! Iată un Safe Box de blocare pe bază de Arduino