- Componentes requeridos:
- Módulo sensor de huellas dactilares en la máquina de votación:
- Explicación de trabajo:
- Explicación del circuito:
- Explicación del programa:
Todos estamos bastante familiarizados con las máquinas de votación electrónica, donde su voto se registra electrónicamente y no es necesario utilizar papeletas para votar en las elecciones. Hoy en día, la seguridad es una preocupación importante y también se debe garantizar que alguien no pueda votar dos veces, por lo que este problema se puede resolver mediante la introducción de la votación basada en huellas digitales, donde una persona puede ser autorizada en función de su huella digital. Esto también detendrá la votación falsa. Así que hoy estamos construyendo una máquina de votación biométrica basada en huellas dactilares utilizando Arduino.
Consulte también nuestros proyectos anteriores de máquinas de votación electrónica utilizando diferentes microcontroladores:
- Máquina de votación electrónica con Raspberry Pi
- Máquina de votación basada en RFID
- Proyecto de máquina de votación electrónica basada en microcontroladores AVR
- Máquina de votación electrónica con Arduino
Componentes requeridos:
- Arduino Uno
- Módulo sensor de huellas dactilares
- Apretar botones
- LEDs -2
- Resistencia 1K -3
- Resistencia de 2,2 K
- Poder
- Cables de conexión
- Zumbador
- LCD de 16x2
- Tabla de pan
Módulo sensor de huellas dactilares en la máquina de votación:
El módulo del sensor de huellas dactilares o el escáner de huellas dactilares es un módulo que captura la imagen de la huella dactilar y luego la convierte en la plantilla equivalente y la guarda en su memoria en la identificación (ubicación) seleccionada por Arduino. Aquí todo el proceso está comandado por Arduino, como tomar una imagen de la huella digital, convertirla en plantillas y almacenar la ubicación, etc.
En este circuito de máquina de votación de huellas dactilares, hemos utilizado el módulo de sensor de huellas dactilares para autenticar al verdadero votante tomando su entrada digital en el sistema. Aquí estamos usando 5 botones para hacer coincidir, inscribirse / retroceder, eliminar / aceptar, subir y bajar. Enroll y Del key tienen características dobles aquí. La tecla de registro se utiliza para registrar una nueva impresión digital en el sistema y también en la función de retroceso. Significa que cuando el usuario desea registrar un nuevo dedo, debe presionar la tecla de registro y luego la pantalla LCD solicita la identificación o la ubicación donde el usuario desea almacenar la salida de la huella digital. Ahora, si en este momento el usuario no desea continuar, puede presionar la tecla de inscripción nuevamente para regresar (esta vez la tecla de inscripción se comporta como la tecla Atrás). Significa que la clave de inscripción tiene función de inscripción y retroceso. Tecla DEL / OK también tiene la misma función doble, como cuando el usuario inscribe un nuevo dedo, luego debe seleccionar la ID del dedo o la ubicación usando otras dos teclas, a saber, ARRIBA Y ABAJO, ahora el usuario debe presionar la tecla SUPR / OK (esta vez esta tecla se comporta como OK) para proceda con el ID o la ubicación seleccionados. La clave de coincidencia se usa cuando el votante desea votar y luego necesita autenticarse primero para el verdadero votante manteniendo el dedo en el sensor de huellas dactilares, si aprobó esta autenticación, entonces él / ella puede votar.
Para obtener más información sobre cómo registrar huellas dactilares y otras cosas, consulte nuestro tutorial anterior sobre la interfaz del sensor de huellas dactilares con Arduino, y también consulte nuestro vídeo de demostración al final de este tutorial.
Explicación de trabajo:
Funcionamiento de este sistema de votación biométrico para elecciones es un poco complejo para principiantes. En primer lugar, el usuario debe registrar el dedo o los votantes (en este código, el límite máximo de votantes es 25) con la ayuda de botones / teclas. Para hacer esto, el usuario debe presionar la tecla ENROLL y luego la pantalla LCD solicita ingresar la ubicación / ID donde el dedo será una tienda. Así que ahora el usuario debe ingresar ID (Ubicación) usando las teclas ARRIBA / ABAJO. Después de seleccionar Ubicación / ID, el usuario debe presionar una tecla OK (tecla DEL). Ahora la pantalla LCD le pedirá que coloque el dedo sobre el módulo de huellas dactilares. Ahora el usuario debe poner su dedo sobre el módulo de huellas dactilares. Luego, la pantalla LCD le pedirá que retire el dedo del módulo de huellas dactilares y nuevamente le pedirá que coloque el dedo. Ahora el usuario debe volver a colocar el dedo sobre el módulo de huellas dactilares. Ahora, el módulo de huellas dactilares toma una imagen y la convierte en plantillas y la almacena por ID seleccionada en la memoria del módulo de huellas dactilares.Ahora el votante estará registrado y podrá votar. Por el mismo método, todos los votantes pueden registrarse en el sistema.
Ahora, si el usuario desea eliminar o eliminar alguna de las ID almacenadas, entonces debe presionar la tecla DEL, después de presionar la tecla DEL, la pantalla LCD le pedirá seleccionar la ubicación significa seleccionar la ID que se va a eliminar. Ahora el usuario debe seleccionar ID y presionar la tecla OK (la misma tecla DEL). Ahora, la pantalla LCD le permitirá saber que el dedo se ha eliminado correctamente.
Proceso de votación:
Ahora, cuando el usuario quiere votar, debe presionar la tecla de coincidencia y luego el zumbador sonará y el LED también se iluminará y la pantalla LCD le pedirá que coloque el dedo sobre el módulo de huellas dactilares. Ahora Arduino te dará tres intentos para poner el dedo. Después de colocar un dedo sobre el módulo de huellas dactilares, el módulo de huellas dactilares captura la imagen del dedo y encuentra que sus ID están presentes en el sistema. Si se detecta la identificación del dedo, la pantalla LCD mostrará el Votante autorizado. Significa que el usuario está autorizado a votar. Y luego el sistema pasa a la siguiente etapa de votación. Ahora el LED verde se iluminará, lo que significa que ahora el votante puede votar por sus candidatos presionando una tecla correspondiente (del tablero de pan ROJO en esta demostración). Ahora, si el mismo votante quiere volver a votar, el sistema lo mostrará como 'Ya votó' . Significa que el mismo votante no puede volver a votar y el timbre sonará durante 5 segundos. Si algún usuario no registrado desea votar, el módulo de huellas dactilares no detectará su ID en el sistema y la pantalla LCD mostrará " No se encontraron huellas dactilares" .
CAN1, CAN2, CAN3 representan aquí al Candidato 1, Candidato 2 y Candidato 3, que se han presentado a las elecciones.
Explicación del circuito:
El circuito de este proyecto de máquina de votación basado en huellas dactilares es muy simple y contiene Arduino para controlar todo el proceso del proyecto, botón para registrar, eliminar, seleccionar ID y propósito de votación, un zumbador para alerta, LED para indicación y LCD 16x2 para instruir Votante y mostrando el resultado también. El LED amarillo indica que el módulo de huellas digitales está listo para tomar una imagen del dedo y el LED verde indica que el sistema está listo para votar o ver resultados.
El pulsador está conectado directamente al pin A0 (ENROLL), A1 (DEL), A2 (UP), A3 (DOWN) y A4 (Match), D5 (Can1), D4 (Can2), D3 (Can3), D2 (Resultado) de Arduino con respecto a tierra. El LED amarillo está conectado al pin digital D7 de Arduino con respecto a tierra a través de una resistencia de 1k y el LED verde está conectado al D6 de Arduino con el mismo método. Rx y Tx del módulo de huellas dactilares conectados directamente en el pin serial Tx y Rx de Arduino. La fuente de 5v se utiliza para alimentar el módulo de huellas dactilares tomado de la placa Arduino. Un timbre también está conectado en A5. Una pantalla LCD de 16x2 está configurada en modo de 4 bits y sus RS, EN, D4, D5, D6 y D7 están conectados directamente en el pin digital D13, D12, D11, D10, D9 y D8 de Arduino.
Explicación del programa:
En un programa, hemos utilizado la biblioteca de sensores de huellas dactilares Adafruit para conectar el módulo de huellas dactilares con la placa Arduino. Puede consultar el Código completo a continuación. Aquí estamos explicando las principales funciones del Programa Arduino.
En la función de configuración, hemos dado instrucciones a los pines definidos y hemos iniciado el módulo LCD y de huellas dactilares.
Después, en la función void loop () , hemos esperado la tecla de verificación y presionamos la tecla Match para iniciar la huella digital para tomar la entrada y comparar la identificación de la imagen capturada con las identificaciones almacenadas. Si se produce una coincidencia, continúe con el siguiente paso.
bucle vacío () {lcd.setCursor (0,0); lcd.print ("Presione la tecla Coincidir"); lcd.setCursor (0,1); lcd.print ("para iniciar el sistema"); digitalWrite (indVote, BAJO); digitalWrite (indFinger, BAJO); if (digitalRead (coincidencia) == 0) {digitalWrite (zumbador, ALTO); retraso (200); digitalWrite (zumbador, BAJO); digitalWrite (indFinger, ALTO); para (int i = 0; i <3; i ++)…………………
La función checkKeys () dada void se usa para verificar que la tecla Enroll o DEL esté presionada o no y qué hacer si se presiona. Si se presiona la tecla ENROLL, se llama a la función Enroll () y se presiona la tecla DEL, luego se llama a la función Delete () .
void checkKeys () {if (digitalRead (inscribir) == 0) {lcd.clear (); lcd.print ("Espere"); retraso (1000); while (digitalRead (inscribir) == 0); Inscribirse(); } else if (digitalRead (del) == 0) {lcd.clear (); lcd.print ("Espere"); retraso (1000); delet (); }}
La función dada se usa para ingresar el ID que se eliminará y llamar a la función uint8_t deleteFingerprint (uint8_t id) que eliminará el dedo de los registros.
vacío delet () {recuento int = 0; lcd.clear (); lcd.print ("Eliminar dedo"); lcd.setCursor (0,1); lcd.print ("Ubicación:"); while (1) {lcd.setCursor (9,1); lcd.print (recuento); if (digitalRead (arriba) == 0) {count ++; si (cuenta> 25) cuenta = 0; retraso (500); }……………….
La función dada se utiliza para eliminar la huella dactilar del registro del ID seleccionado.
uint8_t deleteFingerprint (uint8_t id) {uint8_t p = -1; lcd.clear (); lcd.print ("Espere"); p = finger.deleteModel (id); if (p == FINGERPRINT_OK) {Serial.println ("¡Eliminado!"); lcd.clear (); lcd.print ("Figer eliminado"); lcd.setCursor (0,1); lcd.print ("Con éxito"); retraso (1000); } else {Serial.print ("Algo anda mal"); lcd.clear (); lcd.print ("Algo anda mal"); lcd.setCursor (0,1); lcd.print ("Vuelva a intentarlo más tarde"); retraso (2000); return p; }}
La función dada se utiliza para tomar imágenes de huellas digitales y convertirlas en la plantilla y guardarlas por ID seleccionada en la memoria del módulo de huellas digitales.
uint8_t getFingerprintEnroll () {int p = -1; lcd.clear (); lcd.print ("ID de dedo:"); lcd.print (id); lcd.setCursor (0,1); lcd.print ("Colocar dedo"); retraso (2000); while (p! = DIGITAL_OK) {p = finger.getImage ();…………………
La función dada se utiliza para votar y mostrar los resultados:
voto nulo () {lcd.clear (); lcd.print ("Colocar"); lcd.setCursor (0,1); lcd.print ("Su voto"); digitalWrite (indVote, ALTO); digitalWrite (indFinger, BAJO); digitalWrite (zumbador, ALTO); retraso (500); digitalWrite (zumbador, BAJO); retraso (1000); while (1) {if (digitalRead (sw1) == 0)…………………
Consulte el código completo y el video de demostración a continuación.