Innhold dekket i denne artikkelen:
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 -koden kobles til bakken på kretsen, og den første pinnen 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 Nano
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.
1: Skjematisk
RC522 Skjematisk bilde med Arduino Nano er vist nedenfor:
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: 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 Nano. 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 Nano. 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 Nano
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.
1: Kode
Åpne IDE, velg Nano Board 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.
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 av RFID -taggen med RC522 -sensor ved bruk av Arduino Nano Board og IDE.
Konklusjon
Arduino Nano er et kraftbevarende brett som har flere GPIO -pinner for å ta innspill fra forskjellige sensorer. Arduino Nano kommer med innebygd støtte for UART-, SPI- og I2C-protokoll som tillater bruk av sensorer ved bruk av disse Arduino-kommunikasjonsprotokollene. Denne artikkelen dekker Arduino Nano -grensesnitt med RC522 -sensor og kode som kreves for å lese et hvilket som helst RFID -kort/tagg.