Tabla de contenido:

Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)
Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)

Video: Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)

Video: Máquina de votación biométrica basada en huellas dactilares con Arduino: 4 pasos (con imágenes)
Video: Raspberry Pi & Arduino - Los artesanos del siglo XXI y el movimiento maker. 2024, Mes de julio
Anonim
Máquina de votación biométrica basada en huellas dactilares con Arduino
Máquina de votación biométrica basada en huellas dactilares con Arduino

Todos conocemos la máquina de votación electrónica existente donde el usuario debe presionar un botón para emitir el voto. Pero estas máquinas han sido criticadas por templar desde el principio. Por lo tanto, el gobierno planea introducir una máquina de votación basada en huellas dactilares donde los usuarios pueden emitir el voto en función de su impresión de huellas dactilares. Este sistema no solo eliminará la posibilidad de votos duplicados, sino que también evitará cualquier tipo de manipulación.

Entonces, en este proyecto, vamos a construir un prototipo de máquina de votación biométrica usando Arduino Uno, pantalla TFT y sensor de huellas dactilares. Anteriormente usamos el sensor de huellas digitales R305 con NodeMCU para construir un sistema de asistencia basado en biometría, pero aquí usaremos el sensor de huellas digitales avanzado GT-511C3 con Arduino.

Paso 1: Componentes necesarios para construir una máquina de votación biométrica

  • Arduino Uno
  • Protector de pantalla LCD TFT de 2,4"
  • Sensor de huellas dactilares GT-511C3

Esta pantalla TFT de 2,4 pulgadas se utilizaba anteriormente con Arduino para crear un sistema de pedidos de menús de restaurantes basado en IoT.

Paso 2: Diagrama de circuito para la máquina de votación biométrica con Arduino

Diagrama de circuito para máquina de votación biométrica con Arduino
Diagrama de circuito para máquina de votación biométrica con Arduino

El diagrama de circuito para este proyecto es muy simple ya que solo estamos conectando la pantalla TFT y el módulo del sensor de huellas dactilares con Arduino Uno. Los pines VCC y GND del sensor de huellas dactilares están conectados a los pines 5V y GND de Arduino, mientras que los pines TX y RX están conectados a los pines digitales 11 y 12 de Arduino Uno.

La pantalla LCD TFT de 2.4”es un Arduino Shield y se puede montar directamente en Arduino Uno, como se muestra en la imagen de abajo. La pantalla TFT tiene 28 pines que encajan perfectamente en Arduino Uno, así que tuve que soldar el sensor de huellas dactilares en la parte trasera de Arduino.

Paso 3: Código fuente y explicación del código paso a paso

El código completo para este proyecto de sistema de votación por huellas dactilares que utiliza Arduino se proporciona al final del artículo; aquí estamos explicando algunas funciones importantes del código.

El código utiliza las bibliotecas SPFD5408, Software Serial y FPS_GT511C3. La biblioteca SPFD5408 es la versión modificada de la biblioteca Adafruit original. Estos archivos de biblioteca se pueden descargar desde los enlaces que se proporcionan a continuación:

  • Biblioteca SPFD5408
  • Serie de software
  • FPS_GT511C3

Después de incluir las bibliotecas y definir algunos parámetros importantes, podemos pasar a la parte de programación. Hay tres secciones involucradas en este programa. Uno es crear una interfaz de usuario de una máquina de votación, el segundo es obtener los puntos de contacto para los botones y detectar los botones en función del tacto y, finalmente, calcular los resultados y guardarlos en la memoria de Arduino.

1. Creación de interfaz de usuario:

He creado una interfaz de usuario simple con tres botones y el nombre del proyecto. La biblioteca de pantallas TFT le permite dibujar líneas, rectángulos, círculos, caracteres, cadenas y mucho más de cualquier color y tamaño preferido. Aquí se crean dos botones rectangulares usando las funciones fillRoundRect y drawRoundRect. La sintaxis de la función tft.drawRoundRect se proporciona a continuación:

tft.drawRoundRect (int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radio, uint16_t color)

Dónde:

x0 = Coordenada X del punto inicial de rectangular

y0 = Coordenada Y del punto inicial de rectangular

w = Ancho de la rectangular

h = Altura del Rectangular

radio = Radio de la esquina redondeada

color = Color del Rect.

vacío drawHome ()

{

tft.fillScreen (BLANCO);

tft.drawRoundRect (0, 0, 319, 240, 8, BLANCO); //Borde de página

tft.fillRoundRect (10, 70, 220, 50, 8, ORO);

tft.drawRoundRect (10, 70, 220, 50, 8, BLANCO); //Votar

tft.fillRoundRect (10, 160, 220, 50, 8, ORO);

tft.drawRoundRect (10, 160, 220, 50, 8, BLANCO); //Inscribirse

tft.fillRoundRect (10, 250, 220, 50, 8, ORO); //Resultado

tft.drawRoundRect (10, 250, 220, 50, 8, BLANCO);

tft.setCursor (65, 5);

tft.setTextSize (3);

tft.setTextColor (CYAN);

tft.print ("Votación");

tft.setCursor (57, 29);

tft.print ("Máquina");

tft.setTextSize (3);

tft.setTextColor (BLANCO);

tft.setCursor (25, 82);

tft.print ("Candidato 1");

tft.setCursor (25, 172);

tft.print ("Candidato 2");

tft.setCursor (25, 262);

tft.print ("Candidato 3");

}

2. Obtener los puntos de contacto y los botones de detección:

Ahora, en la segunda sección del código, detectaremos los puntos de contacto del botón y luego usaremos estos puntos para predecir el botón. La función ts.getPoint () se utiliza para detectar el toque del usuario en la pantalla TFT. ts.getPoint proporciona los valores de ADC sin procesar para el área tocada. Estos valores RAW ADC luego se convierten en coordenadas de píxeles usando la función de mapa.

TSPoint p = ts.getPoint ();

if (p.z> ts.pressureThreshhold)

{

p.x = mapa (p.x, TS_MAXX, TS_MINX, 0, 320);

p.y = mapa (p.y, TS_MAXY, TS_MINY, 0, 240);

//Serial.print("X: ");

//Serial.print(p.x);

//Serial.print("Y: ");

//Serial.print(p.y);

Ahora, dado que conocemos las coordenadas X e Y de cada botón, podemos predecir dónde ha tocado el usuario utilizando la declaración "si".

si (p.x> 70 && p.x 10 && p.y MINPRESSURE && p.z <MAXPRESSURE)

{

Serial.println ("Candidato 1");

Cuando un votante presiona el botón de candidato, se le pedirá que escanee el dedo en el sensor de huellas dactilares. Si se autoriza la identificación del dedo, el votante puede votar. Si algún usuario no registrado desea votar, el módulo de huellas dactilares no detectará su ID en el sistema y la pantalla mostrará "Lo siento, no puede votar".

si (fps. IsPressFinger ())

{

fps. CaptureFinger (falso);

int id = fps. Identify1_N ();

si (id <200)

{

msg = "Candidato 1";

vote1 ++;

EEPROM.write (0, vote1);

tft.setCursor (42, 170);

tft.print ("Gracias");

retraso (3000);

drawHome ();

3. Resultado:

El último paso es obtener el recuento de votos de la memoria EEPROM y comparar los votos de los tres candidatos. Un candidato con la mayor cantidad de votos gana. Solo se puede acceder al resultado desde el monitor en serie y no se mostrará en la pantalla TFT.

vote1 = EEPROM.read (0);

vote2 = EEPROM.read (1);

vote3 = EEPROM.read (2);

si (votar)

{

si ((vote1> vote2 && vote1> vote3))

{

Serial.print ("Can1 gana");

retraso (2000);

}

Paso 4: Probar el sistema de votación por huellas dactilares con Arduino

Para probar el proyecto, conecte el Arduino Uno a la computadora portátil y cargue el código dado. Una vez que se carga el código, la pantalla TFT debe mostrar el nombre del candidato. Cuando alguien toca el nombre de un candidato, la máquina le pedirá que escanee el escáner de huellas dactilares. Si la huella digital es válida, se contará el voto del usuario, pero en caso de que el patrón no coincida con los registros de la base de datos, se denegará el acceso para emitir un voto. El número total de votos de cada candidato se almacenará en EEPROM y ganará el candidato que tenga el mayor número de votos.

Espero que hayas disfrutado del tutorial y hayas aprendido algo útil. Si tiene alguna pregunta, háganoslo saber en la sección de comentarios a continuación, y también síganos en Instructable para más proyectos interesantes.

Recomendado: