Tabla de contenido:
- Suministros
- Paso 1: construcción de una caja
- Paso 2: ¡Cableado
- Paso 3: descarga de bibliotecas
- Paso 4: Configuración del sensor de huellas dactilares y el sensor de la tarjeta RFID
- Paso 5: ¡EL CÓDIGO
- Paso 6: Terminar
Video: Arduino High Tech Safe: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Esta es mi caja fuerte arduino de alta tecnología. Debe escanear su dedo, escanear su tarjeta, luego ingresar una contraseña de 4 dígitos para desbloquear el cajón. Este proyecto no se recomienda para principiantes porque es muy avanzado. El código es largo, pero lo compartiré en este proyecto. El costo es de alrededor de $ 75 si construyes la misma caja fuerte que yo. Este proyecto también podría tardar entre 1 y 3 días en completarse. ¡Entonces empecemos!
Suministros
Para construir la misma caja fuerte que la mía, necesitará:
Arduino (se recomienda Uno porque no tengo pasos para arduino mega o nano. Pero aún puedes usarlos)
tablero de circuitos
servo
cables de puente
palanca de mando
20 * 4 (puede usar 16 * 4, pero tendrá que cambiar el código)
escáner de huellas dactilares
escáner de tarjetas rfid mfrc522
un cubo de legos
Paso 1: construcción de una caja
Primero necesitará una caja para colocar sus dispositivos electrónicos. ¡Puede usar legos, una caja impresa en 3D o incluso cartón! (Aunque esto puede ser más difícil) No olvide hacer agujeros para un cajón y sus dispositivos electrónicos. Si está utilizando el escáner de tarjetas rfid, no necesita hacer un agujero si sus paredes son delgadas. Las tarjetas aún funcionan, pero debes cerrar los llaveros para que el señor de la tarjeta rfid pueda leerlos. También deja espacio para tu arduino y cables en el interior. NOTA: Cuando construya el cajón, deje un agujero en él para que su servo pueda girar y trabar el cajón.
Paso 2: ¡Cableado
Este paso puede ser complicado porque necesita conectar los cables en el lugar exacto o la electrónica no funcionará. No tengo un diagrama de cableado, pero les diré que van cada uno. El cableado es solo para arduino uno. Tendrá que buscar dónde colocar los cables si está utilizando un arduino mega o nano. Si no está usando todos los electronis que tengo, puede omitir ese cableado.
Escáner de huellas dactilares: cable verde: cable blanco D2: cable negro D3: cable rojo GND: 5 V
Joystick: 5V = 3.3V GND = GND X = A2 Y = A3 Interruptor = D4
escáner de tarjetas rfid: 3.3V = 3.3V rst = D9 GND = GND miso = D12 mosi = D11 sck = D13 sda = D10
pantalla lcd: 5V = 5V GND = GND sda = A4 sck = A5
Servo: cable rojo: 5 V Cable marrón: GND cable amarillo: D6
NOTA: NO CONECTE EL ESCÁNER DE TARJETAS RFID A 5V. SI LO HACE, SE ROMPE !!!
Quizás se pregunte por qué dije que conecte la alimentación del joystick a 3.3V cuando dice 5V en el costado. Eso es porque el servo, la pantalla y el escáner de huellas digitales necesitan 5V. Si agrega el joystick a eso, es posible que la electrónica no funcione porque todo necesita 5V. El joystick seguirá funcionando con 3,3 V. Es solo que el valor máximo no será 1023, será ~ 670.
Paso 3: descarga de bibliotecas
En este proyecto, necesitará 6 bibliotecas para usar toda la electrónica. 1 para el servo, 1 para el sensor de huellas dactilares, 2 para el escáner de tarjetas rfid y 2 para la pantalla. El joystick no necesita biblioteca. Ahora bien, ¿qué es una biblioteca? Básicamente, es un archivo que contiene una gran cantidad de código que puede usar en su proyecto con comandos simples. Para obtener estas bibliotecas, debe ir a un lugar llamado GitHub. Si sabe cómo descargar y descomprimir bibliotecas, simplemente vaya a los enlaces a continuación para las descargas. Si no sabe cómo, puede ir a mi instructable que habla sobre cómo descargar una biblioteca en el paso 3:
o busque un video de youtube sobre cómo descargar una biblioteca arduino desde GitHub
ENLACES A MENTIROSOS:
Servo
sensor de huellas dactilares:
spi
sensor de tarjeta rfid
biblioteca de pantallas 1
biblioteca de pantallas 2
Paso 4: Configuración del sensor de huellas dactilares y el sensor de la tarjeta RFID
Este paso habla sobre cómo configurar el sensor de huellas dactilares y el sensor de la tarjeta rfid. A menos que ya haya utilizado su sensor de huellas digitales, deberá mostrarle cómo se ve su huella digital para que pueda guardarla en su memoria. Incluso si lo ha usado antes, probablemente debería seguir este paso. Le diré cómo hacerlo brevemente, pero si no tiene sentido, vaya al mismo enlace instructable en el último paso. Lo repasa muy bien. Básico solo abre arduino ide. Vaya a archivo> ejemplos> sensor de huellas dactilares adafruit> registrar. Sube el código a arduino, abre el monitor serial y sigue los pasos que te indica. Cuando te diga que le des un número. Escriba 1 #.
Ahora, para la tarjeta rfid, este paso es bastante fácil. Abra arduino ide. Vaya a archivo> ejemplos> mfrc522> leer datos personales. Sube a arduino y abre el monitor serial. Escanee la tarjeta o llavero que desea usar que vino con su sensor. Entonces te dará alguna información. Busque el ID de la tarjeta, serán 4 juegos de 2 dígitos. Algo como esto: AB 45 2Y 45 pero su código será diferente. Escriba esto en una hoja de papel. Lo necesitará de nuevo más tarde. Eso es todo por este paso.
Paso 5: ¡EL CÓDIGO
Este será el paso más difícil para la mayoría de ustedes, pero es bastante simple. Primero copie y pegue el código en el arduino ide desde abajo. En segundo lugar, edite las 2 secciones donde dice EDITAR CÓDIGO. 1 sección es para el escáner de tarjetas, 1 es para el joystick. Estos pasos no se pueden omitir. Una vez hecho esto, ¡cargue el código en arduino!
#include #include Fingerprint.h>
#incluir
#incluir
#incluir
#incluir
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVO);
#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;
configuración vacía () {
servo.attach (6);
servo.write (170);
lcd. comienzo (20, 4);
Serial.begin (9600);
mientras (! Serial);
SPI.begin ();
mfrc522. PCD_Init ();
retraso (4);
mfrc522. PCD_DumpVersionToSerial ();
retraso (100);
Serial.println ("\ n / nPrueba de detección de dedos de Adafruit");
finger.begin (57600);
retraso (5);
if (finger.verifyPassword ()) {
Serial.println ("Todos los sistemas funcionando");
lcd.clear ();
lcd.setCursor (1, 0);
lcd.print ("Por favor, escanee el dedo");
} demás {
Serial.println ("ERROR: ¡No se encontró el sensor de huellas dactilares!");
lcd.setCursor (0, 0);
lcd.print ("ERROR: Huella digital");
lcd.setCursor (1, 1);
lcd.print ("¡sensor no encontrado!");
while (1) {retraso (1); }
}
finger.getTemplateCount ();
Serial.print ("El sensor contiene"); Serial.print (finger.templateCount); Serial.println ("plantillas"); Serial.println ("Esperando un dedo válido …"); }
void (* resetFunc) (void) = 0;
bucle vacío () {
getFingerprintIDez ();
retraso (50);
}
uint8_t getFingerprintID () {
uint8_t p = finger.getImage ();
cambiar (p) {
caso FINGERPRINT_OK:
Serial.println ("Imagen tomada");
rotura;
caso FINGERPRINT_NOFINGER:
Serial.println ("No se detectó ningún dedo");
return p;
caso FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Error de comunicación");
return p;
caso FINGERPRINT_IMAGEFAIL:
Serial.println ("Error de imagen");
return p;
defecto:
Serial.println ("Error desconocido");
return p;
}
p = dedo.imagen2Tz ();
cambiar (p) {
caso FINGERPRINT_OK:
Serial.println ("Imagen convertida");
rotura;
caso FINGERPRINT_IMAGEMESS:
Serial.println ("Imagen demasiado desordenada");
return p;
caso FINGERPRINT_PACKETRECIEVEERR:
Serial.println ("Error de comunicación");
return p;
caso FINGERPRINT_FEATUREFAIL:
Serial.println ("No se pudieron encontrar las funciones de huellas digitales");
return p;
case FINGERPRINT_INVALIDIMAGE:
Serial.println ("No se pudieron encontrar las funciones de huellas digitales");
return p;
defecto:
Serial.println ("Error desconocido");
return p;
}
p = finger.fingerFastSearch ();
si (p == HUELLA DIGITAL_OK) {
Serial.println ("¡Se encontró una coincidencia de impresión!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {Serial.println ("Error de comunicación");
return p;
} más si (p == HUELLA DIGITAL_NOTFOUND) {
Serial.println ("No se encontró ninguna coincidencia");
return p;
} demás {
Serial.println ("Error desconocido");
return p;
}
Serial.print ("Número de ID encontrado"); Serial.print (finger.fingerID);
Serial.print ("con confianza de"); Serial.println (dedo.confianza);
return finger.fingerID;
}
int getFingerprintIDez () {
uint8_t p = finger.getImage ();
if (p! = HUELLA DIGITAL_OK) return -1;
p = dedo.imagen2Tz ();
if (p! = HUELLA DIGITAL_OK) return -1;
p = finger.fingerFastSearch ();
if (p! = HUELLA DIGITAL_OK) return -1;
Serial.print ("Número de ID encontrado"); Serial.print (finger.fingerID);
Serial.print ("con confianza de"); Serial.println (dedo.confianza);
if (finger.fingerID == 1) {
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("Finger aceptado");
lcd.setCursor (2, 0);
lcd.print ("ahora escanee la tarjeta …");
lcd.setCursor (0, 3);
lcd.print ("===================>");
while (! mfrc522. PICC_IsNewCardPresent ());
while (! mfrc522. PICC_ReadCardSerial ());
if (mfrc522.uid.uidByte [0] == 0x92 && // ======================== EDITAR CÓDIGO ======== ==============
mfrc522.uid.uidByte [1] == 0xAB && // Toma esa hoja de papel con la identificación, había 4 conjuntos de 2 dígitos
mfrc522.uid.uidByte [2] == 0x90 && // Busque por el código, vea dónde dice 0x92, 0xAB, 0x90, 0x1c? Ingrese cada
mfrc522.uid.uidByte [3] == 0x1C) {// de la sección de 2 dígitos después del 0x. Por ejemplo, la sección de la identificación dice
lcd.clear (); // 3E, luego ingrese 3E después de 0x para hacer 0x3E. Haz esto para cada sección
lcd.setCursor (3, 0);
lcd.print ("Finalmente, ingrese");
lcd.setCursor (1, 1);
lcd.print ("contraseña del joystick");
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.setCursor (8, 4);
lcd.print ("*"); si (analogRead (A2) <= 100) {
d1 = L;
}
si (analogRead (A2)> = 670) {
d1 = R;
}
si (analogRead (A3) <= 100) {
d1 = U;
}
si (analogRead (A3)> = 670) {
d1 = D;
}
retraso (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
si (analogRead (A2) <= 100) {
d2 = L;
}
si (analogRead (A2)> = 670) {
d2 = R;
}
si (analogRead (A3) <= 100) {
d2 = U;
}
si (analogRead (A3)> = 670) {
d2 = D;
}
retraso (500);
while (analogRead (A2)> = 100 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
si (analogRead (A2) <= 100) {
d3 = L;
}
si (analogRead (A2)> = 670) {
d3 = R;
}
si (analogRead (A3) <= 100) {
d3 = U;
}
si (analogRead (A3)> = 670) {
d3 = D;
}
retraso (500);
while (analogRead (A2)> = 10 &&
analogRead (A2) <= 670 &&
analogRead (A3)> = 100 &&
analogRead (A3) <= 670) {
}
lcd.print ("*");
si (analogRead (A2) <= 100) {
d4 = L;
}
si (analogRead (A2)> = 670) {
d4 = R;
}
si (analogRead (A3) <= 100) {
d4 = U;
}
si (analogRead (A3)> = 670) {
d4 = D;
}
retraso (500);
if (d1 == L && d2 == U && d3 == L && d4 == R) {// ================= EDITAR CÓDIGO ====== ================
lcd.clear (); // Esta sección es donde puedes editar la contraseña con el joystick
lcd.setCursor (2, 0); // la contraseña se establece a la izquierda, arriba a la izquierda, a la derecha. Si quieres cambiar
lcd.print ("¡Acceso concedido!"); // esto, ponga una L para izquierda, R para derecha, U para arriba o D para abajo en cualquiera de los
lcd.setCursor (2, 1); // 4 secciones con una letra después de los signos ==.
lcd.print ("Cajón desbloqueado");
lcd.setCursor (2, 2);
lcd.print ("Cuando termines, muévete");
lcd.setCursor (1, 3);
lcd.print ("joystick para volver a bloquear");
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 ("Cajón bloqueado");
retraso (3000);
resetFunc ();
}demás{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESO DENEGADO !!!");
lcd.setCursor (0, 2);
lcd.print ("Reiniciando el sistema …");
retraso (3000);
resetFunc ();
}
}demás{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESO DENEGADO !!!");
lcd.setCursor (0, 2);
lcd.print ("Reiniciando el sistema …");
retraso (3000);
resetFunc ();
}
}demás{
lcd.clear ();
lcd.setCursor (2, 0);
lcd.print ("ACCESO DENEGADO !!!");
lcd.setCursor (0, 2);
lcd.print ("Reiniciando el sistema …");
retraso (3000);
resetFunc ();
}
return finger.fingerID; }
Paso 6: Terminar
Una cosa que olvidé decirte, bueno, dos cosas es que construí esto antes de tomar fotos, así que no pude mostrarte cómo construí la caja. La otra es que se recomienda atornillar la parte del servo en la parte que gira. Si no lo hace, alguien podría tirar del cajón mientras está cerrado y sacar la pieza. Pero antes de atornillarlo, busque el lugar correcto donde colocarlo porque el servo gira hasta cierto punto. O simplemente puede cambiarlo en el código. Si algunos de los componentes electrónicos están actuando de manera extraña, es posible que desee encontrar una forma diferente de obtener 5 V para algunos de ellos. Noté que cuando mi escáner de huellas dactilares parpadeaba, la pantalla parpadeaba ligeramente y el servo hacía ruido. Cuando el servo se movía, la pantalla se oscurecía. ¡Espero que hayas disfrutado del proyecto! Si tiene alguna pregunta, déjela en los comentarios. No utilizo mucho los instructivos, ¡pero los responderé tan pronto como pueda!
Recomendado:
Corona Safe: Grifo automático de ahorro de agua: 6 pasos
Corona Safe: Grifo automático de ahorro de agua: todos tenemos que lavarnos las manos de vez en cuando para deshacernos del virus y las bacterias, especialmente para el virus Corona, debemos lavarnos las manos durante 20 segundos para deshacernos por completo de él. Además, es posible que el dispensador de jabón o la perilla del grifo no sean necesariamente higiénicos o c
Punta de lápiz óptico para iPad: (Cómo girar piezas pequeñas en un torno de chorro), ¡lo hice en Tech Shop !: 7 pasos
Punta de lápiz óptico para iPad - (Cómo girar piezas pequeñas en un torno de chorro), ¡lo hice en Tech Shop !: ¡Haga esta punta de latón para sostener puntas de goma de lápiz óptico! ¡Esta es la parte más difícil de hacer tu propio lápiz capacitivo! Necesitaba una punta de latón para sujetar la punta de goma de mi lápiz sensible a la presión que estoy desarrollando. Este instructivo te mostrará mi
B-Safe, la caja fuerte portátil: 8 pasos (con imágenes)
B-Safe, la caja fuerte portátil: *** 4 de septiembre de 2019: subí un nuevo archivo 3D de la caja. Parecía que mi cerradura estaba 10 mm demasiado alta para un buen cierre *** El problema Imagina esto: Te despiertas una mañana y el clima es realmente bueno. Quieres ir a la playa, porque no
Arduino Key Safe: 4 pasos
Arduino Key Safe: Ideas de: https://www.instructables.com/id/Key-Safe/ Soy una persona que siempre pierde mis cosas sin ningún motivo. Guardo esta llave para que pueda recordar poner mis cosas dentro, sin que se pierdan. En este proyecto, hice algunas mejoras
SAFE ?, un robot que salva pertenencias: 6 pasos (con imágenes)
¿SEGURO ?, un robot que salva pertenencias .: ¡Hola y bienvenido a este instructivo! .El robot: ¿SEGURO? podría ser genial como quieras crearlo. Este simpático robot como bien sabes, podría hacernos el favor de salvar nuestras pertenencias. Además, en esta versión de SAFE? no pudimos determinar t