- Naudotos medžiagos
- EM18 RFID skaitytuvo modulis
- Sužinokite RFID žymos unikalų 12 skaitmenų kodą naudodami „Arduino“
- Grandinės schema
- Pirštų atspaudų jutiklio modulis
- Raktinio RFID uždegimo programavimas
Šiais laikais didžiojoje automobilio dalyje yra raktų įvedimo sistema ir mygtuko uždegimo sistema, kurioje raktą reikia nešiotis tik kišenėje, o norint atidaryti automobilio dureles, tiesiog reikia uždėti pirštą ant talpos jutiklio, esančio ant durų rankenos. Šiame projekte mes pridėjome dar keletą saugos funkcijų prie šios sistemos, naudodami RFID ir „Fingerprint“ jutiklį. RDA jutiklis patvirtins vartotojo licenciją, o pirštų atspaudų jutiklis transporto priemonėje leis tik įgaliotą asmenį.
Šiai automobilio uždegimo pirštų atspaudais pagrįstai sistemai naudojame „ Arduino“ su R305 pirštų atspaudų jutikliu ir EM18 RFID skaitytuvu.
Naudotos medžiagos
- „Arduino Nano“
- R305 Pirštų atspaudų jutiklis
- EM18 RFID skaitytuvas
- 16 * 2 raidinis skaitmeninis LCD ekranas
- Nuolatinės srovės varikliai
- L293D variklio vairuotojo IC
- „Veroboard“ arba „Breadboard“ (atsižvelgiant į tai, kas yra)
- Jungiamieji laidai
- 12 V nuolatinės srovės baterija
EM18 RFID skaitytuvo modulis
RFID reiškia radijo dažnio identifikavimą. Tai reiškia technologiją, kai skaitmeniniai duomenys yra užkoduoti RDA žymose ir juos galima dekoduoti RDA skaitytuvu naudojant radijo bangas. RFID yra panašus į brūkšninį kodavimą, kai duomenis iš žymos iššifruoja įrenginys. RFID technologija naudojama įvairiose programose, tokiose kaip apsaugos sistema, darbuotojų lankymo sistema, RFID durų užraktas, RFID pagrįstas balsavimo aparatas, rinkliavų rinkimo sistema ir kt.
„EM18 Reader“ yra modulis, galintis nuskaityti RFID žymose saugomą ID informaciją. RFID žymos saugo 12 skaitmenų unikalų numerį, kurį gali iššifruoti EM18 skaitytuvo modulis, kai žyma pasiekia skaitytuvo diapazoną. Šis modulis veikia 125 kHz dažniu, turėdamas įmontuotą anteną, ir valdomas naudojant 5 voltų nuolatinės srovės maitinimo šaltinį.
Tai suteikia nuoseklų duomenų išvestį, o jo diapazonas yra 8-12 cm. Nuoseklaus ryšio parametrai yra 8 duomenų bitai, 1 stabdymo bitas ir 9600 perdavimo sparta.
EM18 savybės:
- Darbinė įtampa: nuo + 4,5 V iki + 5,5 V DC
- Srovės suvartojimas: 50mA
- Darbinis dažnis: 125KHZ
- Darbinė temperatūra: 0-80 laipsnių C
- Ryšio perdavimo sparta: 9600
- Skaitymo atstumas: 8-12 cm
- Antena: įmontuota
EM18 kištukas:
PIN kodas:
VCC: 4,5–5 V nuolatinės įtampos įėjimas
GND: įžemintas kaištis
Buzzer: Buzzer arba LED kaištis
TX: EM2 serijos duomenų siųstuvo kaištis, skirtas RS232 (išvestis)
SEL: Tai turi būti AUKŠTA, jei norite naudoti RS232 (LOW, jei naudojate WEIGAND)
Duomenys 0: WEIGAND duomenys 0
1 duomenys: WEIGAND duomenys 1
Norėdami sužinoti daugiau apie RDA ir žymas, patikrinkite ankstesnius RDA pagrįstus projektus.
Sužinokite RFID žymos unikalų 12 skaitmenų kodą naudodami „Arduino“
Prieš programuodami „Arduino for Arduino“ automobilio uždegimo sistemą, pirmiausia turime sužinoti 12 skaitmenų RFID žymos unikalų kodą. Kaip aptarėme anksčiau, RFID žymose yra 12 skaitmenų unikalus kodas, kurį galima iššifruoti naudojant RFID skaitytuvą. Kai mes perbraukiame RFID žymą šalia skaitytuvo, skaitytuvas duos unikalius kodus per išvesties nuoseklųjį prievadą. Pirmiausia prijunkite „Arduino“ prie RFID skaitytuvo, kaip nurodyta schemoje, tada įkelkite žemiau nurodytą kodą į „Arduino“.
int skaičius = 0; char card_no; negaliojanti sąranka () {Serial.begin (9600); } void loop () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {card_no = Serial.read (); skaičius ++; vėlavimas (5); } Serial.print (card_no); }}
Sėkmingai įkėlę kodą, atidarykite nuoseklųjį monitorių ir nustatykite perdavimo spartą į 9600. Tada braukite kortele šalia „Reader“. Tada serijiniame monitoriuje pradės rodyti 12 skaitmenų kodas. Atlikite šį procesą visoms naudojamoms RDA žymenims ir užsirašykite, kad būtų galima sužinoti ateityje.
Grandinės schema
Šios pirštų atspaudais pagrįstos uždegimo sistemos schema pateikta žemiau:
Mano atveju aš sulitavau visą grandinę ant plokštės, kaip parodyta žemiau:
Pirštų atspaudų jutiklio modulis
Pirštų atspaudų jutiklio modulis arba „Finger Print Scanner“ yra modulis, kuris užfiksuoja piršto atspaudo vaizdą, tada paverčia jį į lygiavertį šabloną ir išsaugo juos savo atmintyje, pasirinkdamas „Arduino“ ID (vietą). Čia „Arduino“ komanduoja visą procesą, pavyzdžiui, piršto atspaudo atvaizdą, konvertuoti jį į šablonus ir vietos saugojimą ir kt.
Anksčiau mes naudojome tą patį R305 jutiklį, kad sukurtume balsavimo mašiną, lankymo sistemą, apsaugos sistemą ir kt. Čia galite patikrinti visus pirštų atspaudų projektus.
Pirštų atspaudų registravimas jutiklyje:
Prieš tęsdami programą, turime įdiegti reikalingas bibliotekas pirštų atspaudų jutikliui. Čia mes naudojome „ Adafruit_Fingerprint.h “ naudodami pirštų atspaudų jutiklį R305. Taigi pirmiausia atsisiųskite biblioteką naudodami toliau pateiktą nuorodą:
- „Adafruit“ pirštų atspaudų jutiklių biblioteka
Sėkmingai atsisiųsdami, „Arduino IDE“ eikite į Failas > Įrankiai> Įtraukti biblioteką> Pridėti.zip biblioteką ir pasirinkite zip failo vietą, kad įdiegtumėte biblioteką.
Sėkmingai įdiegę biblioteką, atlikite toliau nurodytus veiksmus, kad užregistruotumėte naują piršto atspaudą jutiklio atmintyje.
1. „Arduino IDE“ eikite į Failas > Pavyzdžiai > „ Adafruit“ pirštų atspaudų jutiklių biblioteka > Užregistruoti.
2. Įkelkite kodą į „Arduino“ ir atidarykite „Serial“ monitorių 9600 perdavimo sparta.
Svarbu: pakeiskite programinės įrangos serijos PIN kodą į „SoftwareSerial mySerial“ (12, 11).
3. Turėtumėte įvesti piršto antspaudo, kuriame norite laikyti piršto atspaudą, ID. Kadangi tai pirmas mano piršto atspaudas, viršutiniame kairiajame kampe įvedžiau 1, tada spustelėkite mygtuką Siųsti.
4. Tada mirksės piršto atspaudo jutiklio lemputė, kuri rodo, kad pirštą turite uždėti ant jutiklio ir po to atlikite nuoseklaus monitoriaus veiksmus, kol jis patvirtins, kad sėkmingai užregistravote.
Raktinio RFID uždegimo programavimas
Pilnas šios biometrinės uždegimo sistemos kodas pateikiamas mokymo programos pabaigoje. Čia mes paaiškiname keletą svarbių kodo dalių.
Pirmas dalykas yra įtraukti visas reikalingas bibliotekas. Čia mano atveju įtraukiau „ Adafruit_Fingerprint.h “, skirtą naudoti R305 pirštų atspaudų jutiklį. Tada sukonfigūruokite nuoseklųjį prievadą, kuriame bus prijungtas pirštų atspaudų jutiklis. Mano atveju aš 12 deklaravau kaip „RX Pin“ ir 11 - „TX“ kaištį.
# įtraukti # įtraukti
Kitame etape deklaruokite visus kintamuosius, kurie bus naudojami visame kode. Tada nustatykite LCD jungties kaiščius su „Arduino“, o po to nurodykite „LiquidCrystal“ klasės objektą.
char įvestis; int skaičius = 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);
Toliau, ciklo () viduje , parašomas kodas, norint gauti unikalius 12 skaitmenų RDA žymenų kodus ir jie saugomi masyve. Masyvo elementai bus suderinti su atmintyje išsaugotais unikaliais kodais, kad gautumėte informaciją apie patvirtintą asmenį.
skaičius = 0; while (Serial.available () && count <12) { įvestis = nuoseklioji. skaičius ++; vėlavimas (5); }
Tada gautas masyvas palyginamas su saugomais žymos kodais. Jei kodas yra suderintas, licencija laikoma galiojančia, o tai leidžia vartotojui įdėti galiojantį piršto atspaudą. Kitu atveju bus rodoma netinkama licencija.
if ((strncmp (įvestis, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Galiojanti licencija"); lcd.setCursor (0, 1); lcd.print („Sveiki atvykę“); vėlavimas (1000); a = 1; piršto antspaudas (); }
Kitame žingsnyje parašoma funkcija „ getFingerprintID“, kuri grąžins galiojantį jau užregistruoto piršto atspaudo ID.
int getFingerprintID () { uint8_t p = finger.getImage (); jei (p! = FINGERPRINT_OK) grįžti -1; p = pirštas.image2Tz (); jei (p! = FINGERPRINT_OK) grįžti -1; p = finger.fingerFastSearch (); jei (p! = FINGERPRINT_OK) grįžti -1; grįžti pirštą.fingerID; }
Viduje esantis piršto atspaudas () , kuris iškviečiamas po sėkmingo RDA suderinimo, „ getFingerprintID“ funkcija iškviečiama norint gauti galiojantį piršto atspaudo ID. Tada jis lyginamas naudojant „ if-else“ kilpą, kad gautumėte informaciją apie autentifikuoto asmens duomenis, o jei duomenys sutampa, transporto priemonė uždegama, kitaip raginama pateikti neteisingą piršto atspaudą.
int piršto atspaudo ID = getFingerprintID (); vėlavimas (50); if (piršto antspaudo ID == 1) { lcd.setCursor (0, 0); lcd.print ("suteikta prieiga"); lcd.setCursor (0, 1); lcd.print ("Pradėta transporto priemonė"); „digitalWrite“ (9, HIGH); „digitalWrite“ (10, LOW); o (1); }
Taigi ši RFID automobilio uždegimo sistema veikia taip, kad jūsų automobiliui suteikiami du saugumo lygiai.
Visas kodas ir parodomasis vaizdo įrašas pateikiami žemiau.