Tässä artikkelissa aiomme tutustua RFID-piiritekniikkaan. Tutkimme kuinka RFID-tunnisteet ja lukijat toimivat, kuinka liittää RFID-moduuli (RC522) Arduinoon ja poimia hyödyllistä tietoa RFID-tunnisteista.
RFID-tunnisteiden käyttö
Olen varma, että jokainen teistä on käyttänyt RFID: tä saadakseen pääsyn tietoturvaan ainakin kerran toimistossa, koulussa, yliopistossa, kirjastossa jne.
Tarrassa / kortissa, jota kannat mukana, on upotettu elektroninen siru, siru tallentaa henkilöllisyytesi sähköisesti. Toisin kuin viivakoodeissa, joissa kortin tulisi olla lukijan näköyhteydessä, RFID-tunnukset voidaan sijoittaa aivan lukijan lähelle lukemaan tietoja.
Suurin osa älykorteistamme käyttää passiivista RFID-tekniikkaa, mikä tarkoittaa, että virtaa ei tarvita tietojen lukemiseen kortilta. Lukija antaa virran RFID-sirulle ja poimii tietoja samanaikaisesti.
Tämäntyyppiset tunnisteet voivat lukea tietoja millimetreistä muutamiin jalkoihin tunnisteesta ja sovelluksesta riippuen.
Aktiiviset RFID-tunnisteet saavat virtaa ulkoisesti, tämän tyyppiset tunnisteet lähettävät tietoa jopa 100 jalkaan. Akun virrankulutus on optimoitu kestämään muutama vuosi.
Tässä projektissa tarkastelemme passiivista RFID-tekniikkaa. Käytämme RC522-lukijamoduulia yhdessä arduinon kanssa tietojen purkamiseen ja näyttämiseen. RC522-moduuli on yleisesti saatavana verkkokaupan verkkosivustoilla ja paikallisessa elektroniikkasarjakaupassa.
Kuva RC522-lukija- / kirjoitinmoduulista:
Kortti- ja avaimenperätyyppiset tunnisteet:
Kuten voimme nähdä, osa piirilevystä on ympäröity johtamalla neliön muotoinen polku lukijaan, mikä tuottaa sähkömagneettisen kentän tagille 13,56 MHz: n taajuudella.
Tunniste valitsee generoidun EMF: n ja muuntaa sen riittäväksi jännitteeksi tagin toimimiseksi, tag lähettää tarvittavat tiedot pulssimuodossa takaisin lukijalle. Sisäinen mikrokontrolleri dekoodaa tiedot.
Kuinka se toimii
Kaavio on erittäin helppo ja itsestään selvä, muutama hyppyjohto riittää tämän projektin toteuttamiseen. Aiomme virrata arduinon ja RFID: n tietokoneen USB-portin kautta. RC522: n käyttöjännite on 3,3 V, älä kytke 5 V: n syöttöä moduuliin ja vahingoittaa sisäisiä komponentteja.
Arduino RFID-piirin prototyyppi:
Siinä kaikki laitteistoyhteydet, nyt siirrytään koodaukseen.
Ennen kuin lataat ohjelman, lataa kirjastotiedosto seuraavasta linkistä ja siirry arduino IDE: n kirjastokansioon.
github.com/miguelbalboa/rfid.git
Ohjelmakoodi:
//-------------------------Program developed by R.Girish------------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID:')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//-------------------------Program developed by R.Girish------------------//
Okei! Mitä yllä oleva ohjelma on suunniteltu toimimaan?
Yllä oleva ohjelma näyttää tunnisteen UID: n IDE-sarjassa, kun skannaat lukijalla. UID on tunnisteen yksilöllinen tunnistenumero, sitä ei voi muuttaa, ja valmistaja on asettanut sen.
LÄHTÖ:
Korttisi UID: FA: 4E: B2 // tämä on esimerkki.
Huomautus 1: Kumpikin arvo on erotettu kaksoispisteellä, mikä tapahtuu ohjelman avulla. Todellisia arvoja ei saa erottaa kaksoispisteellä, vaan välilyönnillä.
Huomautus 2: Vain NXP: n valmistamat RFID-tunnisteet ovat luettavissa / kirjoitettavissa ehdotetulla asetuksella, niitä käytetään yleisesti ja kaupallisesti.
UID: tä käytetään tunnistamaan tunniste, johon pakkauksen mukana tuleva tunniste voi tallentaa enintään 1 kt tietoa. On muitakin kortteja, joihin voi tallentaa jopa 4 kt tietoa tai jopa enemmän.
Tietojen tallennus- ja poimintaprosessi on toisen artikkelin aiheena.
Jos sinulla on kysyttävää tästä projektista, kysy vapaasti kommenttiosasta.
Pari: Barometrisen paineanturin piiri - työ- ja rajapintatiedot Seuraava: Triac-vaiheen hallinta käyttämällä PWM-ajan suhteellista osuutta