- Korišteni materijali
- EM18 RFID modul čitača
- Saznajte jedinstveni 12-znamenkasti kôd RFID oznake pomoću Arduina
- Kružni dijagram
- Modul osjetnika otiska prsta
- Programiranje za RFID paljenje bez ključa
Danas većina automobila dolazi sa sustavom za ulazak bez ključa i sustavom paljenja s tipkom, u kojem ključ trebate nositi samo u džepu i samo trebate staviti prst na kapacitivni senzor na kvaki vrata da biste otvorili vrata automobila. Ovdje u ovom projektu dodajemo još nekoliko sigurnosnih značajki ovom sustavu pomoću RFID-a i senzora otiska prsta. RFID senzor potvrdit će licencu korisnika, a senzor otiska prsta dopustit će samo ovlaštenu osobu u vozilu.
Za ovaj sustav paljenja na temelju otiska prsta koristimo Arduino sa R305 senzorom otiska prsta i EM18 RFID čitačem.
Korišteni materijali
- Arduino Nano
- R305 Senzor otiska prsta
- Čitač EM18 RFID
- 16 * 2 alfanumerički LCD
- Istosmjerni motori
- L293D IC vozača motora
- Veroboard ili Breadboard (što god je dostupno)
- Spajanje žica
- DC baterija od 12V
EM18 RFID modul čitača

RFID je kratica za identifikaciju radio frekvencija. Odnosi se na tehnologiju u kojoj su digitalni podaci kodirani u RFID oznakama, a RFID čitač ih može dekodirati pomoću radio valova. RFID je sličan kodnom kodiranju u kojem uređaj dekodira podatke s oznake. RFID tehnologija koristi se u raznim aplikacijama kao što su Sigurnosni sustav, Sustav za prisustvo zaposlenika, RFID zaključavanje vrata, RFID-ov glasački stroj, Sustav naplate cestarine itd.
EM18 Reader je modul koji može čitati ID podatke pohranjene u RFID oznakama. RFID oznake pohranjuju 12-znamenkasti jedinstveni broj koji se može dekodirati pomoću modula čitača EM18, kada oznaka dođe u domet čitača. Ovaj modul radi na frekvenciji od 125 kHz, koja ima ugrađenu antenu, a njime se upravlja istosmjernim napajanjem od 5 volti.
Daje serijski izlaz podataka, a doseg je od 8-12 cm. Parametri serijske komunikacije su 8 podatkovnih bitova, 1 zaustavni bit i 9600 brzina prijenosa.

Značajke EM18:
- Radni napon: + 4,5V do + 5,5V DC
- Trenutna potrošnja: 50mA
- Radna frekvencija: 125KHZ
- Radna temperatura: 0-80 stupnjeva C
- Brzina prijenosa komunikacije: 9600
- Udaljenost čitanja: 8-12 cm
- Antena: Ugrađena
EM18 pinout:

Opis pribadače:
VCC: 4,5–5 V istosmjerni napon
GND: prizemni klin
Zujalica: Zujalica ili LED pin
TX: pin serijskog odašiljača podataka EM18 za RS232 (izlaz)
SEL: Ovo mora biti VISOKO za upotrebu RS232 (NISKO ako se koristi WEIGAND)
Podaci 0: podaci WEIGAND 0
Podaci 1: WEIGAND podaci 1
Da biste saznali više o RFID-u i oznakama, provjerite naše prethodne projekte utemeljene na RFID-u.
Saznajte jedinstveni 12-znamenkasti kôd RFID oznake pomoću Arduina
Prije programiranja Arduina za sustav paljenja automobila Arduino, prvo moramo saznati 12-znamenkasti jedinstveni kod RFID oznake. Kao što smo ranije razgovarali, RFID oznake sadrže jedinstveni 12-znamenkasti kôd i on se može dekodirati pomoću RFID čitača. Kad prevučemo RFID oznaku u blizini čitača, čitač će dati jedinstvene kodove putem izlaznog serijskog priključka. Prvo spojite Arduino na RFID čitač prema shemi sklopa, a zatim prenesite donji zadani kôd na Arduino.
broj brojeva = 0; char card_no; void setup () {Serial.begin (9600); } void loop () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {card_no = Serial.read (); brojati ++; kašnjenje (5); } Serial.print (card_no); }}
Nakon uspješnog prijenosa koda otvorite serijski monitor i postavite brzinu prijenosa na 9600. Zatim prijeđite karticom u blizini čitača. Tada će se 12-znamenkasti kôd početi prikazivati na serijskom monitoru. Napravite ovaj postupak za sve korištene RFID oznake i zabilježite ga za buduće reference.
Kružni dijagram
Dijagram kruga za ovaj sustav paljenja zasnovan na otiscima prstiju dat je u nastavku:

U mom slučaju, zalemio sam kompletan krug na perf ploči kao što je prikazano dolje:

Modul osjetnika otiska prsta
Modul senzora otiska prsta ili skener otiska prsta modul je koji snima ispis prsta, a zatim ga pretvara u ekvivalentni predložak i sprema u svoju memoriju na odabrani ID (mjesto) od strane Arduino. Ovdje cijelim postupkom zapovijeda Arduino poput snimanja otiska prsta, pretvaranja u predloške, pohrane lokacije itd.

Prethodno smo koristili isti R305 senzor za izradu glasačkog stroja, sustava za prisustvo, sigurnosnog sustava itd. Ovdje možete provjeriti sve projekte temeljene na otiscima prstiju.
Upisivanje otisaka prstiju u senzor:
Prije nastavka s programom, moramo instalirati potrebne knjižnice za senzor otiska prsta. Ovdje smo koristili " Adafruit_Fingerprint.h " za upotrebu senzora otiska prsta R305. Dakle, prije svega preuzmite knjižnicu pomoću dolje navedene veze:
- Biblioteka senzora otiska prsta Adafruit
Nakon uspješnog preuzimanja, u Arduino IDE-u idite na Datoteka > Alati> Uključi biblioteku> Dodaj.zip biblioteku, a zatim odaberite mjesto zip datoteke za instaliranje knjižnice.
Nakon uspješne instalacije knjižnice, slijedite korake dane u nastavku za upis novog otiska prsta u memoriju senzora.
1. U Arduino IDE-u idite na Datoteka > Primjeri > Biblioteka senzora otiska prsta Adafruit > Upis.
2. Učitajte kôd u Arduino i otvorite serijski monitor brzinom prijenosa 9600.
Važno: Promijenite serijsku iglu softvera u programu u SoftwareSerial mySerial (12, 11).
3. Trebali biste unijeti ID otiska prsta u koji želite pohraniti otisak prsta. Kako je ovo moj prvi otisak prsta, upisao sam 1 u gornji lijevi kut, a zatim kliknite gumb Pošalji.

4. Tada će lampica na senzoru otiska prsta treptati što znači da biste trebali staviti prst na senzor, a nakon toga slijedite korake prikazane na serijskom monitoru dok vas ne prepozna za uspješnu registraciju.
Programiranje za RFID paljenje bez ključa
Kompletni kôd ovog biometrijskog sustava paljenja dan je na kraju vodiča. Ovdje objašnjavamo nekoliko važnih dijelova koda.
Prvo je uključiti sve potrebne knjižnice. Ovdje sam u svoj slučaj uključio " Adafruit_Fingerprint.h " za upotrebu senzora otiska prsta R305. Zatim konfigurirajte serijski priključak u koji će biti povezan senzor otiska prsta. U mom slučaju, proglasio sam 12 kao RX pin, a 11 kao TX pin.
#include #include
U sljedećem koraku deklarirajte sve varijable koje će se koristiti u cijelom kodu. Zatim definirajte igle za spajanje LCD-a s Arduinom nakon čega slijedi deklaracija objekta klase LiquidCrystal .
unos znaka; broj brojeva = 0; int a = 0; const int rs = 6, en = 7, d4 = 2, d5 = 3, d6 = 4, d7 = 5; LCD LiquidCrystal (rs, en, d4, d5, d6, d7);
Dalje, unutar petlje () zapisuje se kôd da bi se dobili jedinstveni 12-znamenkasti kodovi RFID oznaka i oni se pohranjuju u niz. Ovdje će se elementi niza podudarati sa jedinstvenim kodovima koji su pohranjeni u memoriji kako bi se dobili podaci o ovjerenoj osobi.
broj = 0; while (Serial.available () && count <12) { input = Serial.read (); brojati ++; kašnjenje (5); }

Zatim se primljeni niz uspoređuje sa spremljenim kodovima oznaka. Ako se kod podudara, tada se licenca smatra valjanom, što korisniku omogućuje stavljanje valjanog otiska prsta. U suprotnom će se prikazati nevaljana licenca.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licenca valjana"); lcd.setCursor (0,1); lcd.print ("Dobrodošli"); kašnjenje (1000); a = 1; otisak prsta(); }
U sljedećem koraku zapisuje se funkcija getFingerprintID koja će vratiti važeći ID otiska za već upisani otisak.
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = FINGERPRINT_OK) return -1; p = finger.image2Tz (); if (p! = FINGERPRINT_OK) return -1; p = finger.fingerFastSearch (); if (p! = FINGERPRINT_OK) return -1; vrati prst.fingerID; }
Unutar funkcije fingerprint () , koja se poziva nakon uspješnog podudaranja RFID-a, funkcija getFingerprintID poziva se da bi se dobio valjani ID otiska prsta. Zatim se uspoređuje pomoću petlje if-else da bi se dobili podaci u vezi s podacima o ovjerenoj osobi, a ako se podaci podudaraju, tada se vozilo zapali, u suprotnom, zatražit će se pogrešan otisak prsta.
int fingerprintID = getFingerprintID (); kašnjenje (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Pristup odobren"); lcd.setCursor (0,1); lcd.print ("Vozilo započeto"); digitalWrite (9, VISOKO); digitalWrite (10, LOW); dok (1); }
Dakle, ovako funkcionira ovaj RFID sustav paljenja automobila koji dodaje dva sloja sigurnosti vašem automobilu.

Kompletni kod i demonstracijski video dani su u nastavku.
