- Materialer brukt
- EM18 RFID-lesermodul
- Finn ut RFID-tag Unik 12-sifret kode ved hjelp av Arduino
- Kretsdiagram
- Fingeravtrykkelsessensormodul
- Programmering for RFID nøkkelfri tenning
I dag kommer det meste av bilen med nøkkelfri inngangs- og trykknapp tenningssystem, der du bare trenger å bære nøkkelen i lommen og bare trenger å sette fingeren på den kapasitive sensoren på dørhåndtaket for å åpne bildøren. Her i dette prosjektet legger vi til noen flere sikkerhetsfunksjoner til dette systemet ved hjelp av RFID og fingeravtrykkssensor. RFID-sensor vil validere lisensen til brukeren, og fingeravtrykkssensoren tillater bare en autorisert person i kjøretøyet.
For dette fingeravtrykksbaserte tenningssystemet bruker vi Arduino med en R305 fingeravtrykkssensor og en EM18 RFID-leser.
Materialer brukt
- Arduino Nano
- R305 Fingeravtrykkssensor
- EM18 RFID-leser
- 16 * 2 Alfanumerisk LCD
- DC-motorer
- L293D Motordriver IC
- Veroboard eller Breadboard (det som er tilgjengelig)
- Koble ledninger
- 12V DC batteri
EM18 RFID-lesermodul
RFID står for radiofrekvensidentifikasjon. Det refererer til en teknologi der digitale data er kodet i RFID-koder, og de kan dekodes av en RFID-leser ved hjelp av radiobølger. RFID ligner på strekkoding der data fra en kode blir dekodet av en enhet. RFID-teknologi brukes i ulike applikasjoner som sikkerhetssystem, ansattes system, RFID-dørlås, RFID-basert stemmemaskin, tollinnsamlingssystem, etc.
EM18 Reader er en modul som kan lese ID-informasjonen som er lagret i RFID-kodene. RFID-kodene lagrer et 12-sifret unikt nummer som kan dekodes av en EM18-lesermodul når merkelappen kommer innen rekkevidde med leseren. Denne modulen fungerer med en frekvens på 125 kHz, som har en innebygd antenne, og den drives ved hjelp av en 5 volt likestrømforsyning.
Den gir en seriell datautgang, og den har en rekkevidde på 8-12 cm. De serielle kommunikasjonsparametrene er 8 databiter, 1 stoppbit og 9600 baudrate.
EM18 Funksjoner:
- Driftsspenning: + 4,5V til + 5,5V DC
- Strømforbruk: 50mA
- Driftsfrekvens: 125 KHz
- Driftstemperatur: 0-80 grader C
- Kommunikasjons overføringshastighet: 9600
- Leseavstand: 8-12 cm
- Antenne: Innebygd
EM18 Pinout:
Pin beskrivelse:
VCC: 4,5 - 5V likestrømsinngang
GND: Jordpinne
Summer: Summer eller LED-pinne
TX: Seriell datatransmitterpinne på EM18 for RS232 (utgang)
SEL: Dette må være HØYT for å bruke RS232 (LAV hvis du bruker WEIGAND)
Data 0: WEIGAND data 0
Data 1: WEIGAND data 1
For å lære mer om RFID og koder, sjekk våre tidligere RFID-baserte prosjekter.
Finn ut RFID-tag Unik 12-sifret kode ved hjelp av Arduino
Før vi programmerer Arduino for Arduino biltenningssystem, må vi først finne ut den 12-sifrede RFID-tagens unike kode. Som vi diskuterte tidligere, inneholder RFID-koder en 12-sifret unik kode, og den kan dekodes ved hjelp av en RFID-leser. Når vi sveiper RFID-koden nær leseren, vil leseren gi de unike kodene via den utgående serielle porten. Først kobler du Arduino til RFID-leseren i henhold til kretsskjemaet, og laster deretter opp koden nedenfor til Arduino.
int-antall = 0; char card_no; ugyldig oppsett () {Serial.begin (9600); } ugyldig sløyfe () {if (Serial.available ()) {count = 0; mens (Serial.available () && count <12) {card_no = Serial.read (); telle ++; forsinkelse (5); } Serial.print (card_no); }}
Etter at du har lastet opp koden, åpner du den serielle skjermen og stiller overføringshastigheten til 9600. Sveip deretter kortet nær leseren. Deretter begynner den 12-sifrede koden å vises på den serielle skjermen. Gjør denne prosessen for alle brukte RFID-koder og noter den for fremtidige referanser.
Kretsdiagram
Kretsskjema for dette fingeravtrykksbaserte tenningssystemet er gitt nedenfor:
I mitt tilfelle har jeg loddet hele kretsen på perf-kortet som vist nedenfor:
Fingeravtrykkelsessensormodul
Fingerprint Sensor Module eller Finger Print Scanner er en modul som fanger fingeravtrykk og deretter konverterer den til tilsvarende mal og lagrer dem i minnet på valgt ID (plassering) av Arduino. Her er hele prosessen kommandert av Arduino som å ta et bilde av et fingeravtrykk, konvertere det til maler og lagre plassering, etc.
Vi brukte tidligere den samme R305-sensoren til å bygge en stemmemaskin, fremmøte, sikkerhetssystem osv. Du kan sjekke alle fingeravtrykksbaserte prosjekter her.
Registrere fingeravtrykk til sensoren:
Før vi fortsetter med programmet, må vi installere nødvendige biblioteker for fingeravtrykkssensoren. Her har vi brukt “ Adafruit_Fingerprint.h ” for å bruke R305 fingeravtrykkssensor. Så først og fremst laster du ned biblioteket ved hjelp av lenken nedenfor:
- Adafruit fingeravtrykkssensorbibliotek
Etter vellykket nedlasting, i Arduino IDE, gå til Fil > Verktøy> Inkluder bibliotek> Legg til.zip-bibliotek og velg deretter zip-filplasseringen for å installere biblioteket.
Etter vellykket installasjon av biblioteket, følg trinnene nedenfor for å registrere et nytt fingeravtrykk i sensorminnet.
1. I Arduino IDE, gå til Fil > Eksempler > Adafruit fingeravtrykkssensor Bibliotek > Meld.
2. Last opp koden til Arduino, og åpne den serielle skjermen med en overføringshastighet på 9600.
Viktig: Endre programvarens serielle pin i programmet til SoftwareSerial mySerial (12, 11).
3. Du bør angi en ID for fingeravtrykket der du vil lagre fingeravtrykket ditt. Siden dette er mitt første fingeravtrykk, skrev jeg 1 øverst til venstre, og klikk deretter på Send- knappen.
4. Deretter vil lyset på fingeravtrykkssensoren blinke som indikerer at du skal plassere fingeren på sensoren, og følg deretter trinnene som vises på seriell skjerm til den bekrefter at du har registrert deg.
Programmering for RFID nøkkelfri tenning
Komplett kode for dette biometriske tenningssystemet er gitt på slutten av opplæringen. Her forklarer vi noen viktige deler av koden.
Det første er å inkludere alle nødvendige biblioteker. Her i mitt tilfelle har jeg tatt med " Adafruit_Fingerprint.h " for bruk av R305 fingeravtrykkssensor. Konfigurer deretter den serielle porten der fingeravtrykkssensoren skal kobles til. I mitt tilfelle har jeg erklært 12 som RX-pin og 11 som en TX-pin.
# inkluderer # inkluderer
I neste trinn, erklær alle variablene, som vil bli brukt gjennom hele koden. Definer deretter LCD-tilkoblingspinnene med Arduino etterfulgt av erklæringen om et objekt i LiquidCrystal- klassen.
røyeinngang; int-antall = 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);
Deretter skrives kode inn i sløyfen () for å få de unike 12-sifrede kodene til RFID-kodene, og de lagres i en matrise. Her vil elementene i matrisen bli matchet med de lagrede unike kodene i minnet, for å få de autentiserte personopplysningene.
telle = 0; mens (Serial.available () && count <12) { input = Serial.read (); telle ++; forsinkelse (5); }
Deretter sammenlignes den mottatte matrisen med de lagrede kodekodene. Hvis koden samsvares, blir lisensen betraktet som gyldig, noe som lar brukeren sette gyldig fingeravtrykk. Ellers viser den en ugyldig lisens.
hvis ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Lisens gyldig"); lcd.setCursor (0, 1); lcd.print ("Velkommen"); forsinkelse (1000); a = 1; fingeravtrykk(); }
I neste trinn skrives en funksjon getFingerprintID som returnerer en gyldig fingeravtrykks-ID for et allerede registrert fingeravtrykk.
int getFingerprintID () { uint8_t p = finger.getImage (); hvis (p! = FINGERPRINT_OK) returnerer -1; p = finger.image2Tz (); hvis (p! = FINGERPRINT_OK) returnerer -1; p = finger.fingerFastSearch (); hvis (p! = FINGERPRINT_OK) returnerer -1; retur finger. fingerID; }
Inside function fingerprint () , som kalles etter vellykket RFID-match, kalles getFingerprintID- funksjonen for å få en gyldig fingeravtrykks-ID. Deretter sammenlignes det med if-else-sløyfen for å få informasjon om autentiserte persondata, og hvis data samsvares, blir kjøretøyet antent, ellers vil det be om feil fingeravtrykk.
int fingerprintID = getFingerprintID (); forsinkelse (50); hvis (fingeravtrykk- ID == 1) { lcd.setCursor (0, 0); lcd.print ("Tilgang gitt"); lcd.setCursor (0, 1); lcd.print ("Kjøretøy startet"); digitalWrite (9, HØY); digitalWrite (10, LAV); mens (1); }
Så dette fungerer hvordan dette RFID-tenningssystemet fungerer som gir deg to lag sikkerhet.
Fullstendig kode og demonstrasjonsvideo er gitt nedenfor.