- Käytetyt materiaalit
- EM18 RFID-lukijamoduuli
- Selvitä RFID-tunnisteiden yksilöllinen 12-numeroinen koodi Arduinolla
- Piirikaavio
- Sormenjälkitunnistinmoduuli
- Ohjelmointi avaimetonta RFID-sytytystä varten
Nykyään suurimmasta osasta autoa tulee avaimeton sisäänkäynti ja painonappisytytysjärjestelmä, jossa vain avain on taskussa ja sinun on vain laitettava sormesi ovenkahvan kapasitiiviseen anturiin auton oven avaamiseksi. Tässä projektissa lisätään tähän järjestelmään vielä muutama turvaominaisuus käyttämällä RFID- ja sormenjälkitunnistimia. RFID-anturi vahvistaa käyttäjän lisenssin ja sormenjälkitunnistin päästää ajoneuvoon vain valtuutetun henkilön.
Tähän sormenjälkipohjaiseen auton sytytysjärjestelmään käytämme Arduinoa, jossa on R305-sormenjälkitunnistin ja EM18-RFID-lukija.
Käytetyt materiaalit
- Arduino Nano
- R305 Sormenjälkitunnistin
- EM18 RFID-lukija
- 16 * 2 aakkosnumeerinen LCD-näyttö
- DC-moottorit
- L293D-moottorin ohjaimen IC
- Veroboard tai leipälauta (kumpi on saatavana)
- Johtojen liittäminen
- 12 V DC -akku
EM18 RFID-lukijamoduuli
RFID tarkoittaa radiotaajuustunnistusta. Se viittaa tekniikkaan, jossa digitaalinen data koodataan RFID-tunnisteisiin ja RFID-lukija voi dekoodata ne radioaaltoja käyttämällä. RFID on samanlainen kuin viivakoodaus, jossa laite dekoodaa tunnisteen tiedot. RFID-tekniikkaa käytetään erilaisissa sovelluksissa, kuten turvajärjestelmässä, työntekijöiden läsnäolojärjestelmässä, RFID-ovilukossa, RFID-pohjaisessa äänestyskoneessa, tietullijärjestelmässä jne.
EM18 Reader on moduuli, joka pystyy lukemaan RFID-tunnisteisiin tallennetut ID-tiedot. RFID-tunnisteet tallentavat 12-numeroisen yksilöllisen numeron, joka voidaan dekoodata EM18-lukijamoduulilla, kun tunniste tulee lukijan kantama-alueelle. Tämä moduuli toimii taajuudella 125 kHz, jolla on sisäänrakennettu antenni, ja sitä käytetään 5 voltin tasavirtalähteellä.
Se antaa sarjatiedot, ja sen alue on 8-12 cm. Sarjaliikenneparametrit ovat 8 databittiä, 1 pysäytysbitti ja 9600 baudinopeutta.
EM18-ominaisuudet:
- Käyttöjännite: + 4,5 V - 5,5 V DC
- Virrankulutus: 50mA
- Toimintataajuus: 125KHz
- Käyttölämpötila: 0-80 ° C
- Tiedonsiirtonopeus: 9600
- Lukemaetäisyys: 8-12 cm
- Antenni: Sisäänrakennettu
EM18 Pinout:
Tapin kuvaus:
VCC: 4,5 - 5 V DC-jännitetulo
GND: Maadoitettu tappi
Summeri: Summeri tai LED-tappi
TX: Sarjatietolähetin EM18 RS232: lle (lähtö)
SEL: Tämän on oltava HIGH RS232: n käyttöä varten (LOW, jos käytetään WEIGANDia)
Data 0: WEIGAND-data 0
Tiedot 1: WEIGAND-tiedot 1
Jos haluat lisätietoja RFID: stä ja tunnisteista, tarkista edelliset RFID-pohjaiset projektimme.
Selvitä RFID-tunnisteiden yksilöllinen 12-numeroinen koodi Arduinolla
Ennen kuin ohjelmoimme Arduino for Arduino -auton sytytysjärjestelmän, meidän on ensin selvitettävä 12-numeroinen RFID-tunnisteiden yksilöllinen koodi. Kuten aiemmin keskustelimme, RFID-tunnisteet sisältävät 12-numeroisen yksilöllisen koodin, ja se voidaan dekoodata käyttämällä RFID-lukijaa. Kun pyyhkäisemme RFID-tunnistetta lähellä lukijaa, lukija antaa yksilölliset koodit lähtösarjaportin kautta. Liitä ensin Arduino RFID-lukijaan piirikaavion mukaisesti ja lataa sitten annettu koodi alle Arduinoon.
int-määrä = 0; char card_no; void setup () {Sarja.alku (9600); } void loop () {if (Serial.available ()) {count = 0; while (Sarja.available () && count <12) {card_no = Sarja.read (); laskea ++; viive (5); } Sarjaprintti (kortin_nro); }}
Kun olet ladannut koodin onnistuneesti, avaa sarjamonitori ja aseta siirtonopeudeksi 9600. Pyyhkäise sitten kortti Readerin lähellä. Sitten 12-numeroinen koodi alkaa näkyä sarjamoduulissa. Tee tämä prosessi kaikille käytetyille RFID-tunnisteille ja merkitse se muistiin tulevia viitteitä varten.
Piirikaavio
Tämän sormenjälkipohjaisen sytytysjärjestelmän kytkentäkaavio on annettu alla:
Minun tapauksessani olen juotettu koko piiri täydelliselle levylle kuten alla on esitetty:
Sormenjälkitunnistinmoduuli
Sormenjälkitunnistinmoduuli tai sormenjälkitunnistin on moduuli, joka sieppaa sormenjälkikuvan ja muuntaa sen sitten vastaavaksi malliksi ja tallentaa ne muistiinsa Arduinon valitsemalle tunnukselle (sijainti). Täällä Arduino komentaa kaiken prosessin, kuten kuvan ottamisen sormenjäljestä, muuntamisen malliksi ja sijainnin tallentamisen jne.
Aikaisemmin käytimme samaa R305-anturia rakentaaksemme äänestyskoneen, läsnäolojärjestelmän, turvajärjestelmän jne. Voit tarkistaa kaikki sormenjälkipohjaiset projektit täältä.
Sormenjälkien rekisteröinti anturiin:
Ennen kuin jatkat ohjelmaa, meidän on asennettava tarvittavat kirjastot sormenjälkitunnistimelle. Tässä olemme käyttäneet ” Adafruit_Fingerprint.h ” -sormenjälkitunnistinta R305. Joten lataa ensin kirjasto alla olevan linkin avulla:
- Adafruit-sormenjälkitunnistinkirjasto
Onnistuneen latauksen jälkeen siirry Arduino IDE: ssä Tiedosto > Työkalut> Sisällytä kirjasto> Lisää.zip-kirjasto ja valitse sitten zip-tiedoston sijainti kirjaston asentamiseksi.
Kirjaa uusi sormenjälki tunnistimen muistiin noudattamalla onnistuneita kirjastojen asennuksia seuraavien ohjeiden mukaisesti.
1. Valitse Arduino IDE: ssä Tiedosto > Esimerkit > Adafruit Fingerprint Sensor Library > Ilmoittautuminen.
2. Lataa koodi Arduinoon ja avaa sarjamonitori 9600 baudinopeudella.
Tärkeää: Vaihda ohjelman ohjelmistosarjan PIN-koodi SoftwareSerial mySerialiksi (12, 11).
3. Syötä sormenjäljen tunnus, johon haluat tallentaa sormenjäljen. Koska tämä on ensimmäinen sormenjälkeni, kirjoitin 1 vasempaan yläkulmaan ja napsauta sitten Lähetä- painiketta.
4. Sitten sormenjälkitunnistimen valo vilkkuu, mikä osoittaa, että sinun on asetettava sormesi anturin päälle ja noudata sen jälkeen sarjamoduulin ohjeita, kunnes se tunnistaa sinut onnistuneesta rekisteröinnistä.
Ohjelmointi avaimetonta RFID-sytytystä varten
Täydellinen koodi tälle biometriselle sytytysjärjestelmälle annetaan opetusohjelman lopussa. Tässä selitämme muutaman tärkeän osan koodista.
Ensimmäinen asia on sisällyttää kaikki vaaditut kirjastot. Tässä minun tapauksessani olen sisällyttänyt “ Adafruit_Fingerprint.h ” R305-sormenjälkitunnistimen käyttöä varten. Määritä sitten sarjaportti, johon sormenjälkitunnistin liitetään. Minun tapauksessani olen ilmoittanut 12 RX-nastaksi ja 11 TX-nastaksi.
# sisällyttää # sisällytä
Ilmoita seuraavassa vaiheessa kaikki muuttujat, joita käytetään koko koodissa. Määritä sitten LCD-liitäntänastat Arduinon kanssa ja seuraa LiquidCrystal- luokan objektin ilmoittaminen .
char-syöttö; int-määrä = 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);
Seuraavaksi silmukan () sisään kirjoitetaan koodi RFID-tunnisteiden yksilöllisten 12-numeroisten koodien saamiseksi ja ne tallennetaan ryhmään. Täällä matriisin elementit sovitetaan muistiin tallennettujen yksilöllisten koodien kanssa, jotta saadaan todennetut henkilötiedot.
määrä = 0; while (Sarja.käytettävissä () && määrä <12) { input = Sarja.lue (); laskea ++; viive (5); }
Sitten vastaanotettua taulukkoa verrataan tallennettuihin tunnistekoodeihin. Jos koodi täsmää, lisenssi katsotaan päteväksi, minkä avulla käyttäjä voi laittaa kelvollisen sormenjäljen. Muussa tapauksessa se näyttää virheellisen lisenssin.
if ((strncmp (syöttö, "3F009590566C", 12) == 0) && (a == 0)) { lcd.setCursor (0, 0); lcd.print ("Lisenssi voimassa"); lcd.setCursor (0, 1); lcd.print ("Tervetuloa"); viive (1000); a = 1; sormenjälki(); }
Seuraavassa vaiheessa kirjoitetaan funktio getFingerprintID, joka palauttaa kelvollisen sormenjälkitunnuksen jo rekisteröidylle sormenjälkelle.
int getFingerprintID () { uint8_t p = finger.getImage (); jos (p! = FINGERPRINT_OK) palauttaa -1; p = sormi.kuva2Tz (); jos (p! = FINGERPRINT_OK) palauttaa -1; p = finger.fingerFastSearch (); jos (p! = FINGERPRINT_OK) palauttaa -1; palaa sormi.sormenID; }
Sisällä toiminto sormenjälki () , jota kutsutaan onnistuneen RFID ottelu, getFingerprintID toimintoa kutsutaan saamaan kelvollista sormenjälki tunnus. Sitten sitä verrataan if-else -silmukan avulla todennettujen henkilötietojen tietojen saamiseen ja jos tiedot sovitetaan yhteen, ajoneuvo sytytetään, muuten se pyytää väärää sormenjälkeä.
int sormenjälkitunnus = getFingerprintID (); viive (50); if (sormenjälkitunnus == 1) { lcd.setCursor (0, 0); lcd.print ("Käyttöoikeus myönnetty"); lcd.setCursor (0, 1); lcd.print ("Ajoneuvo aloitettu"); digitalWrite (9, HIGH); digitalWrite (10, LOW); kun (1); }
Joten tämä RFID-auton sytytysjärjestelmä toimii näin, mikä lisää autollesi kaksi suojaustasoa.
Täydellinen koodi ja esittelyvideo ovat alla.