- Materiales usados
- Módulo lector RFID EM18
- Descubra el código único de 12 dígitos de la etiqueta RFID usando Arduino
- Diagrama de circuito
- Módulo sensor de huellas dactilares
- Programación para encendido sin llave RFID
Hoy en día, la mayor parte del automóvil viene con entrada sin llave y sistema de encendido por botón, en el que solo necesita llevar la llave en el bolsillo y solo necesita poner el dedo en el sensor capacitivo en la manija de la puerta para abrir la puerta del automóvil. Aquí en este proyecto, estamos agregando algunas características de seguridad más a este sistema mediante el uso de RFID y sensor de huellas dactilares. El sensor RFID validará la licencia del usuario y el sensor de huellas dactilares solo permitirá una persona autorizada en el vehículo.
Para este sistema de encendido de automóvil basado en huellas dactilares, estamos usando Arduino con un sensor de huellas dactilares R305 y un lector RFID EM18.
Materiales usados
- Arduino Nano
- Sensor de huellas dactilares R305
- Lector RFID EM18
- LCD alfanumérico de 16 * 2
- Motores DC
- L293D controlador de motor IC
- Veroboard o Breadboard (el que esté disponible)
- Cables de conexión
- Batería de 12V DC
Módulo lector RFID EM18
RFID significa identificación por radiofrecuencia. Se refiere a una tecnología, donde los datos digitales se codifican en etiquetas RFID y pueden ser decodificados por un lector RFID usando ondas de radio. La RFID es similar al código de barras en el que los datos de una etiqueta son decodificados por un dispositivo. La tecnología RFID se utiliza en varias aplicaciones como sistema de seguridad, sistema de asistencia de empleados, cerradura de puerta RFID, máquina de votación basada en RFID, sistema de cobro de peaje, etc.
El lector EM18 es un módulo que puede leer la información de identificación almacenada en las etiquetas RFID. Las etiquetas RFID almacenan un número único de 12 dígitos que puede ser decodificado por un módulo lector EM18, cuando la etiqueta entra dentro del alcance del lector. Este módulo funciona a una frecuencia de 125 kHz, que tiene una antena incorporada y funciona con una fuente de alimentación de CC de 5 voltios.
Da una salida de datos en serie y tiene un alcance de 8-12 cm. Los parámetros de comunicación en serie son 8 bits de datos, 1 bit de parada y 9600 baudios.
Características EM18:
- Voltaje de funcionamiento: + 4,5 V a + 5,5 V CC
- Consumo de corriente: 50 mA
- Frecuencia de funcionamiento: 125 KHZ
- Temperatura de funcionamiento: 0-80 grados C
- Velocidad de comunicación en baudios: 9600
- Distancia de lectura: 8-12 cm
- Antena: incorporada
Pinout EM18:
Descripción del pin:
VCC: entrada de voltaje de 4,5 a 5 V CC
GND: pin de tierra
Zumbador: zumbador o pin LED
TX: Pin del transmisor de datos en serie de EM18 para RS232 (salida)
SEL: Debe ser ALTO para usar RS232 (BAJO si usa WEIGAND)
Datos 0: datos WEIGAND 0
Datos 1: WEIGAND datos 1
Para obtener más información sobre RFID y etiquetas, consulte nuestros proyectos anteriores basados en RFID.
Descubra el código único de 12 dígitos de la etiqueta RFID usando Arduino
Antes de programar el sistema de encendido de automóvil Arduino para Arduino, primero, debemos averiguar el código único de la etiqueta RFID de 12 dígitos. Como comentamos antes, las etiquetas RFID contienen un código único de 12 dígitos y se puede decodificar utilizando un lector RFID. Cuando deslizamos la etiqueta RFID cerca del lector, el lector dará los códigos únicos a través del puerto serie de salida. Primero, conecte el Arduino al lector RFID según el diagrama de circuito y luego cargue el código que se indica a continuación en Arduino.
int count = 0; char card_no; configuración vacía () {Serial.begin (9600); } bucle vacío () {if (Serial.available ()) {cuenta = 0; while (Serial.available () && count <12) {card_no = Serial.read (); contar ++; retraso (5); } Serial.print (card_no); }}
Después de cargar correctamente el código, abra el monitor en serie y configure la velocidad en baudios en 9600. Luego, pase la tarjeta cerca del lector. Luego, el código de 12 dígitos comenzará a mostrarse en el monitor en serie. Realice este proceso para todas las etiquetas RFID usadas y anótelo para futuras referencias.
Diagrama de circuito
El diagrama de circuito para este sistema de encendido basado en huellas dactilares se muestra a continuación:
En mi caso, he soldado el circuito completo en la placa perf como se muestra a continuación:
Módulo sensor de huellas dactilares
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 ID (ubicación) seleccionada por Arduino. Aquí todo el proceso está comandado por Arduino, como tomar una imagen de una huella digital, convertirla en plantillas y almacenar la ubicación, etc.
Anteriormente usamos el mismo sensor R305 para construir una máquina de votación, un sistema de asistencia, un sistema de seguridad, etc. Puede consultar todos los proyectos basados en huellas digitales aquí.
Registro de huellas dactilares en el sensor:
Antes de continuar con el programa, debemos instalar las bibliotecas necesarias para el sensor de huellas dactilares. Aquí hemos utilizado “ Adafruit_Fingerprint.h ” para usar el sensor de huellas dactilares R305. Entonces, en primer lugar, descargue la biblioteca usando el enlace que se proporciona a continuación:
- Biblioteca de sensores de huellas dactilares Adafruit
Después de una descarga exitosa, en el IDE de Arduino, vaya a Archivo > Herramientas> Incluir biblioteca> Agregar biblioteca.zip y luego seleccione la ubicación del archivo zip para instalar la biblioteca.
Después de una instalación exitosa de la biblioteca, siga los pasos que se indican a continuación para registrar una nueva huella digital en la memoria del sensor.
1. En el IDE de Arduino, vaya a Archivo > Ejemplos > Biblioteca de sensores de huellas dactilares de Adafruit > Inscribirse.
2. Cargue el código en Arduino y abra el monitor serial a una velocidad de 9600 baudios.
Importante: Cambie el pin de serie del software en el programa a SoftwareSerial mySerial (12, 11).
3. Debe ingresar una identificación para la huella digital en la que desea almacenar su huella digital. Como esta es mi primera huella digital, escribí 1 en la esquina superior izquierda y luego hice clic en el botón Enviar.
4. Luego, la luz del sensor de huellas dactilares parpadeará, lo que indica que debe colocar el dedo en el sensor y luego seguir los pasos que se muestran en el monitor en serie hasta que reconozca su inscripción exitosa.
Programación para encendido sin llave RFID
El código completo para este sistema de encendido biométrico se proporciona al final del tutorial. Aquí explicamos algunas partes importantes del código.
Lo primero es incluir todas las bibliotecas necesarias. Aquí, en mi caso, he incluido “ Adafruit_Fingerprint.h ” para usar el sensor de huellas dactilares R305. Luego configure el puerto serie en el que se conectará el sensor de huellas dactilares. En mi caso, he declarado 12 como pin RX y 11 como pin TX.
#incluir #incluir
En el siguiente paso, declare todas las variables, que se utilizarán en todo el código. Luego defina los pines de conexión LCD con Arduino seguido de la declaración de un objeto de la clase LiquidCrystal .
entrada de caracteres; int count = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
A continuación, dentro del bucle (), se escribe el código para obtener los códigos únicos de 12 dígitos de las etiquetas RFID y se almacenan en una matriz. Aquí los elementos de la matriz se compararán con los códigos únicos almacenados en la memoria, para obtener los detalles de la persona autenticada.
cuenta = 0; while (Serial.available () && count <12) { input = Serial.read (); contar ++; retraso (5); }
Luego, la matriz recibida se compara con los códigos de etiqueta almacenados. Si el código coincide, la licencia se considera válida, lo que permite al usuario poner una huella digital válida. De lo contrario, mostrará una licencia no válida.
if ((strncmp (entrada, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licencia válida"); lcd.setCursor (0, 1); lcd.print ("Bienvenido"); retraso (1000); a = 1; huella dactilar(); }
En el siguiente paso, se escribe una función getFingerprintID que devolverá una identificación de huella digital válida para una huella digital ya registrada.
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = HUELLA DIGITAL_OK) return -1; p = dedo.imagen2Tz (); if (p! = HUELLA DIGITAL_OK) return -1; p = finger.fingerFastSearch (); if (p! = HUELLA DIGITAL_OK) return -1; return finger.fingerID; }
Dentro de la función fingerprint () , que se llama después de una coincidencia RFID exitosa, se llama a la función getFingerprintID para obtener una identificación de huella digital válida. Luego, se compara utilizando el bucle if-else para obtener la información sobre los datos de la persona autenticada y, si los datos coinciden, el vehículo se enciende; de lo contrario, se solicitará la huella digital incorrecta.
int fingerprintID = getFingerprintID (); retraso (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Acceso concedido"); lcd.setCursor (0, 1); lcd.print ("Vehículo arrancado"); escritura digital (9, ALTA); digitalWrite (10, BAJO); mientras (1); }
Así es como funciona este sistema de encendido RFID para automóvil, que agrega dos capas de seguridad a su automóvil.
El código completo y el video de demostración se muestran a continuación.