- Materials utilitzats
- Mòdul lector RFID EM18
- Descobriu el codi únic de 12 dígits de l’etiqueta RFID mitjançant Arduino
- Esquema de connexions
- Mòdul de sensor d’empremta digital
- Programació per a ignició sense clau RFID
Actualment, la major part del cotxe inclou un sistema d’accés sense clau i d’encesa amb polsador, en el qual només heu de portar la clau a la butxaca i només heu de posar el dit al sensor capacitiu de la maneta de la porta per obrir la porta del cotxe. Aquí, en aquest projecte, afegirem algunes funcions de seguretat més a aquest sistema mitjançant l'ús de sensor d'empremta digital i RFID. El sensor RFID validarà la llicència de l’usuari i el sensor d’empremta digital només permetrà una persona autoritzada al vehicle.
Per a aquest sistema d’encesa de cotxes basat en empremtes digitals, fem servir Arduino amb un sensor d’empremta digital R305 i un lector RFID EM18.
Materials utilitzats
- Arduino Nano
- Sensor d’empremta digital R305
- Lector RFID EM18
- 16 * 2 LCD alfanumèric
- Motors de corrent continu
- IC controlador de motor L293D
- Veroboard o Breadboard (el que estigui disponible)
- Connexió de cables
- Bateria de 12V CC
Mòdul lector RFID EM18

RFID significa identificació de radiofreqüència. Es refereix a una tecnologia, on les dades digitals es codifiquen en etiquetes RFID i poden ser descodificades per un lector RFID mitjançant ones de ràdio. L’RFID és similar al codi de barres en què un dispositiu descodifica les dades d’una etiqueta. La tecnologia RFID s’utilitza en diverses aplicacions com el sistema de seguretat, el sistema d’assistència d’empleats, el pany de la porta RFID, la màquina de votació basada en RFID, el sistema de cobrament de peatges, etc.
EM18 Reader és un mòdul que pot llegir la informació d’ID emmagatzemada a les etiquetes RFID. Les etiquetes RFID emmagatzemen un número únic de 12 dígits que pot ser descodificat per un mòdul lector EM18, quan l’etiqueta s’inclou amb el lector. Aquest mòdul funciona a una freqüència de 125 kHz, que té una antena incorporada, i funciona amb una font d'alimentació de 5 volts CC.
Ofereix una sortida de dades en sèrie i té un abast de 8-12 cm. Els paràmetres de comunicació en sèrie són 8 bits de dades, 1 bit d'aturada i 9600 baud.

Característiques EM18:
- Voltatge de funcionament: + 4.5V a + 5.5V DC
- Consum actual: 50mA
- Freqüència de funcionament: 125 KHz
- Temperatura de funcionament: 0-80 graus C.
- Velocitat en bauds de comunicació: 9600
- Distància de lectura: 8-12 cm
- Antena: incorporada
Fixació EM18:

Descripció del pin:
VCC: entrada de tensió de 4,5 a 5 V CC
GND: passador de terra
Zumbador: zumbador o pin LED
TX: Pin de transmissor de dades sèrie d'EM18 per RS232 (sortida)
SEL: ha de ser ALTA per utilitzar RS232 (BAIX si s’utilitza WEIGAND)
Dades 0: dades WEIGAND 0
Dades 1: dades 1 de WEIGAND
Per obtenir més informació sobre RFID i etiquetes, consulteu els nostres projectes anteriors basats en RFID.
Descobriu el codi únic de 12 dígits de l’etiqueta RFID mitjançant Arduino
Abans de programar el sistema d’encesa del cotxe Arduino per Arduino, primer, hem de conèixer el codi únic de l’etiqueta RFID de 12 dígits. Com hem comentat abans, les etiquetes RFID contenen un codi únic de 12 dígits i es poden descodificar mitjançant un lector RFID. Quan llisquem l’etiqueta RFID a prop del lector, el lector donarà els codis únics a través del port sèrie de sortida. Primer, connecteu l'Arduino al lector RFID segons el diagrama del circuit i, a continuació, pengeu a Arduino el codi següent.
int count = 0; char targeta_no; configuració nul·la () {Serial.begin (9600); } bucle buit () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {card_no = Serial.read (); comptar ++; retard (5); } Serial.print (card_no); }}
Després de carregar el codi amb èxit, obriu el monitor sèrie i configureu la velocitat en bauds a 9600. A continuació, feu lliscar la targeta a prop del lector. A continuació, el codi de 12 dígits començarà a mostrar-se al monitor sèrie. Feu aquest procés per a totes les etiquetes RFID utilitzades i anoteu-lo per a futures referències.
Esquema de connexions
A continuació es mostra el diagrama de circuits d’aquest sistema d’encesa basat en empremta digital:

En el meu cas, he soldat el circuit complet a la placa perf com es mostra a continuació:

Mòdul de sensor d’empremta digital
El mòdul Finger Print Sensor o Finger Print Scanner és un mòdul que captura la imatge d’impressió digital i la converteix en la plantilla equivalent i les guarda a la seva memòria a la identificació (ubicació) seleccionada d’Arduino. Aquí Arduino mana tot el procés com prendre una imatge d’una empremta digital, convertir-la en plantilles i emmagatzemar la ubicació, etc.

Anteriorment hem utilitzat el mateix sensor R305 per construir una màquina de votar, un sistema d'assistència, un sistema de seguretat, etc. Podeu consultar tots els projectes basats en empremtes digitals aquí.
Inscripció d’empremtes digitals al sensor:
Abans de continuar amb el programa, hem d’instal·lar les biblioteques necessàries per al sensor d’empremtes digitals. Aquí hem utilitzat " Adafruit_Fingerprint.h " per utilitzar el sensor d'empremta digital R305. Per tant, primer de tot descarregueu la biblioteca mitjançant l'enllaç que es mostra a continuació:
- Biblioteca de sensors d'empremta digital Adafruit
Després de baixar-la correctament, a l’IDE Arduino, aneu a Fitxer > Eines> Inclou biblioteca> Afegeix biblioteca.zip i seleccioneu la ubicació del fitxer zip per instal·lar la biblioteca.
Després d’instal·lar la biblioteca amb èxit, seguiu els passos que s’indiquen a continuació per registrar una nova empremta digital a la memòria del sensor.
1. A l'IDE Arduino, aneu a Fitxer > Exemples > Biblioteca del sensor d' empremtes dactilars Adafruit > Inscripció.
2. Pengeu el codi a l'Arduino i obriu el monitor de sèrie a una velocitat de transmissió de 9600.
Important: canvieu el pin sèrie del programari al programa per SoftwareSerial mySerial (12, 11).
3. Heu d'introduir un identificador de l'empremta digital en què vulgueu emmagatzemar-la. Com que aquesta és la meva primera empremta digital, he escrit 1 a l'extrem superior esquerre i, a continuació, he fet clic al botó Envia.

4. A continuació, el llum del sensor d'empremtes digitals parpellejarà, cosa que indica que haureu de col·locar el dit al sensor i, després, seguiu els passos que es mostren al monitor sèrie fins que us reconegui la vostra inscripció.
Programació per a ignició sense clau RFID
El codi complet d’aquest sistema d’encesa biomètric es dóna al final del tutorial. Aquí expliquem algunes parts importants del codi.
El primer és incloure totes les biblioteques necessàries. En el meu cas, he inclòs " Adafruit_Fingerprint.h " per utilitzar el sensor d'empremta digital R305. A continuació, configureu el port sèrie al qual es connectarà el sensor d’empremtes digitals. En el meu cas, he declarat 12 com a pin RX i 11 com a pin TX.
#include #include
Al següent pas, declareu totes les variables que s’utilitzaran a tot el codi. A continuació, definiu els pins de connexió LCD amb Arduino seguit de la declaració d'un objecte de classe LiquidCrystal .
entrada de caràcters; 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ó, dins del bucle (), s’escriu el codi per obtenir els codis únics de 12 dígits de les etiquetes RFID i s’emmagatzemen en una matriu. Aquí es faran coincidir els elements de la matriu amb els codis únics emmagatzemats a la memòria, per obtenir els detalls de la persona autenticada.
compte = 0; while (Serial.available () && count <12) { input = Serial.read (); comptar ++; retard (5); }

A continuació, es compara la matriu rebuda amb els codis d'etiquetes emmagatzemats. Si el codi coincideix, es considera que la llicència és vàlida, cosa que permet a l'usuari posar una empremta digital vàlida. En cas contrari, mostrarà una llicència no vàlida.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Llicència vàlida"); lcd.setCursor (0, 1); lcd.print ("Benvingut"); retard (1000); a = 1; empremta digital (); }
Al següent pas, s’escriu una funció getFingerprintID que retornarà una identificació d’empremta digital vàlida per a una empremta digital ja registrada.
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = FINGERPRINT_OK) retorna -1; p = dit.imatge2Tz (); if (p! = FINGERPRINT_OK) retorna -1; p = finger.fingerFastSearch (); if (p! = FINGERPRINT_OK) retorna -1; tornar dit.fingerID; }
Dins de la funció fingerprint () , que s’anomena després d’una coincidència RFID reeixida, la funció getFingerprintID es diu per obtenir un identificador d’empremta digital vàlid. A continuació, es compara mitjançant el bucle if-else per obtenir informació sobre les dades de persones autenticades i, si les dades coincideixen, s’encén el vehicle, en cas contrari, demanarà l’empremta digital incorrecta.
int fingerprintID = getFingerprintID (); retard (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Accés concedit"); lcd.setCursor (0, 1); lcd.print ("Vehicle engegat"); digitalWrite (9, ALTA); digitalWrite (10, BAIX); mentre que (1); }
Així és com funciona aquest sistema d’encesa de cotxes RFID que afegeix dues capes de seguretat al vostre cotxe.

A continuació es mostra el codi complet i el vídeo de demostració.
