El inicio de sesión con módulo de huellas dactilares y Arduino es un sistema de autenticación biométrica que utiliza la tecnología de reconocimiento de huellas dactilares para permitir el acceso a un sistema o dispositivo. Este sistema combina la capacidad de detección y lectura de huellas dactilares del módulo con la programación y control proporcionados por una placa Arduino.
Aquí hay una descripción general de cómo funciona este sistema:
- Componentes clave:
- Módulo de huellas dactilares: Un sensor que captura la imagen de la huella dactilar y la convierte en una representación digital única.
- Arduino: Una placa microcontroladora programable que actúa como cerebro del sistema, controlando la comunicación con el módulo de huellas dactilares y tomando decisiones basadas en los datos capturados.
- Registro de huellas dactilares:
- Para usar el sistema, los usuarios deben registrar sus huellas dactilares en la base de datos del Arduino. Esto implica escanear la huella dactilar varias veces para capturar múltiples ángulos y detalles.
- El módulo de huellas dactilares procesa la información y la almacena en una forma digital única llamada “plantilla” o “template”.
- Proceso de autenticación:
- Cuando un usuario desea iniciar sesión, coloca su dedo en el módulo de huellas dactilares.
- El módulo escanea la huella dactilar y la compara con las plantillas almacenadas en la base de datos del Arduino.
- Si hay una coincidencia cercana, el Arduino autoriza el acceso y permite al usuario ingresar al sistema o dispositivo.
- Implementación:
- La programación es esencial para este sistema. Se requiere código para la comunicación entre el módulo de huellas dactilares y el Arduino, así como para la gestión de las plantillas de huellas dactilares almacenadas.
- La programación también aborda situaciones como la administración de múltiples usuarios y la gestión de errores, como coincidencias incorrectas o intentos no autorizados.
- Ventajas:
- La autenticación basada en huellas dactilares es más segura que las contraseñas tradicionales, ya que las huellas dactilares son únicas y difíciles de falsificar.
- Es conveniente para los usuarios, ya que elimina la necesidad de recordar contraseñas.
- Puede ser aplicado en una variedad de escenarios, como acceso a dispositivos móviles, sistemas de seguridad y más.
- Consideraciones:
- La precisión y confiabilidad del módulo de huellas dactilares son cruciales para evitar falsas alarmas o negaciones de acceso.
- Se deben tomar medidas para proteger las plantillas de huellas dactilares almacenadas, ya que representan información biométrica sensible.
El inicio de sesión con módulo de huellas dactilares y Arduino es un ejemplo de cómo la tecnología biométrica puede mejorar la seguridad y la experiencia del usuario en sistemas de autenticación.
Componentes electrónicos
Arduino micro
Especificaciones técnicas
MICROCONTROLADOR | ATmega32U4 |
TENSIÓN DE FUNCIONAMIENTO | 5V |
VOLTAJE DE ENTRADA (RECOMENDADO) | 7-12V |
PINES DE E/S DIGITALES | 20 |
CANALES PWM | 7 |
CANALES DE ENTRADA ANALÓGICA | 12 |
CORRIENTE CC POR PIN DE E/S | 20mA |
CORRIENTE CC PARA CLAVIJA DE 3,3 V | 50mA |
MEMORIA FLASH | 32 KB (ATmega32U4) de los cuales 4 KB utilizados por el gestor de arranque |
SRAM | 2,5 KB (ATmega32U4) |
EEPROM | 1 KB (ATmega32U4) |
VELOCIDAD DE RELOJ | 16 MHz |
LED_CONSTRUIDO | 13 |
LONGITUD | 48mm |
ANCHO | 18mm |
PESO | 13 gramos |
Diecisiete pulsadores
Cable micro usb
PCB
Descargar archivo gerber –>teclado arduino micro
Componentes opcionales
Buzzer
Pines hembra
Módulo fingerprint Open Smart
Descargar Manual –> R308-fingerprint-module-user-manual_English
Circuito
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include <Keyboard.h> #include <Adafruit_Fingerprint.h> #include <SoftwareSerial.h> int getFingerprintIDez(); int lecturaSet1; int lecturaSet2; int set1 = 2;//Pin 2 del arduino donde está conectado el pulsador 1 int set2 = 3;//Pin 3 del arduino donde está conectado el pulsador 2 int buzzer = 13; SoftwareSerial mySerial(8, 9);//Pines para el control del sensor de huella Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); void setup() { pinMode(buzzer, OUTPUT); pinMode(set1, INPUT_PULLUP); pinMode(set2, INPUT_PULLUP); Serial.begin(9600);//Velocidad del puerto serial pin 0 y 1 Serial.println("Prueba de detección de fingerprint"); finger.begin(57600); // Velocidad del puerto serial por software pin 8 y 9 if (finger.verifyPassword()) { Serial.println("¡Sensor de huellas dactilares encontrado!"); } else { Serial.println("Sensor de huellas dactilares no encontrado:("); while (1); } Serial.println("Esperando una huella válida..."); } void loop() { getFingerprintIDez(); delay(500); //Retardo entre lectura de una huella y otra . lecturaSet1 = digitalRead(set1); lecturaSet2 = digitalRead(set2); if(lecturaSet1 == LOW){ Keyboard.print("password");//Contraseña Keyboard.press(KEY_RETURN);//Enter Keyboard.releaseAll(); bip(); } if(lecturaSet2 == LOW){ Keyboard.print("password");//Contraseña Keyboard.press(KEY_RETURN);//Enter Keyboard.releaseAll(); bip(); } } // devuelve -1 si falla, de lo contrario devuelve el ID # de la huella int getFingerprintIDez() { uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; // Se encontró una coincidencia! Serial.print("Huella ID #"); Serial.print(finger.fingerID); Serial.print(" con confianza de "); Serial.println(finger.confidence); bip(); if(finger.fingerID == 1){ Keyboard.print("password"); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } if(finger.fingerID == 2){ Keyboard.print("usuario");//Usurio Keyboard.press(KEY_TAB);//Tabulador Keyboard.print("password");//Contraseña Keyboard.press(KEY_RETURN);//Enter Keyboard.releaseAll(); } if(finger.fingerID == 3){ Keyboard.print("password"); Keyboard.press(KEY_RETURN); Keyboard.releaseAll(); } if(finger.fingerID == 4){ Keyboard.print("prueba 4"); } if(finger.fingerID == 5){ Keyboard.print("prueba 5"); } return finger.fingerID; } void bip (){ digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); } |
PROYECTO RECOMENDADO