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 -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 ESP32
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 ESP32 og MFRC522 -sensoren, for eksempel SPI -pinnene, tilbakestillingspinnen og andre, i henhold til modellen til ESP32 -brettet som brukes.
Med riktig ledning og biblioteket riktig installert, vil ESP32 kunne kommunisere med MFRC522 -sensoren og utføre de ønskede handlingene som å lese og skrive til kort og tagger.
For mer informasjon om ESP32 SPI -protokoll Og arbeid Les artikkelen ESP32 SPI -pinner.
3.1: Skjematisk
RC522 Skjematisk bilde med ESP32 er vist nedenfor:
3.2: Installere de nødvendige bibliotekene
MFRC522 Bibliotek er nødvendig for å lese RFID -kortet og kodene 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 ESP32. Husk å angi tilbakestilling og slave velg PIN i henhold til styret ditt. Noen av ESP32 digitale pinner kan settes som RST og Ss:
Etter å ha lastet opp kode til ESP32. 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: Lese en RFID -tagg ved hjelp av ESP32
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 ESP32 -kort og last opp gitt kode.
/*Kode startet med å inkludere SPI- og MFRC522 -biblioteket. Deretter definerte vi tilbakestillingen og slavens valgt pinne for sensoren. En LED ved pinne D12 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 -sensoren, så LED er av.:
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 -tag med RC522 -sensor ved bruk av ESP32 -brett og IDE.
Konklusjon
ESP32 er et IoT -brett som inneholder alle nødvendige kommunikasjonsgrensesnitt for utveksling av data mellom forskjellige enheter. ESP32 har flere GPIO -pinner for å lese data fra sensorer. Å bruke SPI -protokollen ESP32 kan lese RFID -sensordata og flere prosjekter kan utformes. Denne artikkelen dekker ESP32 -grensesnitt med RC522 -sensor og kode som kreves for å lese et hvilket som helst RFID -kort/tagg.