Taula de continguts:
- Subministraments
- Pas 1: construir una caixa
- Pas 2: Connecteu-vos
- Pas 3: descàrrega de biblioteques
- Pas 4: Configuració del sensor d'empremta digital i del sensor de targeta RFID
- Pas 5: EL CODI
- Pas 6: Acabeu
Vídeo: Arduino High Tech Safe: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Aquesta és la meva seguretat arduino d'alta tecnologia. Heu d’escanejar el dit, escanejar la targeta i introduir una contrasenya de 4 dígits per desbloquejar el calaix. Aquest projecte no es recomana als principiants perquè és molt avançat. El codi és llarg, però el compartiré en aquest projecte. El cost és d’uns 75 dòlars si es construeix la mateixa caixa forta que jo. Aquest projecte també pot trigar entre 1 i 3 dies a completar-se. Per tant, comencem!
Subministraments
Per construir la mateixa caixa forta que la meva necessitareu:
Arduino (es recomana Uno perquè no tinc passos per a arduino mega ni nano. Però encara els podeu fer servir)
taulell de pa
servo
cables de pont
joystick
20 * 4 (podeu utilitzar 16 * 4, però haureu de canviar el codi)
escàner d’empremtes digitals
escàner de targetes RFID mfrc522
una galleda de llegos
Pas 1: construir una caixa
Primer necessitareu una caixa per posar els vostres aparells electrònics. Podeu utilitzar llegums, una caixa impresa en 3D o fins i tot cartró. (Tot i que això pot ser més difícil) No oblideu posar-hi forats per a un calaix i la vostra electrònica. Si utilitzeu l’escàner de targetes RFID, no cal que poseu cap forat si les parets són primes. Les cartes segueixen funcionant, però heu de tancar els clauers perquè el senor de la targeta RFID les pugui llegir. Deixeu també espai per al vostre arduino i cables. NOTA: Quan construïu el calaix, deixeu-hi un forat perquè el servo pugui girar i bloquejar el calaix.
Pas 2: Connecteu-vos
Aquest pas pot ser complicat perquè haureu de connectar els cables al lloc exacte, ja que l’electrònica no funcionarà. No tinc un esquema de cablejat, però us diré que anirà cadascun. El cablejat és només per a arduino uno. Haureu de buscar si heu de posar els cables si utilitzeu un arduino mega o nano. Si no utilitzeu tots els electrons que tinc, podeu saltar-vos aquest cablejat.
Escàner d’empremta digital: fil verd: fil blanc D2: fil negre D3: fil vermell GND: 5V
Palanca de control: 5V = 3,3V GND = GND X = A2 Y = A3 Switch = D4
escàner de targetes RFID: 3,3 V = 3,3 V primer = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
pantalla lcd: 5V = 5V GND = GND sda = A4 sck = A5
Servo: fil vermell: 5V filferro marró: filferro groc GND: D6
NOTA: NO ENCORREGUIS L’ESCÀNER DE TARGETES RFID A 5 V. SI HO FES, ES TRENCARÀ !!!
És possible que us pregunteu per què he dit que connecteu el joystick a 3,3V quan diu 5V al lateral. Això es deu al fet que el servo, la pantalla i l’escàner d’empremtes digitals necessiten 5V. Si hi afegiu el joystick, és possible que l’electrònica no funcioni perquè tot necessita 5V. El joystick continuarà funcionant amb 3,3 V. Només el valor màxim no serà de 1023, serà de ~ 670.
Pas 3: descàrrega de biblioteques
En aquest projecte, necessitareu 6 biblioteques per utilitzar tota l'electrònica. 1 per al servo, 1 per al sensor d'empremta digital, 2 per a l'escàner de targetes RFID i 2 per a la pantalla. El joystick no necessita biblioteca. Ara, què és una biblioteca? Bàsicament és un fitxer que conté molts codis que podeu utilitzar al vostre projecte amb ordres simples. Per obtenir aquestes biblioteques, heu d’anar a un lloc anomenat GitHub. Si sabeu com descarregar i descomprimir biblioteques, aneu als enllaços següents per obtenir les descàrregues. Si no sabeu com fer-ho, podeu anar al meu instructable que parla sobre com descarregar una biblioteca al pas 3: https://www.instructables.com/id/Makey-Makeyarduin …
o cerqueu un vídeo de youtube sobre com baixar una biblioteca arduino des de GitHub
ENLLAÇOS A LIRARIES:
Servo
sensor d’empremta digital:
spi
sensor de targeta RFID
biblioteca de pantalla 1
biblioteca de pantalla 2
Pas 4: Configuració del sensor d'empremta digital i del sensor de targeta RFID
Aquest pas parla de com configurar el sensor d’empremtes digitals i el sensor de targeta RFID. Tret que ja hàgiu utilitzat el sensor d’empremtes digitals, haureu de mostrar-li l’aspecte de la vostra empremta digital perquè pugui desar-lo a la memòria. Fins i tot si l’heu utilitzat abans, probablement hauríeu de fer aquest pas. Us diré com fer-ho breument, però si no té sentit aneu al mateix enllaç instructiu de l’últim pas. Ho repassa molt bé. Bàsic només obre ide arduino. Aneu a fitxer> exemples> sensor d'empremtes digitals adafruit> inscripció. Pengeu codi a arduino, obriu el monitor sèrie i seguiu els passos que us indica. Quan et digui que li donis un número. Escriviu 1 #.
Ara, per a la targeta RFID, aquest pas és bastant fàcil. Obre ide arduino. Aneu a fitxer> exemples> mfrc522> llegiu dades personals. Pengeu a arduino i obriu el monitor sèrie. Escaneja la targeta o el clauer que vulguis fer servir amb el sensor. A continuació, us donarà informació. Cerqueu la identificació de la targeta que constarà de 4 sèries de 2 dígits. Una cosa així: AB 45 2Y 45, però el vostre codi serà diferent. Escriviu-ho en un tros de paper. El tornareu a necessitar més tard. Això és tot per a aquest pas.
Pas 5: EL CODI
Aquest serà el pas més difícil per a la majoria de vosaltres, però és bastant senzill. Primer copieu i enganxeu el codi a l'arduino ide des de baix. En segon lloc, editeu les 2 seccions on diu EDIT CODE. 1 secció és per a l'escàner de targetes, 1 és per al joystick. Aquests passos no es poden ometre. Un cop fet, pengeu codi a arduino.
#include #include Fingerprint.h>
#incloure
#incloure
#incloure
#incloure
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIU);
#defineix 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;
configuració nul·la () {
servo.attach (6);
servo.write (170);
lcd.begin (20, 4);
Serial.begin (9600);
mentre que (! sèrie);
SPI.begin ();
mfrc522. PCD_Init ();
retard (4);
mfrc522. PCD_DumpVersionToSerial ();
retard (100);
Serial.println ("\ n / nProva de detecció de dits de fruites");
finger.begin (57600);
retard (5);
if (finger.verifyPassword ()) {
Serial.println ("Tots els sistemes funcionen");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Si us plau, escaneja el dit");
} més {
Serial.println ("ERROR: no s'ha trobat el sensor d'impressió digital");
lcd.setCursor (0, 0);
lcd.print ("ERROR: empremta digital");
lcd.setCursor (1, 1);
lcd.print ("el sensor no s'ha trobat!");
while (1) {delay (1); }
}
finger.getTemplateCount ();
Serial.print ("El sensor conté"); Serial.print (finger.templateCount); Serial.println ("plantilles"); Serial.println ("S'està esperant el dit vàlid …"); }
void (* resetFunc) (void) = 0;
bucle buit () {
getFingerprintIDez ();
retard (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
commutador (p) {
cas FINGERPRINT_OK:
Serial.println ("Imatge presa");
trencar;
cas FINGERPRINT_NOFINGER:
Serial.println ("No s'ha detectat cap dit");
tornar p;
cas FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Error de comunicació");
tornar p;
cas FINGERPRINT_IMAGEFAIL:
Serial.println ("Error d'imatge");
tornar p;
per defecte:
Serial.println ("Error desconegut");
tornar p;
}
p = dit.imatge2Tz ();
commutador (p) {
cas FINGERPRINT_OK:
Serial.println ("Imatge convertida");
trencar;
cas FINGERPRINT_IMAGEMESS:
Serial.println ("La imatge és massa desordenada");
tornar p;
cas FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Error de comunicació");
tornar p;
cas FINGERPRINT_FEATUREFAIL:
Serial.println ("No s'han pogut trobar funcions d'empremta digital");
tornar p;
cas FINGERPRINT_INVALIDIMAGE:
Serial.println ("No s'han pogut trobar funcions d'empremta digital");
tornar p;
per defecte:
Serial.println ("Error desconegut");
tornar p;
}
p = finger.fingerFastSearch ();
if (p == FINGERPRINT_OK) {
Serial.println ("S'ha trobat un resultat d'impressió!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Error de comunicació");
tornar p;
} else if (p == FINGERPRINT_NOTFOUND) {
Serial.println ("No s'ha trobat cap coincidència");
tornar p;
} més {
Serial.println ("Error desconegut");
tornar p;
}
Serial.print ("Identificador trobat #"); Serial.print (finger.fingerID);
Serial.print ("amb confiança de"); Serial.println (dit.confiança);
tornar dit.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
if (p! = FINGERPRINT_OK) retorna -1;
p = dit.imatge2Tz ();
if (p! = FINGERPRINT_OK) retorna -1;
p = finger.fingerFastSearch ();
if (p! = FINGERPRINT_OK) retorna -1;
Serial.print ("Identificador trobat #"); Serial.print (finger.fingerID);
Serial.print ("amb confiança de"); Serial.println (dit.confiança);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Dit acceptat");
lcd.setCursor (2, 0);
lcd.print ("ara escaneja la targeta …");
lcd.setCursor (0, 3);
lcd.print ("===================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== EDITAR CODI ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Agafeu aquest tros de paper amb l'identificador, hi havia 4 sèries de 2 dígits
mfrc522.uid.uidByte [2] == 0x90 && // Cerqueu el codi, consulteu on diu 0x92, 0xAB, 0x90, 0x1c? Introduïu cadascun
mfrc522.uid.uidByte [3] == 0x1C) {// de la secció de 2 dígits després del 0x. Per exemple, a la secció de l'identificador es diu
lcd.clear (); // 3E i, a continuació, introduïu el 3E després del 0x per fer 0x3E. Feu això per a cada secció
lcd.setCursor (3, 0);
lcd.print ("Finalment, introduïu");
lcd.setCursor (1, 1);
lcd.print ("contrasenya del joystick");
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
Llegir analògicament (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;
}
retard (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
Llegir analògicament (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;
}
retard (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
Llegir analògicament (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;
}
retard (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
Llegir analògicament (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;
}
retard (500);
if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDITAR CODI ====== ================
lcd.clear (); // Aquesta secció és on podeu editar la contrasenya amb el joystick
lcd.setCursor (2, 0); // la contrasenya s'estableix a l'esquerra, a l'esquerra, a la dreta. Si voleu canviar
lcd.print ("Accés concedit!"); //, poseu una L per l'esquerra, R per la dreta, U per amunt o D per avall en qualsevol dels
lcd.setCursor (2, 1); // 4 seccions amb una lletra després dels signes ==.
lcd.print ("Calaix desbloquejat");
lcd.setCursor (2, 2);
lcd.print ("Quan hàgiu acabat, moveu-vos");
lcd.setCursor (1, 3);
lcd.print ("joystick per tornar a bloquejar");
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 ("Calaix bloquejat");
retard (3000);
resetFunc ();
} més {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCÉS DENEGAT !!!");
lcd.setCursor (0, 2);
lcd.print ("Reinici del sistema …");
retard (3000);
resetFunc ();
}
} més {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCÉS DENEGAT !!!");
lcd.setCursor (0, 2);
lcd.print ("Reinici del sistema …");
retard (3000);
resetFunc ();
}
} més {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCÉS DENEGAT !!!");
lcd.setCursor (0, 2);
lcd.print ("Reinici del sistema …");
retard (3000);
resetFunc ();
}
tornar dit.fingerID; }
Pas 6: Acabeu
Una cosa que em vaig oblidar de dir-vos, doncs 2 coses és que ho vaig construir abans de fer fotos, així que no us podia mostrar com vaig construir la caixa. L'altra és que es recomana cargolar la peça servo a la peça que gira. Si no ho feu, algú podria estirar el calaix mentre estigui bloquejat i estirar la peça. Però abans de cargolar-lo, cerqueu el lloc adequat on posar-lo perquè el servo gira fins a un cert grau. O simplement podeu canviar-lo al codi. Si alguns dels components electrònics són divertits, és possible que vulgueu trobar una manera diferent d’obtenir 5V per a alguns d’ells. Em vaig adonar que quan el meu escàner d’empremtes digitals parpellejava, la pantalla parpellejava lleugerament amb ell i el servo feia soroll. Quan el servo es movia, la pantalla quedaria tenue. Espero que us hagi agradat el projecte! Si teniu cap pregunta, deixeu-los en comentaris. No estic molt en instruccions, però els respondré tan aviat com pugui.
Recomanat:
Corona Safe: aixeta automàtica per estalviar aigua: 6 passos
Corona Safe: aixeta automàtica per estalviar aigua: tots hem de rentar-nos les mans de tant en tant per eliminar el virus i els bacteris, especialment per al virus Corona, hem de rentar-nos les mans durant 20 segons per desfer-nos-en completament. També és possible que el dispensador de sabó o el botó de l’aixeta no siguin higiènics o
B-Safe, la caixa forta portàtil: 8 passos (amb imatges)
B-Safe, la caixa forta portàtil: *** 4 de setembre de 2019: vaig penjar un nou fitxer 3D de la pròpia caixa. Semblava que el meu pany tenia una alçada de 10 mm massa bona per tancar bé *** El problema Imagineu-vos això: us llevareu un matí i el temps és realment bo. Voleu anar a la platja, perquè no
Banc RFID Safe: 3 passos
RFID Bank Safe: RFID és una identificació de radiofreqüència. Una caixa forta bancària és una caixa forta per a objectes de valor. Unir-ne dos fa que un banc segur sigui encara més segur. Aquí us expliquem com construir-ne un a partir de components Arduino i una mica de treball de garatge
Clau Arduino Safe: 4 passos
Arduino Key Safe: idees de: https://www.instructables.com/id/Key-Safe/ Sóc una persona que sempre he perdut les meves coses sense cap motiu. Faig aquesta clau segura perquè pugui recordar de posar les meves coses a dins, sense que es perdin les coses. En aquest projecte, he fet algunes millores
SAFE BOX digital basat en Arduino: 10 passos
SAFE BOX digital basat en Arduino: Ei, nois! Teniu alguna cosa que vulgueu mantenir amb seguretat? Alguna cosa que s’ha de mantenir allunyada d’intrusos i invasors no desitjats? Bé, tinc una solució per al vostre problema. Aquí hi ha una caixa forta de bloqueig basada en Arduino