- Uporabljeni materiali
- EM18 RFID bralni modul
- Poiščite edinstveno 12-mestno kodo RFID z uporabo Arduina
- Shema vezja
- Modul senzorja za prstni odtis
- Programiranje za vžig brez ključa RFID
Danes ima večina avtomobila sistem za vžig brez ključa in sistem za vžig s tipkami, pri katerem morate ključ nositi samo v žepu in samo odpreti vrata avtomobila morate s prstom na kapacitivni senzor na ročaju vrat. V tem projektu s sistemom RFID in senzorjem za prstne odtise temu sistemu dodajamo še nekaj varnostnih funkcij. RFID senzor bo potrdil licenco uporabnika, senzor prstnih odtisov pa bo dovolil le pooblaščeno osebo v vozilu.
Za ta sistem za vžig na osnovi prstnih odtisov uporabljamo Arduino s senzorjem za prstne odtise R305 in bralnikom EM18 RFID.
Uporabljeni materiali
- Arduino Nano
- R305 Senzor prstnih odtisov
- Bralnik RFID EM18
- 16 * 2 alfanumerični LCD
- Enosmerni motorji
- L293D IC voznika motorja
- Veroboard ali Breadboard (kar je na voljo)
- Priključne žice
- 12V enosmerna baterija
EM18 RFID bralni modul
RFID pomeni radiofrekvenčna identifikacija. Nanaša se na tehnologijo, pri kateri so digitalni podatki kodirani v RFID oznakah in jih lahko RFID čitalnik dekodira z uporabo radijskih valov. RFID je podoben črtnemu kodiranju, pri katerem naprava podatke dekodira iz oznake. RFID tehnologija se uporablja v različnih aplikacijah, kot so varnostni sistem, sistem prisotnosti zaposlenih, RFID zaklepanje vrat, RFID glasovalni stroj, sistem cestninjenja itd.
EM18 Reader je modul, ki lahko bere podatke ID, shranjene v oznakah RFID. Oznake RFID shranijo 12-mestno unikatno številko, ki jo lahko dekodira modul bralnika EM18, ko je oznaka v dosegu z bralnikom. Ta modul deluje na frekvenci 125 kHz, ki ima vgrajeno anteno, in deluje s 5-voltnim DC napajalnikom.
Omogoča serijski izhod in ima obseg 8-12 cm. Parametri serijske komunikacije so 8 podatkovnih bitov, 1 stop bit in 9600 baudov.
Značilnosti EM18:
- Delovna napetost: + 4,5V do + 5,5V DC
- Trenutna poraba: 50mA
- Delovna frekvenca: 125KHz
- Delovna temperatura: 0-80 stopinj C
- Hitrost komunikacijske hitrosti: 9600
- Razdalja branja: 8-12 cm
- Antena: Vgrajena
EM18 Pinout:
Opis pin:
VCC: 4,5–5 V enosmerni napetostni vhod
GND: ozemljitveni zatič
Zvočni signal: zvočni signal ali LED zatič
TX: zatič serijskega podatkovnega oddajnika EM18 za RS232 (izhod)
SEL: Za uporabo RS232 mora biti VISOKO (pri uporabi WEIGAND NIZKO)
Podatki 0: podatki WEIGAND 0
Podatki 1: podatki WEIGAND 1
Če želite izvedeti več o RFID in oznakah, si oglejte naše prejšnje projekte, ki temeljijo na RFID.
Poiščite edinstveno 12-mestno kodo RFID z uporabo Arduina
Pred programiranjem sistema za vžig avtomobila Arduino za Arduino moramo najprej ugotoviti 12-mestno kodo RFID tag. Kot smo že omenili, oznake RFID vsebujejo 12-mestno unikatno kodo, ki jo je mogoče dekodirati z uporabo bralnika RFID. Ko povlečemo RFID oznako v bližini Readerja, bo Reader dal edinstvene kode preko izhodnih serijskih vrat. Najprej povežite Arduino z bralnikom RFID v skladu s shemo vezja in nato naložite spodnjo kodo v Arduino.
štetje int = 0; char card_no; void setup () {Serial.begin (9600); } void loop () {if (Serial.available ()) {count = 0; medtem ko (Serial.available () && count <12) {card_no = Serial.read (); štetje ++; zamuda (5); } Serial.print (card_no); }}
Po uspešnem nalaganju kode odprite serijski monitor in nastavite hitrost prenosa na 9600. Nato povlecite kartico blizu bralnika. Nato se bo 12-mestna koda začela prikazovati na serijskem monitorju. Naredite ta postopek za vse uporabljene oznake RFID in si ga zapišite v prihodnje.
Shema vezja
Shema vezja za ta sistem vžiga na osnovi prstnih odtisov je podana spodaj:
V mojem primeru sem prilepil celotno vezje na ploščo za perf, kot je prikazano spodaj:
Modul senzorja za prstni odtis
Modul senzorja za prstni odtis ali optični bralnik prstnih odtisov je modul, ki zajame sliko prstnega odtisa, nato pa jo pretvori v enakovredno predlogo in jih shrani v svoj pomnilnik na izbrani ID (lokaciji), ki jo izda Arduino. Tu ves proces zapoveduje Arduino, na primer fotografiranje prstnega odtisa, pretvorba v predloge, shranjevanje lokacije itd.
Pred tem smo uporabljali isti senzor R305 za izdelavo glasovalne naprave, sistema prisotnosti, varnostnega sistema itd. Tu lahko preverite vse projekte, ki temeljijo na odtisu prstov.
Vpisovanje prstnih odtisov na senzor:
Pred nadaljevanjem programa moramo namestiti potrebne knjižnice za senzor prstnih odtisov. Tu smo uporabili “ Adafruit_Fingerprint.h ” za uporabo senzorja za prstne odtise R305. Najprej prenesite knjižnico s spodnjo povezavo:
- Knjižnica senzorjev za prstne odtise Adafruit
Po uspešnem prenosu v Arduino IDE pojdite na Datoteka > Orodja> Vključi knjižnico> Dodaj knjižnico.zip in nato izberite mesto zip datoteke, da namestite knjižnico.
Po uspešni namestitvi knjižnice sledite spodnjim korakom, da vnesete nov prstni odtis v pomnilnik senzorja.
1. V Arduino IDE, pojdite na Datoteka > Primeri > Adafruit Fingerprint Sensor knjižnica > Včlanitev.
2. Naložite kodo v Arduino in odprite serijski monitor s hitrostjo prenosa 9600.
Pomembno: Spremenite zaporedni zatič programske opreme v programu na SoftwareSerial mySerial (12, 11).
3. Vnesite ID za prstni odtis, v katerega želite shraniti prstni odtis. Ker je to moj prvi prstni odtis, sem v zgornji levi kot vtipkal 1 in nato kliknite gumb Pošlji.
4. Nato bo lučka na senzorju za prstne odtise utripala, kar pomeni, da morate položiti prst na senzor, nato pa sledite navodilom na serijskem monitorju, dokler vas ne potrdi za uspešno včlanitev.
Programiranje za vžig brez ključa RFID
Popolna koda za ta sistem biometričnega vžiga je podana na koncu vadnice. Tukaj razlagamo nekaj pomembnih delov kode.
Prva stvar je vključiti vse zahtevane knjižnice. Tu sem v svoj primer vključil » Adafruit_Fingerprint.h « za uporabo senzorja za prstne odtise R305. Nato konfigurirajte serijska vrata, v katera bo priključen senzor prstnih odtisov. V mojem primeru sem 12 razglasil za RX pin in 11 kot TX pin.
#include #include
V naslednjem koraku navedite vse spremenljivke, ki bodo uporabljene v celotni kodi. Nato z Arduinom določite zatiče za povezavo LCD, čemur sledi izjava predmeta razreda LiquidCrystal .
vnos znakov; int count = 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);
Nato se v zanko () napiše koda, da se dobijo edinstvene 12-mestne kode oznak RFID in se shranijo v matriko. Tu se bodo elementi polja ujemali s shranjenimi edinstvenimi kodami v pomnilniku, da bodo dobili podrobnosti overjene osebe.
štetje = 0; medtem ko (Serial.available () && count <12) { input = Serial.read (); štetje ++; zamuda (5); }
Nato se prejeto polje primerja s shranjenimi kodami oznak. Če se koda ujema, se licenca šteje za veljavno, kar uporabniku omogoča, da vnese veljaven prstni odtis. V nasprotnem primeru bo prikazana neveljavna licenca.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Veljavnost licence"); lcd.setCursor (0, 1); lcd.print ("Dobrodošli"); zamuda (1000); a = 1; prstni odtis (); }
V naslednjem koraku je zapisana funkcija getFingerprintID , ki bo vrnila veljaven ID prstnega odtisa za že vpisan prstni odtis.
int getFingerprintID () { uint8_t p = finger.getImage (); če (p! = FINGERPRINT_OK) vrne -1; p = finger.image2Tz (); če (p! = FINGERPRINT_OK) vrne -1; p = finger.fingerFastSearch (); če (p! = FINGERPRINT_OK) vrne -1; vrni finger.fingerID; }
Funkcija fingerprint () , ki se pokliče po uspešnem ujemanju RFID, pokliče funkcijo getFingerprintID, da dobi veljaven ID prstnega odtisa. Nato ga primerjamo z zanko if-else, da dobimo informacije v zvezi s podatki overjene osebe, in če se podatki ujemajo, se vozilo vžge, sicer pa zahteva napačen prstni odtis.
int fingerprintID = getFingerprintID (); zamuda (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Dostop odobren"); lcd.setCursor (0, 1); lcd.print ("Vozilo zagnano"); digitalWrite (9, VISOKO); digitalWrite (10, LOW); medtem ko (1); }
Tako deluje ta RFID sistem za vžig avtomobila, ki vašemu avtomobilu doda dve plasti varnosti.
Celotna koda in predstavitveni video so navedeni spodaj.