- Felhasznált anyagok
- EM18 RFID olvasó modul
- Az Arduino segítségével megtudhatja az RFID Tag egyedi 12 jegyű kódját
- Kördiagramm
- Ujjlenyomat-érzékelő modul
- Programozás RFID kulcs nélküli gyújtáshoz
Manapság az autó nagy részéhez kulcsnélküli belépés és nyomógombos gyújtás tartozik, amelyben a kulcsot csak a zsebében kell tartania, és csak az ajtó kilincsének kapacitív érzékelőjére kell tennie az ujját az autó ajtajának kinyitásához. Ebben a projektben az RFID és az ujjlenyomat-érzékelő használatával hozzáadunk még néhány biztonsági funkciót ehhez a rendszerhez. Az RFID-érzékelő érvényesíti a felhasználó engedélyét, az ujjlenyomat-érzékelő pedig csak arra jogosult személyeket enged be a járműbe.
Ehhez az ujjlenyomat-alapú autógyújtó rendszerhez az Arduino-t használjuk R305 ujjlenyomat-érzékelővel és EM18 RFID-olvasóval.
Felhasznált anyagok
- Arduino Nano
- R305 Ujjlenyomat-érzékelő
- EM18 RFID olvasó
- 16 * 2 alfanumerikus LCD
- DC motorok
- L293D motorvezérlő IC
- Veroboard vagy Breadboard (amelyik elérhető)
- Csatlakozó vezetékek
- 12 V DC akkumulátor
EM18 RFID olvasó modul
Az RFID jelentése rádiófrekvenciás azonosítás. Olyan technológiára utal, ahol a digitális adatokat RFID-címkékbe kódolják, és rádióhullámok segítségével dekódolhatják azokat egy RFID-olvasó. Az RFID hasonló a vonalkódoláshoz, amelyben a címkéből származó adatokat egy eszköz dekódolja. Az RFID technológiát különféle alkalmazásokban használják, például biztonsági rendszerben, alkalmazotti jelenléti rendszerben, RFID ajtózárban, RFID alapú szavazógépben, útdíjszedő rendszerben stb.
Az EM18 Reader egy modul, amely képes olvasni az RFID címkékben tárolt azonosító információkat. Az RFID-címkék 12 számjegyű egyedi számot tárolnak, amelyet egy EM18 olvasó modul dekódolhat, amikor a címke az olvasó hatósugarába kerül. Ez a modul beépített antennával rendelkező 125 kHz frekvencián működik, és egy 5 voltos DC tápegységgel működik.
Soros adatkimenetet ad, hatótávolsága 8-12 cm. A soros kommunikációs paraméterek 8 adatbit, 1 stopbit és 9600 baud sebesség.
EM18 Jellemzők:
- Üzemi feszültség: + 4,5 V - + 5,5 V DC
- Áramfogyasztás: 50mA
- Működési frekvencia: 125KHZ
- Üzemi hőmérséklet: 0-80 ° C
- Kommunikációs átviteli sebesség: 9600
- Olvasási távolság: 8-12 cm
- Antenna: Beépített
EM18 Pinout:
PIN leírás:
VCC: 4,5 - 5 V DC feszültség bemenet
GND: Földelt csap
Zümmögő: Zümmögő vagy LED csap
TX: Az EM18 soros adatátviteli tűje az RS232-hez (kimenet)
SEL: Ennek HIGH-nak kell lennie az RS232 használatához (LOW, ha WEIGAND-ot használ)
0 adat: WEIGAND 0 adat
1. adat: WEIGAND 1. adat
Ha többet szeretne megtudni az RFID-ről és a címkékről, ellenőrizze korábbi RFID-alapú projektjeinket.
Az Arduino segítségével megtudhatja az RFID Tag egyedi 12 jegyű kódját
Az Arduino for Arduino autógyújtás rendszerének programozása előtt először meg kell találnunk a 12 jegyű RFID tag egyedi kódját. Amint arról korábban tárgyaltunk, az RFID-címkék 12 jegyű egyedi kódot tartalmaznak, és RFID-leolvasóval dekódolhatók. Amikor az RFID címkét az olvasó közelében csúsztatjuk, az olvasó megadja az egyedi kódokat a kimeneti soros porton keresztül. Először csatlakoztassa az Arduino-t az RFID-olvasóhoz a kapcsolási rajz szerint, majd töltse fel az alább megadott kódot az Arduino-ra.
int szám = 0; char card_no; void setup () {Soros.kezdés (9600); } void loop () {if (soros.elérhető ()) {count = 0; while (Soros.elérhető () && szám <12) {card_no = Soros.olvasott (); szám ++; késleltetés (5); } Soros.nyomtatás (kártya_száma); }}
A kód sikeres feltöltése után nyissa meg a soros monitort, és állítsa az átviteli sebességet 9600-ra. Ezután csúsztassa el a kártyát az Olvasó közelében. Ezután a 12 jegyű kód megjelenik a soros monitoron. Végezze el ezt a folyamatot az összes használt RFID-címkénél, és jegyezze fel a későbbi hivatkozásokhoz.
Kördiagramm
Az ujjlenyomat-alapú gyújtási rendszer kapcsolási rajza az alábbiakban látható:
Esetemben a teljes áramkört forrasztottam a tökéletes táblára, az alábbiak szerint:
Ujjlenyomat-érzékelő modul
Az ujjlenyomat-érzékelő modul vagy az ujjlenyomat-szkenner olyan modul, amely rögzíti az ujjlenyomat képét, majd átalakítja az egyenértékű sablonba, és elmenti a memóriájába az Arduino által kiválasztott azonosítón (helyen). Itt az Arduino parancsolja az összes folyamatot, például egy ujjlenyomat képének elkészítését, sablonokká alakítását és a hely tárolását stb.
Korábban ugyanazt az R305 szenzort használtuk szavazógép, jelenléti rendszer, biztonsági rendszer stb. Építéséhez. Az összes ujjlenyomat alapú projektet itt ellenőrizheti.
Ujjlenyomatok felvétele az érzékelőbe:
A program folytatása előtt telepítenünk kell az ujjlenyomat-érzékelőhöz szükséges könyvtárakat. Itt az „ Adafruit_Fingerprint.h ” szót használtuk az R305 ujjlenyomat-érzékelő használatához. Tehát először töltse le a könyvtárat az alábbi link használatával:
- Adafruit ujjlenyomat-érzékelő könyvtár
Sikeres letöltés után az Arduino IDE alkalmazásban lépjen a Fájl > Eszközök> Könyvtár belefoglalása>.zip könyvtár hozzáadása elemre, majd válassza ki a könyvtár telepítéséhez a zip fájl helyét.
A könyvtár sikeres telepítése után kövesse az alábbi lépéseket az ujjlenyomat regisztrálásához az érzékelő memóriájában.
1. Az Arduino IDE alkalmazásban válassza a Fájl > Példák > Adafruit ujjlenyomat- érzékelő könyvtár > Regisztráció menüpontot .
2. Töltse fel a kódot az Arduino-ra, és nyissa meg a soros monitort 9600-as sebességgel.
Fontos: Változtassa meg a program szoftveres PIN-kódját SoftwareSerial mySerial (12, 11) -re.
3. Adjon meg egy azonosítót annak az ujjlenyomatnak, amelyben tárolni szeretné az ujjlenyomatát. Mivel ez az első ujjlenyomat, beírtam az 1-et a bal felső sarokba, majd kattintson a Küldés gombra.
4. Ezután az ujjlenyomat-érzékelő fénye villog, ami azt jelzi, hogy az ujját az érzékelőre kell helyeznie, és ezt követően kövesse a soros monitoron megjelenő lépéseket, amíg az nem ismeri el a sikeres regisztrálást.
Programozás RFID kulcs nélküli gyújtáshoz
Ennek a biometrikus gyújtási rendszernek a teljes kódját az oktatóanyag végén találja meg. Itt elmagyarázzuk a kód néhány fontos részét.
Az első dolog az összes szükséges könyvtár felvétele. Itt az én esetemben felvettem az „ Adafruit_Fingerprint.h ” -t az R305 ujjlenyomat-érzékelő használatához. Ezután konfigurálja azt a soros portot, amelyhez az ujjlenyomat-érzékelő csatlakozik. Esetemben a 12-et RX Pin-ként és a 11-et TX pin-ként deklaráltam.
#include #include
A következő lépésben deklarálja az összes változót, amelyeket az egész kódban használni fog. Ezután határozza meg az LCD-csatlakozócsapokat az Arduino-val, majd deklarálja a LiquidCrystal osztályú objektumot.
char bemenet; int szám = 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);
Ezután a ciklus () belsejében kódot írunk, hogy megkapjuk az RFID-címkék egyedi 12 jegyű kódjait, és azokat egy tömbben tároljuk. Itt a tömb elemeihez illesztjük a memóriában tárolt egyedi kódokat, hogy megkapjuk a hitelesített személy adatait.
szám = 0; míg (Soros.elérhető () && szám <12) { input = Soros.olvas (); szám ++; késleltetés (5); }
Ezután a kapott tömböt összehasonlítjuk a tárolt címkekódokkal. Ha a kód megegyezik, akkor a licenc érvényesnek tekintendő, amely lehetővé teszi a felhasználó számára, hogy érvényes ujjlenyomatot tegyen. Ellenkező esetben érvénytelen licencet mutat.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Érvényes licenc"); lcd.setCursor (0, 1); lcd.print ("Welcome"); késés (1000); a = 1; ujjlenyomat(); }
A következő lépésben a getFingerprintID függvény íródik , amely egy már bejegyzett ujjlenyomat érvényes ujjlenyomat-azonosítóját adja vissza.
int getFingerprintID () { uint8_t p = finger.getImage (); ha (p! = FINGERPRINT_OK) visszatér -1; p = ujj.kép2Tz (); ha (p! = FINGERPRINT_OK) visszatér -1; p = finger.fingerFastSearch (); ha (p! = FINGERPRINT_OK) visszatér -1; return finger.fingerID; }
Az ujjlenyomat () függvényen belül , amelyet sikeres RFID-egyeztetés után hívnak meg, a getFingerprintID funkciót hívja meg, hogy érvényes ujjlenyomat-azonosítót kapjon. Ezután az if-else hurok segítségével hasonlítják össze a hitelesített személyekre vonatkozó információkat, és ha az adatok egyeznek, akkor a jármű meggyullad, különben rossz ujjlenyomatot kér.
int ujjlenyomatID = getFingerprintID (); késés (50); if (ujjlenyomatazonosító == 1) { lcd.setCursor (0, 0); lcd.print ("Hozzáférés megadva"); lcd.setCursor (0, 1); lcd.print ("A jármű elindult"); digitalWrite (9, HIGH); digitalWrite (10, LOW); míg (1); }
Így működik ez az RFID autógyújtó rendszer, amely két réteg biztonságot ad az autójához.
A teljes kód és a bemutató videó az alábbiakban található.