- Použité materiály
- Modul čítačky RFID EM18
- Vyhľadajte jedinečný 12-miestny kód RFID tagu pomocou Arduina
- Schéma zapojenia
- Modul snímača odtlačkov prstov
- Programovanie pre RFID bezkľúčové zapaľovanie
V súčasnosti je väčšina vozidla vybavená bezkľúčovým prístupom a zapaľovacím systémom, v ktorom stačí kľúč nosiť vo vrecku a na otvorenie dverí stačí položiť prst na kapacitný snímač na rukoväti dverí. Tu v tomto projekte pridávame do systému niekoľko ďalších bezpečnostných funkcií pomocou RFID a snímača odtlačkov prstov. Snímač RFID overí platnosť licencie používateľa a snímač odtlačkov prstov povolí vo vozidle iba oprávnenú osobu.
Pre tento systém zapaľovania automobilov založený na odtlačkoch prstov používame Arduino so snímačom odtlačkov prstov R305 a čítačkou RFID EM18.
Použité materiály
- Arduino Nano
- Snímač odtlačkov prstov R305
- Čítačka RFID EM18
- 16 * 2 alfanumerický LCD
- Jednosmerné motory
- L293D IC ovládač motora
- Veroboard alebo nepájivá doska (podľa toho, čo je k dispozícii)
- Pripojovacie vodiče
- 12V DC batéria
Modul čítačky RFID EM18
RFID znamená rádiofrekvenčná identifikácia. Vzťahuje sa na technológiu, pri ktorej sú digitálne údaje kódované do štítkov RFID a môžu byť dekódované čítačkou RFID pomocou rádiových vĺn. RFID je podobné čiarovému kódovaniu, pri ktorom údaje zo štítku dekóduje zariadenie. Technológia RFID sa používa v rôznych aplikáciách, ako je bezpečnostný systém, dochádzkový systém zamestnancov, zámok dverí RFID, hlasovacie zariadenie založené na RFID, systém výberu mýta atď.
Čítačka EM18 je modul, ktorý dokáže čítať informácie ID uložené v značkách RFID. RFID štítky uchovávajú 12-miestne jedinečné číslo, ktoré je možné dekódovať čítacím modulom EM18, keď sa štítok dostane do dosahu snímača. Tento modul pracuje na frekvencii 125 kHz, ktorá má zabudovanú anténu, a je prevádzkovaný pomocou jednosmerného napájacieho zdroja s napätím 5 voltov.
Poskytuje sériový dátový výstup a má dosah 8 - 12 cm. Parametre sériovej komunikácie sú 8 dátových bitov, 1 stop bit a 9600 prenosová rýchlosť.
Vlastnosti EM18:
- Prevádzkové napätie: + 4,5 V až + 5,5 V DC
- Spotreba prúdu: 50mA
- Pracovná frekvencia: 125 KHZ
- Prevádzková teplota: 0-80 stupňov C.
- Prenosová rýchlosť komunikácie: 9600
- Vzdialenosť na čítanie: 8-12 cm
- Anténa: Zabudovaná
EM18 Pinout:
Popis kolíka:
VCC: 4,5 - 5 V DC napäťový vstup
GND: Uzemňovací kolík
Bzučiak: Bzučiak alebo kolík LED
TX: Pin sériového vysielača dát EM18 pre RS232 (výstup)
SEL: Toto musí byť VYSOKÉ pre použitie RS232 (NÍZKE, ak používate WEIGAND)
Údaje 0: WEIGAND údaje 0
Údaje 1: Údaje WEIGAND 1
Ak sa chcete dozvedieť viac informácií o RFID a štítkoch, pozrite si naše predchádzajúce projekty založené na RFID.
Vyhľadajte jedinečný 12-miestny kód RFID tagu pomocou Arduina
Pred programovaním systému zapaľovania automobilov Arduino pre Arduino je potrebné najskôr zistiť 12-ciferný jedinečný kód značky RFID. Ako sme už diskutovali, RFID štítky obsahujú 12-miestny jedinečný kód a je možné ich dekódovať pomocou čítačky RFID. Keď prstom potiahneme značku RFID v blízkosti čítačky, čítačka dá jedinečné kódy cez výstupný sériový port. Najskôr pripojte Arduino k čítačke RFID podľa schémy zapojenia a potom nahrajte nižšie uvedený kód do Arduina.
počet int = 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 (); počet ++; oneskorenie (5); } Serial.print (karta_no); }}
Po úspešnom nahraní kódu otvorte sériový monitor a nastavte prenosovú rýchlosť na 9600. Potom potiahnite kartu po čítačke. Potom sa 12-miestny kód začne zobrazovať na sériovom monitore. Vykonajte tento proces pre všetky použité značky RFID a poznamenajte si ho pre ďalšie použitie.
Schéma zapojenia
Schéma zapojenia tohto systému zapaľovania založeného na odtlačkoch prstov je uvedená nižšie:
V mojom prípade som pripájal celý obvod na doske perf, ako je zobrazené nižšie:
Modul snímača odtlačkov prstov
Modul snímača odtlačkov prstov alebo snímač odtlačkov prstov je modul, ktorý zachytáva tlačený obrázok prsta a potom ho prevádza do ekvivalentnej šablóny a ukladá ich do svojej pamäte na vybrané ID (umiestnenie) od spoločnosti Arduino. Tu riadi celý proces Arduino, ako je snímanie odtlačkov prstov, prevádzanie do šablón a ukladanie polohy atď.
Predtým sme rovnaký senzor R305 použili na vytvorenie hlasovacieho zariadenia, dochádzkového systému, bezpečnostného systému atď. Všetky projekty založené na odtlačkoch prstov môžete skontrolovať tu.
Registrácia odtlačkov prstov do senzora:
Pred pokračovaním v programe musíme nainštalovať požadované knižnice pre snímač odtlačkov prstov. Tu sme použili „ Adafruit_Fingerprint.h “ na používanie snímača odtlačkov prstov R305. Najskôr si teda stiahnite knižnicu pomocou odkazu uvedeného nižšie:
- Knižnica snímačov odtlačkov prstov Adafruit
Po úspešnom stiahnutí prejdite do IDE Arduino na položky Súbor > Nástroje> Zahrnúť knižnicu> Pridať knižnicu.zip a potom vyberte umiestnenie súboru zip, aby sa knižnica nainštalovala.
Po úspešnej inštalácii knižnice zaregistrujte nový odtlačok prsta do pamäte snímača podľa pokynov uvedených nižšie.
1. V Arduino IDE, choďte na Súbor > Príklady > Adafruit Fingerprint Sensor Library > Zápis.
2. Vložte kód do Arduina a otvorte sériový monitor s prenosovou rýchlosťou 9600.
Dôležité: Zmeňte sériový pin softvéru v programe na SoftwareSerial mySerial (12, 11).
3. Mali by ste zadať ID pre odtlačok prsta, do ktorého chcete odtlačok uložiť. Pretože toto je môj prvý odtlačok prsta, zadal som 1 do ľavého horného rohu a potom kliknite na tlačidlo Odoslať.
4. Potom bude blikať kontrolka na snímači odtlačkov prstov, čo naznačuje, že by ste mali položiť prst na snímač, a potom postupujte podľa pokynov na sériovom monitore, až kým vás nepotvrdí úspešná registrácia.
Programovanie pre RFID bezkľúčové zapaľovanie
Kompletný kód pre tento biometrický zapaľovací systém je uvedený na konci tutoriálu. Tu vysvetľujeme niekoľko dôležitých častí kódu.
Prvá vec je zahrnúť všetky požadované knižnice. V tomto prípade som zahrnul súbor „ Adafruit_Fingerprint.h “ na používanie snímača odtlačkov prstov R305. Potom nakonfigurujte sériový port, do ktorého bude pripojený snímač odtlačkov prstov. V mojom prípade som deklaroval 12 ako RX Pin a 11 ako TX pin.
#include #include
V ďalšom kroku deklarujte všetky premenné, ktoré sa použijú v celom kóde. Potom definujte piny LCD spojenia s Arduinom, po ktorých nasleduje vyhlásenie objektu triedy LiquidCrystal .
znakový vstup; počet int = 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);
Ďalej sa vo vnútri loop () napíše kód, aby sa získali jedinečné 12-miestne kódy RFID štítkov, ktoré sa uložia do poľa. Tu sa prvky poľa zosúladia s uloženými jedinečnými kódmi v pamäti, aby sa získali podrobnosti autentifikovanej osoby.
počet = 0; while (Serial.available () && count <12) { input = Serial.read (); počet ++; oneskorenie (5); }
Potom sa prijaté pole porovná s uloženými kódmi značiek. Ak sa kód zhoduje, licencia sa považuje za platnú, čo umožňuje používateľovi vložiť platný odtlačok prsta. V opačnom prípade sa zobrazí neplatná licencia.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print („Licencia platná“); lcd.setCursor (0, 1); lcd.print („Vitajte“); oneskorenie (1 000); a = 1; odtlačok prsta (); }
V ďalšom kroku je napísaná funkcia getFingerprintID, ktorá vráti platné ID odtlačku prsta pre už zaregistrovaný odtlačok prsta.
int getFingerprintID () { uint8_t p = finger.getImage (); if (p! = FINGERPRINT_OK) návrat -1; p = finger.image2Tz (); if (p! = FINGERPRINT_OK) návrat -1; p = finger.fingerFastSearch (); if (p! = FINGERPRINT_OK) návrat -1; vrátiť finger.fingerID; }
Vo vnútri funkcie fingerprint () , ktorá sa volá po úspešnom zosúladení RFID, sa volá funkcia getFingerprintID, aby sa získalo platné ID odtlačku prsta. Potom sa porovná pomocou slučky if-else, aby sa získali informácie týkajúce sa údajov autentifikovanej osoby, a ak sa údaje zhodujú, potom sa vozidlo zapáli, inak si vyžiada nesprávny odtlačok prsta.
int fingerprintID = getFingerprintID (); oneskorenie (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print („Prístup bol udelený“); lcd.setCursor (0, 1); lcd.print ("Spustené vozidlo"); digitalWrite (9, HIGH); digitalWrite (10, LOW); while (1); }
Takto funguje tento systém zapaľovania automobilov RFID, ktorý dodáva vášmu vozidlu dve úrovne zabezpečenia.
Kompletný kód a demonštračné video sú uvedené nižšie.