- Brugte materialer
- EM18 RFID-læsermodul
- Find ud af RFID-tag Unik 12-cifret kode ved hjælp af Arduino
- Kredsløbsdiagram
- Fingerprint sensormodul
- Programmering til RFID nøglefri antændelse
I dag leveres det meste af bilen med nøglefri adgang og tændingssystem med trykknap, hvor du kun behøver at bære nøglen i lommen og bare skal lægge fingeren på den kapacitive sensor på dørhåndtaget for at åbne bildøren. Her i dette projekt tilføjer vi et par flere sikkerhedsfunktioner til dette system ved hjælp af RFID og Fingerprint sensor. RFID-sensor validerer brugerens licens, og fingeraftrykssensoren tillader kun en autoriseret person i køretøjet.
Til dette fingeraftryksbaserede biltændingssystem bruger vi Arduino med en R305 fingeraftrykssensor og en EM18 RFID-læser.
Brugte materialer
- Arduino Nano
- R305 Fingeraftrykssensor
- EM18 RFID-læser
- 16 * 2 Alfanumerisk LCD
- DC-motorer
- L293D IC-motordriver
- Veroboard eller Breadboard (alt efter hvad der er tilgængeligt)
- Tilslutning af ledninger
- 12V DC batteri
EM18 RFID-læsermodul
RFID står for radiofrekvensidentifikation. Det refererer til en teknologi, hvor digitale data er kodet i RFID-tags, og de kan dekodes af en RFID-læser ved hjælp af radiobølger. RFID svarer til stregkodning, hvor data fra et tag afkodes af en enhed. RFID-teknologi bruges i forskellige applikationer som sikkerhedssystem, medarbejderdeltagelsessystem, RFID-dørlås, RFID-baseret stemmemaskine, betalingsafgiftssystem osv.
EM18 Reader er et modul, der kan læse ID-oplysninger, der er gemt i RFID-tags. RFID-tags gemmer et unikt nummer på 12 cifre, som kan afkodes af et EM18-læser-modul, når mærket kommer inden for rækkevidde med Reader. Dette modul fungerer med en frekvens på 125 kHz, som har en indbygget antenne, og det drives ved hjælp af en 5 volt jævnstrømforsyning.
Det giver en seriel dataudgang, og den har en rækkevidde på 8-12 cm. De serielle kommunikationsparametre er 8 databits, 1 stopbit og 9600 baudhastighed.
EM18 Funktioner:
- Driftsspænding: + 4,5V til + 5,5V DC
- Nuværende forbrug: 50mA
- Driftsfrekvens: 125 KHz
- Driftstemperatur: 0-80 grader C
- Kommunikations baudrate: 9600
- Læselængde: 8-12 cm
- Antenne: Indbygget
EM18 Pinout:
Pin beskrivelse:
VCC: 4,5 - 5V DC spændingsindgang
GND: Jordstift
Summer: Summer eller LED-pin
TX: Seriel datatransmitterstift på EM18 til RS232 (output)
SEL: Dette skal være HIGH for at bruge RS232 (LAV, hvis du bruger WEIGAND)
Data 0: WEIGAND data 0
Data 1: WEIGAND-data 1
For at lære mere om RFID og tags, se vores tidligere RFID-baserede projekter.
Find ud af RFID-tag Unik 12-cifret kode ved hjælp af Arduino
Før vi programmerer Arduino til Arduino biltændingssystem, skal vi først finde ud af den 12-cifrede RFID-tag unikke kode. Som vi diskuterede før, indeholder RFID-tags en unik 12-cifret kode, og den kan dekodes ved hjælp af en RFID-læser. Når vi stryger RFID-koden nær læseren, vil læseren give de unikke koder via den serielle outputport. Tilslut først Arduino til RFID-læseren som beskrevet i kredsløbsdiagrammet, og upload derefter nedenstående kode til Arduino.
int-antal = 0; char card_no; ugyldig opsætning () {Serial.begin (9600); } ugyldig sløjfe () {hvis (Serial.available ()) {count = 0; mens (Serial.available () && count <12) {card_no = Serial.read (); tælle ++; forsinkelse (5); } Serial.print (card_no); }}
Når du har uploadet koden, skal du åbne den serielle skærm og indstille baudhastigheden til 9600. Stryg derefter kortet nær læseren. Derefter begynder den 12-cifrede kode at blive vist på den serielle skærm. Udfør denne proces for alle de anvendte RFID-tags, og noter den til fremtidige referencer.
Kredsløbsdiagram
Kredsløbsdiagram for dette fingeraftryksbaserede tændingssystem er angivet nedenfor:
I mit tilfælde har jeg loddet hele kredsløbet på perf-kortet som vist nedenfor:
Fingerprint sensormodul
Fingerprint Sensor Module eller Finger Print Scanner er et modul, der fanger fingerprintbillede og derefter konverterer det til den tilsvarende skabelon og gemmer dem i hukommelsen på det valgte ID (placering) af Arduino. Her er hele processen kommanderet af Arduino som at tage et billede af et fingeraftryk, konvertere det til skabeloner og gemme placering osv.
Vi har tidligere brugt den samme R305-sensor til at bygge en stemmemaskine, fremmøde, sikkerhedssystem osv. Du kan kontrollere alle de fingeraftryksbaserede projekter her.
Tilmelding af fingeraftryk til sensor:
Før vi fortsætter med programmet, skal vi installere de nødvendige biblioteker til fingeraftrykssensoren. Her har vi brugt “ Adafruit_Fingerprint.h ” til brug af R305-fingeraftrykssensoren. Så download først biblioteket ved hjælp af nedenstående link:
- Adafruit-fingeraftrykssensorbibliotek
Efter vellykket download I Arduino IDE skal du gå til Filer > Værktøjer> Inkluder bibliotek> Tilføj.zip-bibliotek og derefter vælge zip-filplaceringen for at installere biblioteket.
Efter vellykket installation af biblioteket skal du følge nedenstående trin for at registrere et nyt fingeraftryk i sensorhukommelsen.
1. I Arduino IDE skal du gå til Filer > Eksempler > Adafruit Fingerprint Sensor Library > Tilmeld.
2. Upload koden til Arduino, og åbn den serielle skærm med en baudhastighed på 9600.
Vigtigt: Skift softwarens serielle pin i programmet til SoftwareSerial mySerial (12, 11).
3. Du skal indtaste et id for det fingeraftryk, hvor du vil gemme dit fingeraftryk. Da dette er mit første fingeraftryk, skrev jeg 1 i øverste venstre hjørne, og klik derefter på Send- knappen.
4. Derefter blinker lyset på fingeraftrykssensoren, hvilket indikerer, at du skal placere din finger på sensoren og derefter følge trinene, der vises på seriel skærm, indtil den bekræfter dig for en vellykket tilmelding.
Programmering til RFID nøglefri antændelse
Komplet kode til dette biometriske tændingssystem er angivet i slutningen af vejledningen. Her forklarer vi et par vigtige dele af koden.
Den første ting er at inkludere alle de nødvendige biblioteker. Her i mit tilfælde har jeg inkluderet “ Adafruit_Fingerprint.h ” til brug af R305 fingeraftrykssensor. Konfigurer derefter den serielle port, hvor fingeraftrykssensoren skal tilsluttes. I mit tilfælde har jeg erklæret 12 som RX-pin og 11 som en TX-pin.
# inkluderer # inkluderer
I det næste trin erklæres alle variabler, som vil blive brugt i hele koden. Definer derefter LCD-forbindelsesstifterne med Arduino efterfulgt af erklæringen om et objekt i LiquidCrystal- klassen.
char input; int-antal = 0; int a = 0; konst int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Dernæst, inden i sløjfen (), skrives kode for at få de unikke 12-cifrede koder for RFID-tags, og de lagres i en matrix. Her matches elementerne i arrayet med de gemte unikke koder i hukommelsen for at få de godkendte personoplysninger.
tælle = 0; mens (Serial.available () && count <12) { input = Serial.read (); tælle ++; forsinkelse (5); }
Derefter sammenlignes det modtagne array med de lagrede tagkoder. Hvis koden matches, betragtes licensen som gyldig, hvilket giver brugeren mulighed for at lægge gyldigt fingeraftryk. Ellers viser den en ugyldig licens.
hvis ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licens gyldig"); lcd.setCursor (0, 1); lcd.print ("Velkommen"); forsinkelse (1000); a = 1; fingeraftryk(); }
I det næste trin skrives en funktion getFingerprintID, der returnerer et gyldigt fingeraftryks-ID for et allerede tilmeldt fingeraftryk.
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; returfinger. fingerID; }
Inde i funktionens fingeraftryk () , der kaldes efter vellykket RFID-match, kaldes getFingerprintID- funktionen for at få et gyldigt fingeraftryks-ID. Derefter sammenlignes det ved hjælp af if-else-løkken for at få oplysningerne om godkendte persondata, og hvis data matches, så tændes køretøjet, ellers vil det bede om det forkerte fingeraftryk.
int fingerprintID = getFingerprintID (); forsinkelse (50); hvis (fingeraftryk- ID == 1) { lcd.setCursor (0, 0); lcd.print ("Adgang givet"); lcd.setCursor (0, 1); lcd.print ("Køretøj startet"); digitalWrite (9, HIGH); digitalWrite (10, LAV); mens (1); }
Så dette fungerer, hvordan dette RFID-biltændingssystem fungerer, som tilføjer to lag sikkerhed til din bil.
Komplet kode og demonstrationsvideo er angivet nedenfor.