- Material som används
- EM18 RFID-läsarmodul
- Ta reda på RFID-tagg Unik 12-siffrig kod med Arduino
- Kretsschema
- Modul för fingeravtryckssensor
- Programmering för RFID Keyless Tändning
Numera kommer det mesta av bilen med nyckelfritt in- och tryckknapps tändsystem, där du bara behöver bära nyckeln i fickan och bara behöver sätta fingret på den kapacitiva sensorn på dörrhandtaget för att öppna bildörren. Här i detta projekt lägger vi till några fler säkerhetsfunktioner till detta system med hjälp av RFID och fingeravtryckssensor. RFID-sensor kommer att validera användarens licens och fingeravtryckssensorn tillåter endast en auktoriserad person i fordonet.
För detta fingeravtrycksbaserade biltändningssystem använder vi Arduino med en R305 fingeravtryckssensor och en EM18 RFID-läsare.
Material som används
- Arduino Nano
- R305 fingeravtryckssensor
- EM18 RFID-läsare
- 16 * 2 Alfanumerisk LCD
- DC-motorer
- L293D Motordrivrutin IC
- Veroboard eller Breadboard (beroende på vilket som är tillgängligt)
- Anslutande ledningar
- 12V DC batteri
EM18 RFID-läsarmodul
RFID står för radiofrekvensidentifiering. Det hänvisar till en teknik där digital data kodas i RFID-taggar och de kan avkodas av en RFID-läsare med hjälp av radiovågor. RFID liknar streckkodning där data från en tagg avkodas av en enhet. RFID-teknik används i olika applikationer som säkerhetssystem, anställdas närvarosystem, RFID-dörrlås, RFID-baserad röstmaskin, avgiftsinsamlingssystem etc.
EM18 Reader är en modul som kan läsa ID-informationen som lagras i RFID-taggarna. RFID-taggarna lagrar ett 12-siffrigt unikt nummer som kan avkodas av en EM18-läsarmodul när taggen kommer inom räckvidd med läsaren. Denna modul arbetar med en frekvens på 125 kHz, som har en inbyggd antenn, och den drivs med en 5 volt likströmsförsörjning.
Det ger en seriell datautgång och har ett intervall på 8-12 cm. De seriella kommunikationsparametrarna är 8 databitar, 1 stoppbit och 9600 baudhastighet.
EM18-funktioner:
- Driftspänning: + 4,5V till + 5,5V DC
- Strömförbrukning: 50mA
- Arbetsfrekvens: 125 KHz
- Arbetstemperatur: 0-80 grader C
- Kommunikationsöverföringshastighet: 9600
- Läsavstånd: 8-12 cm
- Antenn: Inbyggd
EM18 Pinout:
Stiftbeskrivning:
VCC: 4,5 - 5V likspänningsingång
GND: Jordstift
Summer: Summer eller LED-stift
TX: Seriell datasändarstift på EM18 för RS232 (utgång)
SEL: Detta måste vara HÖG för att använda RS232 (LÅG om du använder WEIGAND)
Data 0: WEIGAND-data 0
Data 1: WEIGAND-data 1
För att lära dig mer om RFID och taggar, kolla in våra tidigare RFID-baserade projekt.
Ta reda på RFID-tagg Unik 12-siffrig kod med Arduino
Innan vi programmerar Arduino för Arduino biltändningssystem, måste vi först ta reda på den 12-siffriga RFID-taggen unika koden. Som vi diskuterade tidigare innehåller RFID-taggar en 12-siffrig unik kod och den kan avkodas med en RFID-läsare. När vi sveper RFID-taggen nära läsaren, kommer läsaren att ge de unika koderna via den utgående seriella porten. Anslut först Arduino till RFID-läsaren enligt kretsschemat och ladda sedan upp den angivna koden till Arduino.
intantal = 0; char card_no; ogiltig installation () {Serial.begin (9600); } void loop () {if (Serial.available ()) {count = 0; medan (Serial.available () && count <12) {card_no = Serial.read (); räkna ++; fördröjning (5); } Serial.print (kort_nr); }}
När du har laddat upp koden öppnar du den seriella bildskärmen och ställer in överföringshastigheten till 9600. Dra sedan kortet nära läsaren. Då börjar den 12-siffriga koden att visas på den seriella bildskärmen. Gör denna process för alla använda RFID-taggar och anteckna den för framtida referenser.
Kretsschema
Kretsschema för detta fingeravtrycksbaserade tändningssystem ges nedan:
I mitt fall har jag lödt hela kretsen på perf-kortet som visas nedan:
Modul för fingeravtryckssensor
Finger Print Sensor Module eller Finger Print Scanner är en modul som fångar fingeravtrycksbilden och sedan konverterar den till motsvarande mall och sparar dem i sitt minne på valt ID (plats) av Arduino. Här styrs hela processen av Arduino som att ta en bild av ett fingeravtryck, konvertera det till mallar och lagra plats etc.
Vi använde tidigare samma R305-sensor för att bygga en röstmaskin, närvarosystem, säkerhetssystem etc. Du kan kontrollera alla fingeravtrycksbaserade projekt här.
Registrera fingeravtryck till sensorn:
Innan vi fortsätter med programmet måste vi installera de bibliotek som krävs för fingeravtryckssensorn. Här har vi använt “ Adafruit_Fingerprint.h ” för att använda R305 fingeravtryckssensor. Så ladda ner först biblioteket med länken nedan:
- Adafruit fingeravtryckssensorbibliotek
Efter lyckad nedladdning, i Arduino IDE, gå till Arkiv > Verktyg> Inkludera bibliotek> Lägg till.zip-bibliotek och välj sedan zip-filplatsen för att installera biblioteket.
Efter genomförd biblioteksinstallation, följ stegen nedan för att registrera ett nytt fingeravtryck i sensorminnet.
1. I Arduino IDE, gå till Arkiv > Exempel > Adafruit Fingerprint Sensor Library > Anmäl.
2. Ladda upp koden till Arduino och öppna den seriella bildskärmen med en överföringshastighet på 9600.
Viktigt: Byt programvarans seriella stift i programmet till SoftwareSerial mySerial (12, 11).
3. Du ska ange ett ID för det fingeravtryck där du vill lagra ditt fingeravtryck. Eftersom detta är mitt första fingeravtryck skrev jag 1 i det övre vänstra hörnet och klickade sedan på knappen Skicka.
4. Då blinkar lampan på fingeravtryckssensorn som indikerar att du ska placera fingret på sensorn och följ sedan stegen som visas på seriell bildskärm tills den bekräftar att du har lyckats registrera dig.
Programmering för RFID Keyless Tändning
Komplett kod för detta biometriska tändningssystem ges i slutet av handledningen. Här förklarar vi några viktiga delar av koden.
Det första är att inkludera alla bibliotek som krävs. Här i mitt fall har jag inkluderat “ Adafruit_Fingerprint.h ” för att använda R305 fingeravtryckssensor. Konfigurera sedan den seriella porten där fingeravtryckssensorn ska anslutas. I mitt fall har jag förklarat 12 som RX-stift och 11 som en TX-stift.
# inkludera # inkludera
I nästa steg, deklarera alla variabler som kommer att användas i hela koden. Definiera sedan LCD-anslutningsstiften med Arduino följt av deklarationen av ett objekt av LiquidCrystal- klass.
rödingång; intantal = 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);
Därefter, inuti slingan (), skrivs kod för att få de unika 12-siffriga koderna för RFID-taggarna och de lagras i en matris. Här matchas elementen i matrisen med de lagrade unika koder i minnet för att få de autentiserade personuppgifterna.
antal = 0; medan (Serial.available () && count <12) { input = Serial.read (); räkna ++; fördröjning (5); }
Därefter jämförs den mottagna matrisen med de lagrade taggkoderna. Om koden matchas anses licensen vara giltig, vilket gör att användaren kan sätta giltigt fingeravtryck. Annars visas en ogiltig licens.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licens giltig"); lcd.setCursor (0, 1); lcd.print ("Välkommen"); fördröjning (1000); a = 1; fingeravtryck(); }
I nästa steg skrivs en funktion getFingerprintID som returnerar ett giltigt fingeravtrycks-ID för ett redan registrerat fingeravtryck.
int getFingerprintID () { uint8_t p = finger.getImage (); om (p! = FINGERPRINT_OK) returnerar -1; p = finger.image2Tz (); om (p! = FINGERPRINT_OK) returnerar -1; p = finger.fingerFastSearch (); om (p! = FINGERPRINT_OK) returnerar -1; returfinger. fingerID; }
Inne i funktionens fingeravtryck () , som anropas efter framgångsrik RFID-matchning, kallas getFingerprintID- funktionen för att få ett giltigt fingeravtrycks-ID. Sedan jämförs det med hjälp av if-else-slingan för att få information om autentiserad personinformation och om data matchas, tänds fordonet, annars kommer det att be om fel fingeravtryck.
int fingerprintID = getFingerprintID (); fördröjning (50); if (fingeravtrycksID == 1) { lcd.setCursor (0, 0); lcd.print ("Tilldelad åtkomst"); lcd.setCursor (0, 1); lcd.print ("Fordon startat"); digitalWrite (9, HÖG); digitalWrite (10, LOW); medan (1); }
Så det här är det här RFID-biltändningssystemet som ger din bil två säkerhetsskikt.
Komplett kod och demonstrationsvideo ges nedan.