- Izmantotie materiāli
- EM18 RFID lasītāja modulis
- Uzziniet RFID tagu unikālo 12 ciparu kodu, izmantojot Arduino
- Ķēdes shēma
- Pirkstu nospiedumu sensora modulis
- RFID bezatslēgas aizdedzes programmēšana
Mūsdienās lielākajai daļai automašīnas ir ieeja bez atslēgām un aizdedzes sistēma ar spiedpogu, kurā atslēga ir jānēsā tikai kabatā un vienkārši jāpieliek pirksts uz durvju roktura kapacitatīvā sensora, lai atvērtu automašīnas durvis. Šajā projektā mēs pievienojam šai sistēmai vēl dažus drošības līdzekļus, izmantojot RFID un pirkstu nospiedumu sensoru. RFID sensors apstiprinās lietotāja licenci, un pirkstu nospiedumu sensors ļaus transportlīdzeklī atrasties tikai pilnvarotai personai.
Šai automašīnas aizdedzes sistēmai, kuras pamatā ir pirkstu nospiedumi, mēs izmantojam Arduino ar R305 pirkstu nospiedumu sensoru un EM18 RFID lasītāju.
Izmantotie materiāli
- Arduino Nano
- R305 Pirkstu nospiedumu sensors
- EM18 RFID lasītājs
- 16 * 2 burtciparu LCD
- Līdzstrāvas motori
- L293D Motora vadītāja IC
- Veroboard vai Breadboard (kāds ir pieejams)
- Savienojošie vadi
- 12 V līdzstrāvas akumulators
EM18 RFID lasītāja modulis
RFID nozīmē Radiofrekvenču identifikācija. Tas attiecas uz tehnoloģiju, kurā digitālie dati tiek kodēti RFID tagos, un tos var dekodēt RFID lasītājs, izmantojot radioviļņus. RFID ir līdzīgs svītrkodēšanai, kurā datus no taga atšifrē ierīce. RFID tehnoloģija tiek izmantota dažādās lietojumprogrammās, piemēram, drošības sistēmā, darbinieku apmeklēšanas sistēmā, RFID durvju slēdzenē, uz RFID balstītā balsošanas mašīnā, nodevu iekasēšanas sistēmā utt.
EM18 Reader ir modulis, kas var nolasīt RFID tagos saglabāto ID informāciju. RFID tagos tiek glabāts 12 ciparu unikāls numurs, kuru var dekodēt EM18 lasītāja modulis, kad marķējums ir diapazonā ar Reader. Šis modulis darbojas ar frekvenci 125 kHz, kam ir iebūvēta antena, un to darbina, izmantojot 5 voltu līdzstrāvas padevi.
Tas dod sērijveida datu izvadi, un tā diapazons ir 8-12 cm. Sērijas komunikācijas parametri ir 8 datu biti, 1 apstāšanās bits un 9600 bitu pārraides ātrums.
EM18 funkcijas:
- Darba spriegums: no + 4,5 V līdz + 5,5 V līdzstrāvas
- Pašreizējais patēriņš: 50mA
- Darbības frekvence: 125KHZ
- Darba temperatūra: 0-80 grādi C
- Sakaru pārraides ātrums: 9600
- Lasīšanas attālums: 8-12 cm
- Antena: iebūvēta
EM18 Pinout:
Piespraudes apraksts:
VCC: 4,5–5 V līdzstrāvas sprieguma ieeja
GND: Zemes tapa
Buzzer: Buzzer vai LED tapa
TX: EM18 sērijas datu raidītāja tapa RS232 (izeja)
SEL: tam jābūt HIGH, lai izmantotu RS232 (LOW, ja izmantojat WEIGAND)
Dati 0: WEIGAND dati 0
1. dati: WEIGAND dati
Lai uzzinātu vairāk par RFID un tagiem, pārbaudiet mūsu iepriekšējos RFID balstītos projektus.
Uzziniet RFID tagu unikālo 12 ciparu kodu, izmantojot Arduino
Pirms programmēt Arduino for Arduino automašīnas aizdedzes sistēmu, vispirms mums jānoskaidro 12 ciparu RFID tagu unikālais kods. Kā mēs iepriekš apspriedām, RFID tagos ir 12 ciparu unikāls kods, un to var dekodēt, izmantojot RFID lasītāju. Kad mēs pārvelkam RFID tagu netālu no lasītāja, lasītājs caur izejas seriālo portu piešķirs unikālos kodus. Vispirms pievienojiet Arduino RFID lasītājam saskaņā ar shēmu un pēc tam augšupielādējiet zemāk norādīto kodu Arduino.
int skaits = 0; char card_no; void setup () {Sērijas.sākt (9600); } void loop () {if (Seriāls.pieejams ()) {count = 0; while (Seriālais.pieejams () && skaits <12) {card_no = Seriālais. ((); skaits ++; kavēšanās (5); } Sērijas sērija (card_no); }}
Pēc veiksmīgas koda augšupielādes atveriet sērijveida monitoru un iestatiet datu pārraides ātrumu uz 9600. Pēc tam velciet karti netālu no Reader. Tad sērijveida monitorā sāks parādīties 12 ciparu kods. Veiciet šo procesu visiem izmantotajiem RFID tagiem un pierakstiet to turpmākām atsaucēm.
Ķēdes shēma
Šīs aizdedzes sistēmas, kuras pamatā ir pirkstu nospiedumi, shēma ir parādīta zemāk:
Manā gadījumā es esmu pielodējis visu shēmu uz perf plāksnes, kā parādīts zemāk:
Pirkstu nospiedumu sensora modulis
Pirkstu drukas sensora modulis vai pirkstu drukas skeneris ir modulis, kas uztver pirksta drukas attēlu un pēc tam pārveido to par līdzvērtīgu veidni un saglabā tos savā atmiņā ar Arduino izvēlēto ID (atrašanās vietu). Šeit visu procesu pavada Arduino, piemēram, pirksta nospieduma attēla uzņemšana, konvertēšana šablonos un atrašanās vietas saglabāšana utt.
Iepriekš mēs izmantojām to pašu R305 sensoru, lai izveidotu balsošanas mašīnu, apmeklēšanas sistēmu, drošības sistēmu utt. Visus projektus, kuru pamatā ir pirkstu nospiedumi, varat pārbaudīt šeit.
Pirkstu nospiedumu reģistrēšana sensorā:
Pirms turpināt programmu, mums jāinstalē nepieciešamās bibliotēkas pirkstu nospiedumu sensoram. Šeit mēs izmantojām “ Adafruit_Fingerprint.h ”, lai izmantotu R305 pirkstu nospiedumu sensoru. Tāpēc vispirms lejupielādējiet bibliotēku, izmantojot tālāk norādīto saiti:
- Adafruit pirkstu nospiedumu sensoru bibliotēka
Pēc veiksmīgas lejupielādes Arduino IDE dodieties uz Fails > Rīki> Iekļaut bibliotēku> Pievienot.zip bibliotēku un pēc tam atlasiet zip faila atrašanās vietu, lai instalētu bibliotēku.
Pēc veiksmīgas bibliotēkas instalēšanas veiciet tālāk norādītās darbības, lai sensora atmiņā ierakstītu jaunu pirkstu nospiedumu.
1. Arduino IDE dodieties uz File > Piemēri > Adafruit Fingerprint Sensor Library > Enroll.
2. Augšupielādējiet kodu Arduino un atveriet sērijas monitoru ar 9600 datu pārraides ātrumu.
Svarīgi: Nomainiet programmatūras sērijas tapu uz SoftwareSerial mySerial (12, 11).
3. Jums jāievada pirksta nospieduma ID, kurā vēlaties saglabāt pirksta nospiedumu. Tā kā šis ir mans pirmais pirkstu nospiedums, augšējā kreisajā stūrī ierakstīju 1 un pēc tam noklikšķiniet uz pogas Sūtīt.
4. Pēc tam mirgos pirksta nospieduma sensora gaisma, kas norāda, ka pirksts jānovieto uz sensora un pēc tam izpildiet sērijveida monitorā norādītās darbības, līdz tas apstiprina, ka esat veiksmīgi reģistrējies.
RFID bezatslēgas aizdedzes programmēšana
Pilns šīs biometriskās aizdedzes sistēmas kods ir norādīts apmācības beigās. Šeit mēs izskaidrojam dažas svarīgas koda daļas.
Pirmā lieta ir iekļaut visas nepieciešamās bibliotēkas. Šeit manā gadījumā esmu iekļāvis “ Adafruit_Fingerprint.h ”, lai izmantotu R305 pirkstu nospiedumu sensoru. Pēc tam konfigurējiet seriālo portu, kurā tiks pievienots pirkstu nospiedumu sensors. Manā gadījumā esmu deklarējis 12 kā RX Pin un 11 kā TX pin.
# iekļaut # iekļaut
Nākamajā solī deklarējiet visus mainīgos, kas tiks izmantoti visā kodā. Pēc tam definējiet LCD savienojuma tapas ar Arduino, kam seko LiquidCrystal klases objekta deklarēšana .
char ievade; int skaits = 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);
Pēc tam cilpas () iekšpusē tiek ierakstīts kods, lai iegūtu unikālus RFID tagu 12 ciparu kodus, un tie tiek glabāti masīvā. Šeit masīva elementi tiks saskaņoti ar atmiņā saglabātajiem unikālajiem kodiem, lai iegūtu autentificētas personas datus.
skaits = 0; while (Seriālais.pieejamais () && skaits <12) { ievade = Seriālais.lasa (); skaits ++; kavēšanās (5); }
Pēc tam saņemto masīvu salīdzina ar saglabāto tagu kodiem. Ja kods ir saskaņots, licence tiek uzskatīta par derīgu, kas ļauj lietotājam ievietot derīgu pirkstu nospiedumu. Pretējā gadījumā tajā tiks parādīta nederīga licence.
if ((strncmp (ievade, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Derīga licence"); lcd.setCursor (0, 1); lcd.print ("Welcome"); kavēšanās (1000); a = 1; pirksta nospiedums (); }
Nākamajā solī tiek ierakstīta funkcija getFingerprintID, kas atgriezīs derīgu pirksta nospieduma ID jau reģistrētam pirksta nospiedumam.
int getFingerprintID () { uint8_t p = finger.getImage (); ja (p! = FINGERPRINT_OK) atgriež -1; p = pirksts.attēls2Tz (); ja (p! = FINGERPRINT_OK) atgriež -1; p = finger.fingerFastSearch (); ja (p! = FINGERPRINT_OK) atgriež -1; atgriezties finger.fingerID; }
Funkcijas pirksta nospiedums () , kas tiek izsaukts pēc veiksmīgas RFID saskaņošanas, funkcija getFingerprintID tiek izsaukta, lai iegūtu derīgu pirksta nospieduma ID. Tad tas tiek salīdzināts, izmantojot cilni if-else, lai iegūtu informāciju par autentificētu personu datiem, un, ja dati ir saskaņoti, tad transportlīdzeklis tiek aizdedzināts, pretējā gadījumā tas pieprasa nepareizu pirkstu nospiedumu.
int pirkstu nospiedumuID = getFingerprintID (); kavēšanās (50); if (pirksta nospieduma ID == 1) { lcd.setCursor (0, 0); lcd.print ("Piekļuve piešķirta"); lcd.setCursor (0, 1); lcd.print ("Sākts transportlīdzeklis"); digitalWrite (9, HIGH); digitalWrite (10, LOW); kamēr (1); }
Tā darbojas šī RFID automašīnas aizdedzes sistēma, kas jūsu automašīnai piešķir divus drošības līmeņus.
Pilns kods un demonstrācijas video ir sniegti zemāk.