El reto del lector de la huella digital

Published on

in

,

Este fin de semana arrancó con uno de esos retos que llaman la atención, aquí el problema:

Usar un lector biométrico para huella digital, identificar a una persona por su huella, y en caso de tener una coincidencia positiva, obtener determinada información de esa persona, y colocarla en un apartado en particular de una celda de una hoja de cálculo de Excel… todo eso, en el mismo Excel, es decir,  no se puede tener un sistema externo porque el libro de trabajo ya contiene determinadas fórmulas que llenan secciones de la hoja de cálculo, donde se esperan los datos de la persona.

Para aquellos lectores que ya tienen resuelto esto, agradezco sus comentarios y guías al respecto. Como sea, esta es la crónica de cómo pretendo abordar el tema, porque lo estoy ejecutando al momento de escribir el artículo.

11 de Noviembre, 2017 – 11:50pm Divide y vencerás

Esta es la técnica por excelencia del desarrollo de software: partir un problema complejo en pequeños problemas e irlos resolviendo de a poco. Siguiendo con esa estrategia, el primer problema es encontrar un lector biométrico que cumpla con estos requisitos: huella digital, y un SDK que me permita conectarlo con .Net (de momento es la base teórica con la que parto).

12 Noviembre, 2017 – 12:20am Buscando el biométrico

Después de un par de consultas y resultados ambiguos en Google, decidí buscar opciones de equipos biométricos en Amazon. Esto lo describo sin ánimos de hacer comerciales, es netamente un recuento de lo que hice, vaya, el recuento de la crónica. De esa búsqueda, salieron las siguientes opciones:

MagiDeal

51jmfem2ogl-_sl1024_

puuli uru4000b

71z6pvf8arl-_sl1413_

Ingressio Nitgen Hamster

51jpfsar3tl-_sl1012_

El  siguiente filtro fue ver cuáles de estas opciones exponían claramente un SDK con compatibilidad para .Net, y de los tres que elegí, el más claro fue el de Nitgen, pero, ya viendo el detalle fino en su sitio web, de Nitgen y tratando de encontrar más detalles del SDK, terminé en la siguiente URL:

SecuGen Hamster Plus (HSDU03P)

hamster-plus-fingerprint-scanner

Este equipo me agradó bastante, por encima de los tres originales, comenzando desde la página en que se describe. Lo digo sin denostar, pero las otras, de verdad, no eran nada claras y se nota que no han trabajado mucho en el producto.

Hasta aquí dejaré esta parte, porque el siguiente paso de este punto, es mostrarle el lector al interesado y esperar a que, determine si lo adquiere o no; me parece que es una buena opción, el precio a la fecha de la edición de este artículo es bastante competitivo, siendo de $73.50 USD. Ya escribiré más tarde hoy, o en los días venideros, si este es el equipo que resulta ganador.

12 Noviembre, 2017 – 12:46am Programación en Excel

Mi historia en la computación data desde 1992, aprendiendo de memoria comandos de consola que no entendía qué hacian en realidad (como copy y xcopy), y algo que recuerdo muy bien era cómo todos decían que Lotus 123 era lo máximo. Cuando llegó la ocasión de verlo, intentar usarlo y no entender NADA (contaba yo con 10 años de edad para entonces), sólo me pareció el peor y más aburrido de los programas de entonces. Años después, dejé el entorno de consola y ví Windows 3.1 por primera vez… ¡Qué diferencia!

Creo que la aproximación de muchos a Windows 3.1 fue más o menos así (mi caso es igual): Bloc de notas, Paintbrush, calculadora, panel de control, MS Word y MS Excel… Power point y Access tardarían un poco más en entrar en escena.

De lo poco que ví de Lotus 123, al entrar a Excel y hacer prácticamente lo mismo, pero ya con un ratón y sin imaginarme que estaba ocurriendo porque lo podía ver, sin entender aun que en el mundo del software existen también los creadores y los clonadores, yo pensaba que Excel era la versión gráfica de Lotus.

En mi muy personal punto de vista, MS Office es una de las mejores suites de ofimática, sino es que la mejor. Y Excel, sin dudas, es un ejemplo indiscutible del éxito de la suite.

Hoy día creo que Microsoft hizo un movimiento magistral permitiendo extender la funcionalidad de sus productos de ofimática (MS Office) de acuerdo a las necesidades específicas del usuario, y si hay un lugar donde esto es particularmente útil, es obviamente en Excel.

El segundo requerimiento por resolver, con base en esta premisa, y regresando a la crónica que nos ocupa, dado que lo he usado no más allá de «muy poco», empecé a buscar dónde y cómo se extiende la funcionalidad de MS Excel 2010 (la versión que tengo y uso) con esta facilidad.

Noviembre 12, 2017 – 01:08am Sin miedo desde Excel

He leído un par de artículos y visto un par de videos. Ya hice el típico Hola Mundo que quienes me conocen saben que cambio por un inigualable y valioso «Sin miedo», asignar valores a una celda y relacionar al evento de un clic de botón que ejecute una de las dos macros que he hecho. Hasta el momento todo bien.

El recuento de los hechos:

1. Abrir Excel

2. Ir a la pestaña Programador

3. Clic en Visual Basic

abrir_vb_excel

4. En la ventana nueva, en el explorador de proyectos, clic derecho sobre el nombre del libro de trabajo, opción Insertar y elegir Módulo.

5. En la ventana de código declarar la rutina de toda la vida Sub Signatura…

Sub sinmiedo()
   MsgBox ("sin miedo desde el excel ohhh jo jo jo")
End Sub

6. Guardar los cambios

codigo_vb_excel01

7. Regresar a la hoja de excel, y teclear al mismo tiempo ALT + F8. Esto abrirá la ventana de ejecución de Macros. Elegimos la recién creada y fffssshhh, listo, mensaje en MS Excel sin miedo:

mensaje_sm_excel01

Hasta este punto todo bien. Ya tenemos interacción con MS Excel. Sigue poder invocar la función desde un botón, ejecutar algo más elaborado y regresar resultados a la hoja de cálculo, pero eso ya será mañana, porque como pueden ver, es la 1 de la madrugada y ya tengo sueño :-D.

Continuará sin miedo…

Noviembre 12, 2017 – 5:58pm Adelantando eventos

Si estás leyendo esto fuera del contexto de la fecha, el 12 de Noviembre es/fue domingo. La decisión de comprar o no el lector de huella digital está pendiente al menos hasta el lunes, y tampoco tengo a la mano el libro de trabajo al que se le añadirá la funcionalidad solicitada, o quizá debería decir, a la que pretendo agregar la funcionalidad solicitada.

Parte de la información que se desea obtener, es el nombre y el titulo de la persona que está siendo identificado por el biométrico. Para tales efectos, decidí hacer un ejemplo de lo que creo que será el trabajo por hacer. De tal suerte que en una hoja de calculo aparte, hice una lista de nombres y títulos genéricos, y una columna que hará de llave primaria y con la que se realizará la búsqueda del registro en turno. La hoja se aprecia como sigue:

listadoPersonas

En la hoja principal simularemos el evento de invocar al biométrico, obtener la huella digital y traer el nombre y el título de la persona identificada.

En la hoja principal donde están las celdas para escribir el nombre y el título de la persona, generé un botón. A un costado de este botón y para fines de seguimiento, declaré una celda en la que se estará escribiendo el ID de la persona que se identificó con el biométrico (esta parte es la simulación). Al presionar el botón, estaríamos invocando la lectura del biométrico, que a su vez dejará el ID obtenido en la celda comentada, y esta será usada como referencia para obtener el nombre y el título buscados.

hojaConBoton

El flujo simulado quedó entonces de la siguiente forma:

Al hacer clic en el botón leer huella, se invoca el biométrico (este paso nos lo saltamos hasta tener el dispositivo) y lo simulamos escribiendo previamente un número en la celda contigua a la etiqueta del identificador (O25).

hojaConBotonFlujo

El botón leerá el valor de la celda O25 y lo pasará como parámetro a la función que obtiene el nombre y el título asociados al identificador. En caso de tener una coincidencia, asigna en las celdas H27 y H28 el nombre y el título encontrados, respectivamente. Como corolario cultural y salido más de experimento que de lectura, si se da un formato previo a las celdas (tipo de letra, estilo, etc.), éste es respetado.

pruebaAsignacionNombreTitulo

Esta es la declaración básica y primitiva de las funciones que realizan las búsquedas y asignaciones:

Sub leerDatosPorID(ByVal id As Integer)
 Dim nombre As String
 Dim titulo As String
 Dim celda As String
 
 'MsgBox (id)
 
 ' el rango maximo es de 11 (el 1 es el titulo)
 If (id > 1 And id <= 11) Then
 celda = "B" & id
 nombre = ThisWorkbook.Sheets(2).Range(celda).Value
 ThisWorkbook.Sheets(1).Range("H27").Value = nombre
 
 celda = "C" & id
 titulo = ThisWorkbook.Sheets(2).Range(celda).Value
 ThisWorkbook.Sheets(1).Range("H28").Value = titulo
 Else
 ThisWorkbook.Sheets(1).Range("H27").Value = "Persona no identificada"
 ThisWorkbook.Sheets(1).Range("H28").Value = "Titulo no identificado"
 End If
End Sub

Sub obtenerIDHuella()
Dim id As Integer

id = ThisWorkbook.Sheets(1).Range("P24").Value
 leerDatosPorID (id)
End Sub

Ya con el libro de trabajo real en mano, vemos cómo le hacemos… mañana.

Enero 30, 2018. Proyecto cancelado.

Ha pasado más de un mes desde el primer análisis que hice. Mi interesado no me buscaba, pensé que era porque había tomado vacaciones decembrinas… De hecho sí lo hizo, solo que al volver ya no me contactó porque ya no trabaja en donde se necesitaba este software, y con su salida, se terminó también el interés en el proyecto.

Ni hablar… Damos por cerrada la crónica.

Deja un comentario

Descubre más desde Crónicas de Programación

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo