Lector Biometrico

25
pág. 1 Jue. “COOKING THE AWESOME” CupGames. | Propuesta C.A.P. Miembros del Grupo de trabajo Equipo de Desarrollo: Arturo Velazquez Gtz. Ángel Ignacio Hernández Parra Ángel Agustín Luna Hernández Daniel Gutierrez Recendiz Luis Raúl Pérez Larraga CupGames | C.O. Arturo Velazquez Gtz. | 1 Contáctanos:Youtube.com/CupGames www.CupGames.com.mx Facebook.com/CupGames [email protected] Twitter.com/CupGamesDeveloper SUBSECRETARIA DE EDUCACION SUPERIOR TECNOLOGICO NACIONAL DE MEXICO INSTITUTO TECNOLOGICO DE ALTAMIRA lector biometrico Materias/Docente: servicio INGENIERIA EN SISTEMAS COMPUTACIONALES

description

un lectr biometrico y sus coeficientes

Transcript of Lector Biometrico

pág. 1

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Miembros del Grupo de trabajo

Equipo de Desarrollo:Arturo Velazquez Gtz.

Ángel Ignacio Hernández ParraÁngel Agustín Luna Hernández

Daniel Gutierrez RecendizLuis Raúl Pérez Larraga

CupGames | C.O. Arturo Velazquez Gtz. | 1

SUBSECRETARIA DE EDUCACION SUPERIOR TECNOLOGICO NACIONAL DE MEXICO INSTITUTO TECNOLOGICO DE ALTAMIRA lector biometrico

Materias/Docente: servicio

INGENIERIA EN SISTEMAS COMPUTACIONALES

Contáctanos: Youtube.com/CupGameswww.CupGames.com.mx Facebook.com/[email protected] Twitter.com/CupGamesDeveloper

pág. 2

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Cómo Funcionan los Lectores de Huella Digital (Línea: Periféricos)

Los lectores de huella digital computarizados siempre han aparecido en películas de espías resguardando el acceso a lugares restringidos, pero en el mundo real eran una tecnología bastante exótica hasta hace unos años, cuando empezaron a aparecer en todos lados para controlar el acceso a edificios que necesitaban alta seguridad, e incluso en "mouses" y teclados para computadora, reemplazando o complementando el uso de passwords para dar acceso a una PC.

Fundamentos de las Huellas Digitales Podríamos decir que los seres humanos tienen tarjetas de identificación integradas, muy fácilmente accesibles: sus huellas digitales, las cuales son diseños virtualmente únicos. 

La gente tiene diminutos "valles y crestas" de piel en la punta de los dedos que eran de gran utilidad a los ancestros de la raza humana, pues les permitían asir cosas con mayor facilidad. Estos valles y crestas se forman por una combinación de factores genéticos y ambientales aleatorios, como la posición del feto en un momento particular y la composición y densidad exacta del líquido amniotico que lo rodea. 

Un lector de huella digital lleva a cabo dos tareas:

1) Obtener una imagen de su huella digital, y

2) Comparar el patrón de valles y crestas de dicha imagen con los patrones de las huellas que tiene almacenadas.

Los dos métodos principales de obtener una imagen de una huella digital son por lectura óptica o lectura de capacitancia.

Lectores Opticos

Un lector óptico funciona con un dispositivo CCD (Charged Coupled Device), como el usado en las camaras digitales (ver BIT de Octubre 2001), que tienen un arreglo de diodos sensible a la luz que generan una señal eléctrica en respuesta a fotones de luz. Cada diodo graba un pixel, un pequeño punto que representa la luz que le es reflejada. Colectivamente, la luz y perfiles oscuros forman una imagen de la huella leída. El proceso de lectura comienza cuando usted pone su dedo sobre la ventana del lector, el cual tiene su propia fuente de iluminación, típicamente un arreglo de LEDs, para iluminar las crestas de la huella digital. El CCD genera, de hecho, una imagen invertida del

CupGames | C.O. Arturo Velazquez Gtz. | 2

pág. 3

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

dedo, con áreas más oscuras que representan más luz reflejada (las crestas del dedo) y áreas más claras que representan menos luz reflejada (los valles entre las crestas).

Antes de comparar la información obtenida con la almacenada, el procesador del lector se asegura de que el CCD ha capturado una imagen clara. Checa la oscuridad promedio de los pixeles, o los valores generales en una pequeña muestra, y rechaza la lectura si la imagen general es demasiado oscura o demasiado clara. Si la imagen es rechazada, el lector ajusta el tiempo de exposición  para dejar entrar más o menos luz, e intenta leer la huella de nuevo.

Si el nivel de luz es adecuado, el lector revisa la definición de la imagen (que tan precisa es la imagen obtenida). El procesador busca varias lineas rectas que se mueven horizontal y verticalmente sobre la imagen, y si esta tiene buena definición, una línea que corre perpendicular a las crestas será hecha de secciones alternantes de pixeles muy claros y muy oscuros.

Lectores de Capacitancia

Como los lectores ópticos, los lectores capacitivos de huella digital generan una imagen de las crestas y valles que conforman una huella digital, pero en vez de hacerlo con luz, los capacitores utilizan corriente eléctrica.

El diagrama de abajo muestra un ejemplo de sensor capacitivo. El sensor está hecho de uno o más chips que contienen un arreglo de pequeñas celdas. Cada celda incluye dos placas conductoras, cubiertas con una capa aislante. 

Las celdas son más pequeñas que el ancho de una cresta del dedo. El sensor es conectado a un integrador, un circuito eléctrico construido sobre la base de un amplificador operacional inversor que altera un flujo de corriente. La alteración se basa en el voltaje relativo de dos fuentes, llamado la terminal inversora y la terminal no-inversora. En este caso, la terminal no-inversora es conectada a tierra, y la terminal inversora es conectada a una fuente de voltaje de referencia y un bucle de retroalimentación que incluye las dos placas conductoras, que funcionan como un capacitor, esto es, un componente que puede almacenar una carga. La superficie del dedo actua como una tercera placa capacitora, separada por las capas aislantes en la estructura de la celda y, en el caso de los valles de la huella, una bolsa de aire. 

Al variar la distancia entre las placas capacitoras (moviendo el dedo más cerca o más lejos de las placas conductoras), se cambia la capacitancia (o habilidad para almacenar una carga) total de el capacitor. Gracias a esta cualidad, el capacitor en una celda bajo una cresta tendrá una capacitancia más grande que el capacitor en una celda bajo un valle. Ya que la distancia a el dedo altera la capacitancia, la cresta de un dedo resultará en una salida de voltaje diferente a la del valle de un dedo.

El procesador del lector lee esta salida de voltaje y determina si es característico de una cresta o un valle. Al leer cada celda en el arreglo de sensores, el procesador puede construir una imagen de la huella, similar a la imagen capturada por un lector óptico. 

CupGames | C.O. Arturo Velazquez Gtz. | 3

pág. 4

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

La principal ventaja de un lector capacitivo es que requiere una verdadera forma de huella digital y no sólo un patrón de luz y oscuridad que haga la impresión visual de una huella digital. Esto hace que el sistema sea más dificil de engañar. Adicionalmente, al usar un chip semiconductor en vez de una unidad CCD, los lectores capacitivos tienden a ser más compactos que los ópticos.

Análisis

En la televisión los lectores de huella digital típicamente empalman varias imágenes de huellas digitales para encontrar una que corresponda. En realidad, este no es un modo práctico para comparar las huellas digitales. Una imagen borrosa puede hacer que dos imágenes de la misma huella se vean bastante diferentes, así que raramente se podrá obtener un empalme perfecto. Adicionalmente, utilizar la imagen completa de la huella digital en un análisis comparativo utiliza muchos recursos del procesador, y además hace más sencillo robar los datos impresos de la huella de alguien.

En vez de esto, la mayoría de los lectores compara rasgos específicos de la huella digital, generalmente conocidos como minutiae. Típicamente, los investigadores humanos y computadoras se concentran en puntos donde las líneas de las crestas terminan o donde se separan en dos (bifurcaciones). Colectivamente estos y otros rasgos distintivos se llaman typica.

El software del sistema del lector utiliza algoritmos altamente complejos para reconocer y analizar estas minutiae. La idea básica es medir las posiciones relativas de la minutiae. Una manera simple de pensar en esto es considerar las figuras que varios minutia forman cuando dibuja líneas rectas entre ellas. Si dos imágenes tienen tres terminaciones de crestas y dos bifurcaciones formando la misma figura dentro de la misma dimensión, hay una gran probabilidad de que sean de la misma persona.

Para obtener una coincidencia, el sistema del lector no necesita encontra el patrón entero de minutiae en la muestra y en la imagen almacenada, simplemente debe encontrar un número suficiente de patrones de minutiae que ambas imágenes tengan en común. El número exacto varía de acuerdo a la programación del lector.

Ventajas Generales

Las ventajas de un sistema biométrico de huella digital son que los atributos físicos de una persona suelen ser difíciles de falsificar, uno no puede adivinar una huella digital como adivina un password,

CupGames | C.O. Arturo Velazquez Gtz. | 4

pág. 5

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

no puede perder sus huellas digitales como pierde una llave y no puede olvidar sus huellas digitales como puede olvidar un password.

Para hacer los sistemas de seguridad más confiables, es una buena idea combinar el análisis biométrico con un medio convencional de identificación, como un password o una tarjeta. TEC Electrónica ofrece lectores de huella que además pueden verificar una tarjeta inteligente o una tarjeta mifare (tarjeta inteligente sin contacto) en donde se almacene la huella digital del usuario. El lector coteja que la huella codificada en la tarjeta sea la misma que se está poniendo sobre el lector, proporcionando un grado mayor de seguridad y eliminando las limitaciones de espacio de almacenamiento de huellas en un servidor, pues se pueden emitir credenciales con huellas codificadas de manera infinita.

Cada día se implementan más y más nuevas soluciones con lectores de huella digital, por lo que en un futuro cercano será una tecnología utilizada por una gran proporción de la gente. Si desea aprovechar esta nueva tendencia es el momento indicado, llame a uno de nuestros Ejecutivos de Ventas para conocer la gama completa de lectores de huella digital que podemos ofrecerle

Lectura de datos mediante exel

A veces es necesario cuando realizamos proyectos con Arduino y sensores, enviar la información obtenida a algún otro software para su análisis y utilización. Aprende a exportar datos de sensores desde Arduino a Excel, por medio de una interfaz en Java. Se utilizará las librerías Arduino para Java y la librería POI para generar los archivos de Excel. Para exportar datos de sensores desde Arduino a Excel yo recomiendo utilizar Java. Aquellos que frecuentan este blog saben acerca de mi librería Arduino para Java.http://panamahitek.com/libreria-arduino-para-java/Normalmente cuanto escribo un post acerca dealgún proyecto en la línea Arduino/Java, empiezo por Java, pero esta vez voy a iniciar con Arduino.Se va a utilizar para esta experiencia el sensor de humedad/temperaturaDHT11, del cual ya he escrito lo suficiente en mis anteriores aportes.

El código a utilizar en Arduino es el siguiente:

CupGames | C.O. Arturo Velazquez Gtz. | 5

pág. 6

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

34567891011121314151617181920212223242526272829303132333435

**************************************************** #include "DHT.h" //cargamos la librería DHT#define DHTPIN 2 //Seleccionamos el pin en el que se //conectará el sensor#define DHTTYPE DHT11 //Se selecciona el DHT11 (hay //otros DHT)DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensorboolean Start=false;int mensaje=0;void setup() {  Serial.begin(9600); //Se inicia la comunicación serial   dht.begin(); //Se inicia el sensor}void loop() {   if (Serial.available()>0){    mensaje =Serial.read();    if (mensaje=='1'){      Start=true;    }    else    {      Start=false;    }  }  if (Start==true){    float h = dht.readHumidity(); //Se lee la humedad    float t = dht.readTemperature(); //Se lee la temperatura    //Se imprimen las variables    Serial.println(h);    delay(10); //Este delay nos servirá para la lectura de datos en Java    Serial.println(t);    delay(2000); //Se espera 2 segundos para seguir leyendo //datos  }}****************************************************

 

Es un código sencillo. Se lee la humedad y la temperatura y se envían por medio del puerto serie. Es importante utilizar Serial.println() y un pequeño delay de 10

CupGames | C.O. Arturo Velazquez Gtz. | 6

pág. 7

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

milisegundos. A la hora de leer los datos Java a veces se confunde. El método que utilizo yo para enviarme series de datos de Arduino a Java requiere de una secuencia, y ese pequeño delay es el que hace que todo me funcione correctamente. A continuación se muestra a que me refiero. Le he colocado una “lave”, una variable del tipo boolean que iniciará o detendrá la toma de datos.Vamos a Netbeans y creamos un proyecto, colocamos un jTable y 2 botones, uno para iniciar/detener la toma de datos y el otro para exportar a Excel. 

Ahora se necesita implementar la librería Arduino para Java PanamaHitek_Arduino . La librería RXTX será necesaria en esta ocasión.Se debe utilizar la conexión RXTX debido a que se transmitirán y se recibirán datos.

CupGames | C.O. Arturo Velazquez Gtz. | 7

pág. 8

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Se debe tomar en cuenta que el puerto COM utilizado varía de computadora a computadora. En mi caso es el 10, en el de ustedes puede ser diferente. Al declarar el objeto “evento” aparecerá una opción a la izquierda de la línea que indicará que se deben importar todos los métodos abstractos. Al hacer clic en dicha opción, se agregará el método SerialEvent.Ahora hay que establecer cómo se van a recibir los datos. En Arduino primero se envía la Humedad y luego la Temperatura. Se debe crear una variable, a la cual llamará Slot. Dependiendo del valor de Slot, se ejecutará determinada acción.

CupGames | C.O. Arturo Velazquez Gtz. | 8

pág. 9

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Analicemos lo que sucede aquí. La variable Slot, inicialmente tiene valor 1. Si hay un mensaje disponible, es decir, si se ha invocado el método Serial.println en Arduino, Java reconocerá que debe leer el mensaje. Se le asigna a la variable “Humedad” y se aumenta el valor de Slot hasta 2. El próximo mensaje que se reciba, se le asignará el valor a la Temperatura y el valor de Slot volverá a ser 1 y así sucesivamente.El SerialEvent se ejecuta hasta que se lee el valor, por lo que cualquier instrucción que se coloque después del PrintMessage será despreciada. Lo que voy a hacer es lo siguiente: crearé un método que sea el que introduce en el jTable la humedad y la temperatura “al leer la humedad”. Pero esto debe suceder luego de la segunda lectura, así que se declara una variable llamada Lecturas que al ser mayor que 1, permita que se desencadene el jTableUpdate.

CupGames | C.O. Arturo Velazquez Gtz. | 9

pág. 10

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

De esta forma, al leerse el dato de temperatura, se disparará el método jTableUpdate. Agregamos las instrucciones para agregar los datos a la tabla.Para cada ejecución del jTableUpdate, se debe agregar una fila al jTable. Estoya lo expliqué en uno de mis anteriores aportes.Se declara el modelo y en el jTableUpdate se agrega la fila, a la vez que se insertan los valores en las celdas. Hay que insertar el tiempo, por lo que es necesario invocar una librería en Java. Se trata de Calendar, que nos permite declarar un objeto al que yo he llamado Calendario y obtener hora, minutos y segundos para agregarlos a la tabla.

CupGames | C.O. Arturo Velazquez Gtz. | 10

pág. 11

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Ahora hay que programar los botones. Primero el botón de iniciar la toma de datos.Se crea otra llave, una variable del tipo boolean para condicionar el comportamiento del botón. Si es falso, se envía un “1” para iniciar la toma de datos. De lo contrario se envía un “0” para detener la toma de datos.

CupGames | C.O. Arturo Velazquez Gtz. | 11

pág. 12

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Hasta aquí, el proyecto es funcional. Ya se puede apreciar lo que sucede cuando se presiona “Iniciar Toma de Datos”.

Ahora estamos listos para pasar a Excel.Uso de la Librería POILa librería POI (que está disponible en este enlace). Ha sido diseñada especialmente para exportar documentos a Excel. Ahora voy a explicar como funciona.

CupGames | C.O. Arturo Velazquez Gtz. | 12

pág. 13

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Lo primero que le vamos a agregar al botón “Exportar a Excel” es un jFileChooser que nos entregue la dirección en la cual queremos guardar el fichero.

Ahora vamos a crear un método donde se cree el fichero.Hay que crear algunos objetos: un libro, una hoja, una fila y una celda, todos elementos de Excel.

Ahora si se quiere crear una fila, se debe modificar el parámetro del método createRow(int row). Si se quiere modificar la columna entonces se debe cambiar la celda en el parámetro de createCell(int celda).Lo primero que haré es colocar un título. Luego empezaré a imprimir todos los datos del jTable en la hoja de Excel utilizando un ciclo for. Por último, generaré un fichero que se guardará en la ruta que escogí.

CupGames | C.O. Arturo Velazquez Gtz. | 13

pág. 14

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

En el código del botón de exportar a Excel he colocado lo siguiente:

Esto es todo. Se puede hacer la prueba y se obtendrá lo siguiente:

Links para el procedimiento visual : https://youtu.be/N_C2167O4cU parte 2 https://youtu.be/umQi5URC-DM

CupGames | C.O. Arturo Velazquez Gtz. | 14

pág. 15

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

Lector de huella digitalSensor biométrico de huella digital 

lector de huella digitallector de huella digitalEl sensor biométrico de huella digital es ideal para realizar un sistema capaz de proteger lo que tu requieras por medio del análisis de tu huella digital. El sistema realiza procesamiento digital de imágenes interno con un DSP ademas de incluir capacidades de comparación en base de datos y actualización de la misma. El dispositivo funciona con el protocolo serial, por lo que puede ser utilizado con cualquier microcontrolador o tarjeta de desarrollo.

CupGames | C.O. Arturo Velazquez Gtz. | 15

pág. 16

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

lector de huella digital El dispositivo tiene la capacidad de almacenar hasta 162 huellas dactilares en su memoria FLASH interna. El LED del dispositivo se ilumina cada que se encuentra tomando imagenes en busca de huellas digitales.-Modelo: 071405-Voltaje de alimentación: 3.6V – 6V-Corriente de operación: 100mA – 150mA-Interfaz: UART TTL-Modo de paridad de huella: 1:1 1:N-Baud Rate: 9600*N-N = 1 a 12 (Por defecto es 6)-Tiempo de adquisición menor a 1 segundo-5 Niveles de seguridad-Dimensión de la ventana: 14x18mm-Entorno de trabajo: -10ºC a 40ºC (Humedad Relativa 40% a 85%)-Dimensiones: 5.5 x 2.1 x 2.0 cm-Peso: 22g Para poder utilizar el dispositivo es necesario guardar las huellas en la base de datos del mismo. Estas huellas se les asigna un ID. Posteriormente se puede

CupGames | C.O. Arturo Velazquez Gtz. | 16

pág. 17

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

iniciar la secuencia de lectura y comparación para verificar las huellas de los usuarios y así poder discernir y ejecutar acciones en base al resultado.Para utilizar el código de ejemplo es necesario primero tomar en cuenta que los cables del dispositivo no tienen acoplado ningún conector por lo que se recomienda soldar pines macho o pines hembra, ya que los headers de arduino o de un protoboard no hacen bien contacto y son motivo de que el dispositivo no funcione correctamente!.

lector de huella digital

CupGames | C.O. Arturo Velazquez Gtz. | 17

pág. 18

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

lector de huella digital Conexiones:GND : NegroPin D2 : VerdePin D3: Blanco5V: Rojo Primero procedemos a descargar la biblioteca para Arduino del siguiente link:https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library Una vez descargada, se descomprime la biblioteca y se guarda dentro de:C:\Program Files (x86)\Arduino\libraries\Es necesario renombrar la carpeta de la biblioteca en caso de que se encuentre con un nombre diferente que el archivo “.cpp” que se encuentra en la misma. Abrimos el IDE de Arduino y seleccionamos Archivo-Ejemplos- y buscamos la biblioteca que acabamos de instalar y seleccionamos el ejemplo deenroll. En este ejemplo primero identificara si el sensor se encuentra conectado. Si lo detecta primero preguntara una ID para asignarla a la huella a introducir.

CupGames | C.O. Arturo Velazquez Gtz. | 18

pág. 19

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

lector de huella digital Una vez enviado el ID deseado ponemos la huella en el sensor, la retiramos y la volvemos a poner para tomar una captura redundante de 2 imágenes. Podemos seguir este proceso para dar de alta en la base de datos del dispositivo todas las huellas que se requieran, ya que estas se guardan en la memoria interna del mismo.

CupGames | C.O. Arturo Velazquez Gtz. | 19

pág. 20

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

lector de huella digital Una vez dadas de altas las huellas, se puede cargar el ejemplo fingerprint, este lee la huella del sensor y nos dice que tan coherente es un resultado con su base de datos, siempre y cuando haya sido un resultado positivo, si no encuentra huella, no envía nada.

CupGames | C.O. Arturo Velazquez Gtz. | 20

pág. 21

Jue. 02/Oct./2014

“COOKING THE AWESOME”

CupGames. | Propuesta C.A.P.

lector de huella digital APENDICEEl sensor funciona a 57600 baudios, se puede configurar pero esta es la velocidad por defecto, al hacer uso del serial,  el arduino utiliza la biblioteca de serial por software.?1 #include <SoftwareSerial.h> Si se requiere cambiar de pines el serial por software se puede hacer en la siguiente instrucción:?1 SoftwareSerial mySerial(2, 3); Para el ejemplo de fingerprint, si se requieres que el arduino ejecute una accion al haber encontrado una huella, es necesario indicarlo en esta seccion de codigo:?123456

Serial.print("Found ID #");Serial.print(finger.fingerID);Serial.print("With confidence of");Serial.println(finger.confidence);// Escribir el codigo aquireturn finger.fingerID;

 

CupGames | C.O. Arturo Velazquez Gtz. | 21