Interfacing RCTOP 102 RFID -sensor med Arduino Uno

Interfacing RCTOP 102 RFID -sensor med Arduino Uno
Arduino Uno er et mikrokontrollerbasert brett som har flere GPIO-pinner for grensesnittssensorer, aktuatorer og ekstern maskinvare. I denne opplæringen vil Arduino UNO være koblet til RFID -sensorer ved bruk av Arduino -koden. RC522 er en SPI -basert smart sensor som kan lese RFID -kort, tagger og smarte band.

Innhold dekket i denne artikkelen:

  • 1: Introduksjon til RC522 -sensor
  • 2: RC522 Sensor Pinout
  • 3: Grensesnitt RC522 RFID -sensor med Arduino Uno
  • 3.1: Skjematisk
  • 3.2: Installere de nødvendige bibliotekene
  • 3.3: Få uid for RFID -kort/tag
  • 4: Leser en RFID -tagg ved hjelp av Arduino Uno
  • 4.1: Kode
  • 4.2: Output
  • Konklusjon

1: Introduksjon til RC522 -sensor

MFRC522 er en RFID -basert kontaktløs IC som kan lese og skrive data med en frekvens på 13.56 MHz. Den er designet for enkel integrasjon i et bredt spekter av applikasjoner, inkludert tilgangskontrollsystemer, betalingsterminaler og andre systemer som krever sikker trådløs kommunikasjon.

Sensoren har et lavt strømforbruksdesign og er i samsvar med ISO/IEC 14443 A/Mifare Standard, som lar den kommunisere med et bredt spekter av kontaktløse kort og tagger.

I tillegg har MFRC522 en innebygd antenne, noe som gjør det til en praktisk og kompakt løsning for å legge til kontaktløse kommunikasjonsevner til et prosjekt.

2: RC522 Sensor Pinout

Sensoren har totalt 8 pinner som grenser den til en mikrokontroller eller annen kontrollenhet. Pinout av MFRC522 -sensoren er som følger:

De SDA, SCK, Mosi, og Miso Pinner brukes til å grensesnitt MFRC522-sensoren med en mikrokontroller via et 4-ledig seriell perifert grensesnitt (SPI) kommunikasjonsprotokoll.

De Irq PIN kan brukes til å generere et avbrudd når visse hendelser oppstår, for eksempel et vellykket kort- eller taglesing, men det brukes ikke ofte i mange prosjekter.

De GND PIN -en kobles til bakken til kretsen, og RST PIN brukes til å tilbakestille sensoren.

Til slutt 3.3V PIN brukes til å levere strøm til sensoren.

Det er viktig å merke seg at disse pin -navnene kan variere litt avhengig av den spesifikke modulen, så det er alltid best å konsultere produsentens datablad for riktig pinout -informasjon.

3: Grensesnitt RC522 RFID -sensor med Arduino Uno

Grensesnitt. Dette biblioteket gir et brukervennlig sett med funksjoner for å få tilgang til sensorens funksjonalitet, inkludert funksjoner for lesing og skrive data til kontaktløse kort og tagger.

Når biblioteket er installert, kan du finne et eksempel i eksempler -menyen som viser hvordan du initialiserer sensoren og kommuniserer med et kort eller etikett. I skissen er det viktig å angi riktige pin -tilkoblinger mellom Arduino og MFRC522 -sensoren, for eksempel SPI -pinnene, tilbakestillingspinnen og andre, i henhold til modellen til Arduino -brettet som brukes.

Med riktig ledning og biblioteket riktig installert, vil Arduino kunne kommunisere med MFRC522 -sensoren og utføre de ønskede handlingene som å lese og skrive til kort og tagger.

3.1: Skjematisk

RC522 Skjematisk bilde med Arduino Uno er vist nedenfor:

3.2: Installere de nødvendige bibliotekene

MFRC522 Bibliotek er nødvendig for å lese RFID -kortet og tagger Uid. Åpne IDE, gå til Library Manager og søk etter MFRC522 -biblioteket. Installer biblioteket i Arduino IDE:

Etter å ha installert MFRC522 -biblioteket vil vi lese UID for RFID -koder og kort.

3.3: Få uid for RFID -kort/tag

Åpne Dumpinfo Eksempel for MFRC522 sensor. Gå til: Fil> Eksempler> MFRC522> Dumpinfo:

Følgende kode åpnes i et nytt IDE -vindu. Last opp koden til Arduino Uno. Husk å angi tilbakestillingen og slave Velg PIN i henhold til Arduino -styret ditt. Enhver av Arduino digitale pinner kan settes som RST og Ss:

Etter å ha lastet opp kode til Arduino Uno. Berør og hold RFID -kortet/taggen med MFRC522 Sensor:

Sensor vil lese dataene som er lagret inne i RFID -taggen og vise dem på seriemonitoren. Her kan vi se Uid for RFID -tagger 02 DC B4 C3.

Totalt 16 (0-15) sektorer der RFID kort/tag 1K minne er organisert. Fire (0-3) blokker er inkludert i hver av disse 16 sektorene. Hver blokk har kapasitet til å lagre 16 (0-15) byte med data.

Disse dataene representerer det:

16 sektorer x 4 blokker x 16 byte data = 1024 byte = 1K minne

Arduino IDE Serial Monitor viser USAs distribusjon av 1K minne av RFID -taggen. Denne distribusjonen inneholder også sektorer, blokker og datainformasjon i rader og kolonner i utgangsdataene:

Du kan også lese den unike ID -en (Uid) for kortet på slutten av utgangen:

4: Leser en RFID -tagg ved hjelp av Arduino Uno

Nå har vi lest den unike ID (UID) for RFID -taggen. Vi vil skrive en Arduino -kode som lagrer denne kortinformasjonen og gir tilgang til brukeren hvis RFID -taggen med samme uid er tappet med MFRC522 -sensoren.

4.1: Kode

Åpne IDE, velg UNO -kort og last opp den gitte koden:

/*
****************
Linuxhint.com
****************
Linuxhint.com
****************
*/
#inkludere
#inkludere
#Define SS_PIN 10 /*Slave Select Pin* /
#Define RST_PIN 9 /*Tilbakestill pin for RC522* /
#Define LED_G 8 /*PIN 8 for LED* /
MFRC522 MFRC522 (SS_PIN, RST_PIN); /*Opprett mfrc522 initialisert*/
ugyldig oppsett ()

Serie.Begynn (9600); /*Seriell kommunikasjon begynner*/
Spi.begynne(); /*SPI -kommunikasjon initialisert*/
MFRC522.Pcd_init (); /*RFID -sensor initialisert*/
pinmode (LED_G, utgang); /*LED -pinne satt som utgang*/
Serie.Println ("Sett kortet ditt til leseren ...");
Serie.println ();

ugyldig sløyfe ()

/*Se etter RFID -kortet*/
hvis ( ! MFRC522.Picc_isnewcardpresent ())

komme tilbake;

/*Velg kort*/
hvis ( ! MFRC522.Picc_readcardserial ())

komme tilbake;

/*Vis uid for kort/tag på seriell skjerm*/
Serie.print ("uid tag:");
Strenginnhold = "";
byte brev;
for (byte i = 0; i < mfrc522.uid.size; i++)

Serie.Print (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " ");
Serie.Print (MFRC522.uid.uidbyte [i], hex);
innhold.Concat (String (MFRC522.uid.uidbyte [i] < 0x10 ? " 0" : " "));
innhold.Concat (String (MFRC522.uid.uidbyte [i], hex));

Serie.println ();
Serie.print ("melding:");
innhold.touppercase ();
hvis (innhold.SUBSTRING (1) == "02 DC B4 C3")/*UID For kortet/taggen vil vi gi tilgang erstatt med kortet ditt uid*/

Serie.println ("autorisert tilgang"); /*Skriv ut melding hvis uid samsvarer med databasen*/
Serie.println ();
forsinkelse (500);
DigitalWrite (LED_G, High); /*LED slå på*/
forsinkelse (2500);
DigitalWrite (LED_G, lav);

annet
Serie.println ("tilgang nektet"); /*Hvis uid ikke samsvarer med utskriftsmelding*/

Kode startet med å inkludere SPI- og MFRC522 -biblioteket. Deretter definerte vi tilbakestillingen og slavens valgt pinne for sensoren. En LED ved pinne D8 initialiseres som utgang.

RFID -kortet som vi vil lese blir initialisert ved å definere uid. Dette er det samme uid vi fikk ved å bruke Dumpinfo Eksempelkode.

An HVIS Tilstanden vil sjekke UID for kortet som er tappet med sensoren. Hvis UID samsvarer med den inne i kode -LED vil slå på og autorisert tilgangsmelding vil bli skrevet ut, ellers vil LED forbli av og tilgangs nektet melding vil vises hvis noe annet kort tappes.

4.2: Output

I utgangen kan vi se at RFID -taggen ikke tappes med MFRC522 -sensor, så ingen LED er på:

Berør eller ta med RFID -kortet/taggen i nærheten av sensoren som følger utdata vil vises på seriemonitoren som viser kortet UID:

LED er slått på hvis tilgangen er gitt og UID stemmer overens med den vi definerte inne i koden.

Vi har fullført grensesnitt til RFID -tag med RC522 -sensor ved bruk av Arduino Uno Board og IDE.

Konklusjon

Arduino er et kompakt brett med en rekke GPIO -pinner til grensesnittsensorer og maskinvare. Arduino har innebygd støtte for UART-, SPI- og I2C-protokoll som tillater bruk av sensorer ved bruk av disse Arduino-kommunikasjonsprotokollene. Denne artikkelen dekker Arduino UNO -grensesnitt med RC522 -sensor og kode som kreves for å lese et hvilket som helst RFID -kort/tagg.