- Mga Ginamit na Materyal
- EM18 RFID Reader Module
- Alamin ang RFID Tag Natatanging 12 digit na Code gamit ang Arduino
- Diagram ng Circuit
- Module ng Sensor ng Finger Print
- Programming para sa RFID Keyless Ignition
Ngayong mga araw na ito ang karamihan sa kotse ay may kasamang walang pasok na key at push-button ignition system, kung saan kailangan mo lamang dalhin ang susi sa iyong bulsa at kailangan mo lamang ilagay ang iyong daliri sa capacitive sensor sa hawakan ng pinto upang buksan ang pintuan ng kotse. Dito sa proyektong ito, nagdaragdag kami ng ilang higit pang mga tampok sa seguridad sa sistemang ito sa pamamagitan ng paggamit ng RFID at Fingerprint sensor. Patunayan ng RFID sensor ang lisensya ng gumagamit at papayagan lamang ng sensor ng fingerprint ang isang awtorisadong tao sa sasakyan.
Para sa Fingerprint Base Car Ignition System na ito, gumagamit kami ng Arduino na may R305 Fingerprint sensor at isang EM18 RFID reader.
Mga Ginamit na Materyal
- Arduino Nano
- R305 Fingerprint sensor
- EM18 RFID reader
- 16 * 2 Alphanumeric LCD
- DC motor
- L293D Motor driver IC
- Veroboard o Breadboard (Alinman ang magagamit)
- Mga kumokonekta na mga wire
- 12V DC Baterya
EM18 RFID Reader Module
Ang RFID ay nangangahulugang pagkakakilala sa dalas ng radyo. Ito ay tumutukoy sa isang teknolohiya, kung saan naka-encode ang mga digital na data sa mga RFID tag at maaari silang mai-decode ng isang RFID reader na gumagamit ng mga radio wave. Ang RFID ay katulad ng barcoding kung saan ang data mula sa isang tag ay na-decode ng isang aparato. Ginagamit ang teknolohiyang RFID sa iba't ibang mga application tulad ng Security system, system ng pagdalo ng empleyado, RFID Door Lock, RFID Base Voting Machine, Toll Collection System, atbp.
Ang EM18 Reader ay isang module na maaaring basahin ang impormasyon ng ID na nakaimbak sa mga RFID tag. Ang mga tag ng RFID ay nag-iimbak ng 12 digit na natatanging numero na maaaring mai-decode ng isang module ng mambabasa ng EM18, kapag ang tag ay nasa saklaw ng Reader. Ang module na ito ay nagpapatakbo sa dalas ng 125 kHz, na kung saan ay nagkakaroon ng isang inbuilt na antena, at pinatatakbo ito gamit ang isang 5 volt DC power supply.
Nagbibigay ito ng isang output ng serial data, at mayroon itong saklaw na 8-12 cm. Ang mga serial parameter ng komunikasyon ay 8 data bit, 1 stop bit, at 9600 baud rate.
Mga Tampok ng EM18:
- Operating boltahe: + 4.5V hanggang + 5.5V DC
- Kasalukuyang pagkonsumo: 50mA
- Dalas ng pagpapatakbo: 125KHZ
- Temperatura sa pagpapatakbo: 0-80 degree C
- Rate ng Baud sa Komunikasyon: 9600
- Distansya ng pagbabasa: 8-12 cm
- Antenna: Inbuilt
EM18 Pinout:
Paglalarawan ng pin:
VCC: 4.5- 5V DC input ng boltahe
GND: Ground pin
Buzzer: Buzzer o LED pin
TX: Serial data Transmitter pin ng EM18 para sa RS232 (Output)
SEL: Dapat itong maging TAAS para sa paggamit ng RS232 (LOW kung gumagamit ng WEIGAND)
Data 0: WEIGAND data 0
Data 1: WEIGAND data 1
Upang matuto nang higit pa tungkol sa RFID at mga tag, suriin ang aming nakaraang mga proyekto batay sa RFID.
Alamin ang RFID Tag Natatanging 12 digit na Code gamit ang Arduino
Bago i-program ang Arduino para sa Arduino car ignition system, una, kailangan nating alamin ang 12 digit na RFID tag na natatanging code. Tulad ng tinalakay namin dati, ang mga tag ng RFID ay naglalaman ng isang 12 digit na natatanging code at maaari itong mai-decode sa pamamagitan ng paggamit ng isang RFID reader. Kapag na-swipe namin ang tag na RFID malapit sa Reader, bibigyan ng Reader ang natatanging mga code sa pamamagitan ng output serial port. Una, ikonekta ang Arduino sa RFID reader ayon sa bawat diagram ng circuit at pagkatapos ay i-upload sa ibaba ang ibinigay na code sa Arduino.
int count = 0; char card_no; void setup () {Serial.begin (9600); } void loop () {if (Serial.available ()) {count = 0; habang (Serial.available () && count <12) {card_no = Serial.read (); bilangin ++; antala (5); } Serial.print (card_no); }}
Pagkatapos ng matagumpay na pag-upload ng code, buksan ang serial monitor, at itakda ang rate ng baud sa 9600. Pagkatapos ay i-swipe ang card malapit sa Reader. Pagkatapos ang 12 digit na code ay magsisimulang ipakita sa serial monitor. Gawin ang prosesong ito para sa lahat ng ginamit na mga tag ng RFID at itala ito para sa mga sanggunian sa hinaharap.
Diagram ng Circuit
Ang diagram ng circuit para sa Fingerprint based Ignition System na ito ay ibinibigay sa ibaba:
Sa aking kaso, na-solder ko ang kumpletong circuit sa perf board tulad ng ipinakita sa ibaba:
Module ng Sensor ng Finger Print
Ang Finger Print Sensor Module o Finger Print Scanner ay isang module na kinukuha ang imahe ng print ng daliri at pagkatapos ay i-convert ito sa katumbas na template at nai-save ang mga ito sa memorya nito sa napiling ID (lokasyon) ni Arduino. Dito ang lahat ng proseso ay iniutos ng Arduino tulad ng pagkuha ng isang imahe ng isang fingerprint, i-convert ito sa mga template, at pag-iimbak ng lokasyon, atbp.
Ginamit namin dati ang parehong sensor ng R305 upang bumuo ng isang machine sa pagboto, sistema ng pagdalo, sistema ng seguridad, atbp. Maaari mong suriin ang lahat ng mga proyekto na batay sa pag-print ng daliri dito
Pag-enrol ng mga Fingerprint sa Sensor:
Bago magpatuloy sa programa, kailangan naming i-install ang kinakailangang mga aklatan para sa sensor ng fingerprint. Dito ginamit namin ang " Adafruit_Fingerprint.h " para sa paggamit ng R305 sensor ng fingerprint. Kaya una sa lahat i-download ang library gamit ang link na ibinigay sa ibaba:
- Library ng sensor ng fingerprint ng adafruit
Matapos ang matagumpay na pag-download, Sa Arduino IDE, pumunta sa File > Tools> Isama ang library> Magdagdag ng.zip library at pagkatapos ay piliin ang lokasyon ng zip file upang mai-install ang library.
Matapos ang matagumpay na pag-install sa library, sundin ang mga hakbang na ibinigay sa ibaba upang magpatala ng isang bagong fingerprint sa memorya ng sensor.
1. Sa Arduino IDE, pumunta sa File > Mga Halimbawa > Adafruit Fingerprint Sensor Library > Mag-enrol.
2. I - upload ang code sa Arduino, at buksan ang Serial monitor sa baud rate na 9600.
Mahalaga: Baguhin ang serial serial pin sa programa sa SoftwareSerial mySerial (12, 11).
3. Dapat kang magpasok ng isang ID para sa fingerprint kung saan nais mong itabi ang iyong fingerprint. Dahil ito ang aking unang fingerprint, nag-type ako ng 1 sa kaliwang sulok sa itaas, at pagkatapos, i-click ang Send button.
4. Pagkatapos ang ilaw sa sensor ng fingerprint ay magpikit na nagpapahiwatig na dapat mong ilagay ang iyong daliri sa sensor at pagkatapos nito sundin ang mga hakbang na ipinapakita sa serial monitor hanggang sa kinikilala ka nito para sa matagumpay na pagpapatala.
Programming para sa RFID Keyless Ignition
Ang kumpletong code para sa Biometric Ignition System na ito ay ibinibigay sa pagtatapos ng tutorial. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Ang unang bagay ay upang isama ang lahat ng mga kinakailangang aklatan. Dito sa aking kaso, isinama ko ang " Adafruit_Fingerprint.h " para sa paggamit ng R305 sensor ng fingerprint. Pagkatapos ay i-configure ang serial port kung saan makakonekta ang sensor ng fingerprint. Sa aking kaso, idineklara kong 12 bilang RX Pin at 11 bilang isang TX pin.
# isama ang # isama
Sa susunod na hakbang, ideklara ang lahat ng mga variable, na magagamit sa buong code. Pagkatapos tukuyin ang mga pin ng koneksyon sa LCD na may Arduino na sinusundan ng pagdeklara ng isang bagay ng klase ng LiquidCrystal .
input ng 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);
Susunod, sa loob ng loop (), ang code ay nakasulat upang makuha ang natatanging 12 digit na mga code ng mga RFID tag at nakaimbak ang mga ito sa isang array. Dito maitutugma ang mga elemento ng array sa mga nakaimbak na natatanging mga code sa memorya, upang makuha ang mga detalye ng na-authenticate na tao.
bilangin = 0; habang (Serial.available () && count <12) { input = Serial.read (); bilangin ++; antala (5); }
Pagkatapos, ang natanggap na array ay inihambing sa mga nakaimbak na mga code ng tag. Kung ang code ay naitugma, pagkatapos ang lisensya ay isinasaalang-alang bilang wasto, na nagpapahintulot sa gumagamit na maglagay ng wastong fingerprint. Kung hindi man, magpapakita ito ng hindi wastong lisensya.
kung ((strncmp (input, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Valid ng Lisensya"); lcd.setCursor (0, 1); lcd.print ("Maligayang pagdating"); pagkaantala (1000); a = 1; fingerprint (); }
Sa susunod na hakbang, nakasulat ang isang pagpapaandar na getFingerprintID na magbabalik ng wastong fingerprint ID para sa isang naka-enrol na fingerprint.
int getFingerprintID () { uint8_t p = daliri.getImage (); kung (p! = FINGERPRINT_OK) ibalik -1; p = daliri.image2Tz (); kung (p! = FINGERPRINT_OK) ibalik -1; p = daliri.fingerFastSearch (); kung (p! = FINGERPRINT_OK) ibalik -1; ibalik ang daliri.fingerID; }
Sa loob ng pagpapaandar ng fingerprint () , na kung saan ay tinawag pagkatapos ng matagumpay na tugma sa RFID, ang function na getFingerprintID ay tinawag upang makakuha ng wastong fingerprint ID. Pagkatapos ay ihinahambing ito gamit ang if-else loop upang makuha ang impormasyon tungkol sa na-authenticate na data ng tao at kung ang data ay naitugma, pagkatapos ang sasakyan ay masunog, kung hindi man, mag-uudyok ito para sa maling Fingerprint.
int fingerprintID = getFingerprintID (); antala (50); kung (fingerprintID == 1) { lcd.setCursor (0, 0); lcd.print ("Access Granted"); lcd.setCursor (0, 1); lcd.print ("Sinimulan ang Sasakyan"); digitalWrite (9, TAAS); digitalWrite (10, LOW); habang (1); }
Kaya't ganito gumagana ang RFID Car Ignition System na nagdaragdag ng dalawang layer ng seguridad sa iyong sasakyan.
Ang kumpletong Code at video ng demonstrasyon ay ibinibigay sa ibaba.