- Użyte materiały
- Moduł czytnika RFID EM18
- Znajdź unikalny 12-cyfrowy kod RFID Tag za pomocą Arduino
- Schemat obwodu
- Moduł czujnika odcisków palców
- Programowanie zapłonu bezkluczykowego RFID
Obecnie większość samochodów jest wyposażona w system bezkluczykowego otwierania drzwi i zapłonu na przycisk, w którym wystarczy nosić kluczyk w kieszeni i po prostu przyłożyć palec do czujnika pojemnościowego na klamce drzwi, aby otworzyć drzwi samochodu. Tutaj, w tym projekcie, dodajemy kilka dodatkowych funkcji bezpieczeństwa do tego systemu za pomocą RFID i czytnika linii papilarnych. Czujnik RFID potwierdzi licencję użytkownika, a czytnik linii papilarnych pozwoli tylko upoważnionej osobie w pojeździe.
W tym układzie zapłonowym samochodu opartym na odciskach palców używamy Arduino z czujnikiem linii papilarnych R305 i czytnikiem RFID EM18.
Użyte materiały
- Arduino Nano
- R305 Czytnik linii papilarnych
- Czytnik RFID EM18
- 16 * 2 alfanumeryczny wyświetlacz LCD
- Silniki prądu stałego
- L293D Układ scalony sterownika silnika
- Veroboard lub Breadboard (w zależności od tego, co jest dostępne)
- Przewody łączące
- Akumulator 12V DC
Moduł czytnika RFID EM18
RFID oznacza identyfikację radiową. Odnosi się do technologii, w której dane cyfrowe są kodowane w tagach RFID i mogą być dekodowane przez czytnik RFID za pomocą fal radiowych. RFID jest podobny do kodów kreskowych, w których dane ze znacznika są dekodowane przez urządzenie. Technologia RFID jest wykorzystywana w różnych zastosowaniach, takich jak system bezpieczeństwa, system obsługi pracowników, zamek do drzwi RFID, automat do głosowania oparty na RFID, system poboru opłat itp.
Czytnik EM18 to moduł, który może odczytywać informacje ID zapisane w tagach RFID. Znaczniki RFID przechowują 12-cyfrowy unikalny numer, który może zostać zdekodowany przez moduł czytnika EM18, gdy tag znajdzie się w zasięgu czytnika. Ten moduł działa z częstotliwością 125 kHz, która ma wbudowaną antenę i jest zasilany napięciem 5 V DC.
Daje szeregowe wyjście danych i ma zasięg 8-12 cm. Parametry komunikacji szeregowej to 8 bitów danych, 1 bit stopu i szybkość transmisji 9600.
Funkcje EM18:
- Napięcie robocze: od + 4,5 V do + 5,5 V DC
- Pobór prądu: 50mA
- Częstotliwość pracy: 125 KHZ
- Temperatura pracy: 0-80 stopni C.
- Szybkość transmisji komunikacji: 9600
- Odległość odczytu: 8-12 cm
- Antena: wbudowana
Układ pinów EM18:
Opis pinów:
VCC: napięcie wejściowe 4,5-5 V DC
GND: pin uziemienia
Brzęczyk: brzęczyk lub pin LED
TX: Szeregowy pin nadajnika danych EM18 dla RS232 (wyjście)
SEL: Musi być WYSOKI, aby używać RS232 (NISKI, jeśli używasz WEIGAND)
Dane 0: Dane WEIGAND 0
Dane 1: Dane WEIGAND 1
Aby dowiedzieć się więcej o RFID i tagach, sprawdź nasze poprzednie projekty oparte na RFID.
Znajdź unikalny 12-cyfrowy kod RFID Tag za pomocą Arduino
Przed zaprogramowaniem Arduino dla układu zapłonowego samochodu Arduino, najpierw musimy znaleźć unikalny kod 12-cyfrowego tagu RFID. Jak omówiliśmy wcześniej, tagi RFID zawierają 12-cyfrowy unikalny kod i można go zdekodować za pomocą czytnika RFID. Kiedy przeciągniemy tag RFID w pobliże czytnika, czytnik poda unikalne kody poprzez wyjściowy port szeregowy. Najpierw podłącz Arduino do czytnika RFID zgodnie ze schematem obwodu, a następnie prześlij poniższy kod do Arduino.
int count = 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 (); liczyć ++; opóźnienie (5); } Serial.print (nr_karty); }}
Po pomyślnym wgraniu kodu otwórz monitor szeregowy i ustaw prędkość transmisji na 9600. Następnie przesuń kartę w pobliże czytnika. Następnie 12-cyfrowy kod zacznie się wyświetlać na monitorze szeregowym. Wykonaj ten proces dla wszystkich używanych tagów RFID i zanotuj go na przyszłość.
Schemat obwodu
Schemat obwodu dla tego układu zapłonowego opartego na odciskach palców przedstawiono poniżej:
W moim przypadku przylutowałem cały obwód na płycie perf, jak pokazano poniżej:
Moduł czujnika odcisków palców
Moduł czujnika odcisków palców lub skaner odcisków palców to moduł, który przechwytuje obraz odcisków palca, a następnie konwertuje go na równoważny szablon i zapisuje w swojej pamięci na wybranym identyfikatorze (lokalizacji) przez Arduino. Tutaj cały proces jest zarządzany przez Arduino, jak zrobienie obrazu odcisku palca, konwersja go na szablony i przechowywanie lokalizacji itp.
Wcześniej używaliśmy tego samego czujnika R305 do budowy maszyny do głosowania, systemu obecności, systemu bezpieczeństwa itp. Tutaj możesz sprawdzić wszystkie projekty oparte na odciskach palców.
Zapisywanie odcisków palców do czujnika:
Przed przystąpieniem do programu musimy zainstalować wymagane biblioteki dla czytnika linii papilarnych. Tutaj użyliśmy „ Adafruit_Fingerprint.h ” do korzystania z czujnika linii papilarnych R305. W pierwszej kolejności pobierz bibliotekę korzystając z linku podanego poniżej:
- Biblioteka czytników linii papilarnych Adafruit
Po pomyślnym pobraniu w Arduino IDE przejdź do Plik > Narzędzia> Dołącz bibliotekę> Dodaj bibliotekę.zip, a następnie wybierz lokalizację pliku zip, aby zainstalować bibliotekę.
Po pomyślnej instalacji biblioteki wykonaj poniższe kroki, aby zarejestrować nowy odcisk palca w pamięci czujnika.
1. W Arduino IDE przejdź do Plik > Przykłady > Biblioteka Adafruit Fingerprint Sensor > Enroll.
2. Prześlij kod do Arduino i otwórz monitor szeregowy przy szybkości transmisji 9600.
Ważne: Zmień pin szeregowy oprogramowania w programie na SoftwareSerial mySerial (12, 11).
3. Powinieneś wprowadzić identyfikator odcisku palca, w którym chcesz przechowywać odcisk palca. Ponieważ jest to mój pierwszy odcisk palca, wpisałem 1 w lewym górnym rogu, a następnie kliknąłem przycisk Wyślij.
4. Następnie lampka na czytniku linii papilarnych zacznie migać, co oznacza, że należy umieścić palec na czujniku, a następnie postępować zgodnie z instrukcjami wyświetlanymi na monitorze szeregowym, aż potwierdzi on pomyślną rejestrację.
Programowanie zapłonu bezkluczykowego RFID
Pełny kod tego biometrycznego układu zapłonowego podano na końcu samouczka. Tutaj wyjaśniamy kilka ważnych części kodu.
Pierwszą rzeczą jest uwzględnienie wszystkich wymaganych bibliotek. Tutaj, w moim przypadku, dołączyłem „ Adafruit_Fingerprint.h ” do korzystania z czujnika linii papilarnych R305. Następnie skonfiguruj port szeregowy, do którego zostanie podłączony czujnik odcisków palców. W moim przypadku zadeklarowałem 12 jako pin RX i 11 jako pin TX.
#include #include
W następnym kroku zadeklaruj wszystkie zmienne, które będą używane w całym kodzie. Następnie zdefiniuj piny łączące LCD z Arduino i zadeklaruj obiekt klasy LiquidCrystal .
wejście char; int count = 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);
Następnie wewnątrz pętli () zapisywany jest kod w celu uzyskania unikalnych 12-cyfrowych kodów tagów RFID i są one przechowywane w tablicy. Tutaj elementy tablicy zostaną dopasowane do zapisanych w pamięci unikalnych kodów, aby uzyskać dane uwierzytelnionej osoby.
count = 0; while (Serial.available () && count <12) { input = Serial.read (); liczyć ++; opóźnienie (5); }
Następnie odebrana tablica jest porównywana z zapisanymi kodami znaczników. Jeśli kod jest zgodny, licencja jest uważana za ważną, co pozwala użytkownikowi na umieszczenie prawidłowego odcisku palca. W przeciwnym razie pokaże nieprawidłową licencję.
if ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Licencja ważna"); lcd.setCursor (0, 1); lcd.print ("Witamy"); opóźnienie (1000); a = 1; odcisk palca(); }
W następnym kroku zostanie zapisana funkcja getFingerprintID, która zwróci prawidłowy identyfikator odcisku palca dla już zarejestrowanego odcisku palca.
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; return finger.fingerID; }
Wewnątrz funkcji fingerprint () , która jest wywoływana po udanym dopasowaniu RFID, wywoływana jest funkcja getFingerprintID w celu uzyskania prawidłowego identyfikatora odcisku palca. Następnie jest porównywany za pomocą pętli if-else w celu uzyskania informacji dotyczących danych uwierzytelnionej osoby, a jeśli dane są dopasowane, pojazd jest zapalany, w przeciwnym razie zapyta o nieprawidłowy odcisk palca.
int fingerprintID = getFingerprintID (); opóźnienie (50); if (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Przyznano dostęp"); lcd.setCursor (0, 1); lcd.print ("Uruchomiono pojazd"); digitalWrite (9, WYSOKI); digitalWrite (10, NISKI); podczas gdy (1); }
Tak więc działa system zapłonu samochodu RFID, który dodaje dwie warstwy bezpieczeństwa do Twojego samochodu.
Pełny kod i film demonstracyjny znajdują się poniżej.