Slik Programmerer DU ET RFID-Kort for Prosjektene dine

RFID-brikker ER små, omskrivbare sjetonger som kan lagre små mengder data som navn, adresser, produktinformasjon og mer. De kan ta form av nøkkelringer og kort, eller de kan til og med bli implantert i kjæledyr eller mennesker. HVIS du vil lære hvordan DE fungerer eller legge dem til ditt eget prosjekt, ER EN RFID-leser og forfatter en billig komponent som du kan bruke. Denne guiden vil vise deg hvordan du bruker EN til å skrive TIL DIN EGEN RFID-brikke.

Hvordan RFID-Skribenter Fungerer

RFID-leser/skribentsensorer bruker kortdistanse, laveffekts radiobølger for å overføre data fra koder, hvor dataene er lagret, til den elektroniske enheten sensoren er koblet til. I dette tilfellet skal Vi bruke En Arduino som enhet ved å legge TIL EN RFID-sensor. Spesielt vil vi skrive litt grunnleggende informasjon til EN RFID-tag.

for å gjøre dette, bruker vi dette biblioteket til å lese OG skrive TIL RFID-brikker. SIDEN BRUK AV RFID-brikker er litt mer komplisert enn å slå EN LED på eller av, vil vi stole på eksisterende skisser som du kan integrere i dine egne prosjekter. De forhåndsskrevne funksjonene som disse skissene gir, lar deg lettere integrere dem i dine andre prosjekter.

for å bruke biblioteket, last ned først .zip-fil fra Github-siden ovenfor. Deretter åpner Du Arduino IDE, naviger Til Skisse > Inkluder Bibliotek > Legg til .ZIP Bibliotek … og velg biblioteket du nettopp lastet ned. IKKE bare vil DETTE gjøre DET mulig å inkludere RFID-biblioteket i skissene dine, men du får også en samling av eksempelskisser, som vi trenger senere.

Hva Du Trenger

for dette prosjektet skal vi bare skrive TIL EN RFID-tag. Men husk når vi går gjennom guiden hvordan du kan bruke dette til å utvide dine andre prosjekter. Kanskje du kan utløse en lås for å låse opp når du viser leseren en tag med de riktige dataene på den, for eksempel. For dette grunnleggende prosjektet, skjønt, her er hva du trenger:

Arduino
RFID-sensor (helst EN MFRC-522)
RFID-brikker
Brødfjel & kabling
Arduino IDE
USB-Kabel

SIDEN RFID-brikker er svært små, kan taggen du bruker komme i nesten hvilken som helst form. To AV DE vanligste TYPENE RFID-brikker-ofte kommer i sett eller med sensorer – er små runde nøkkelringer eller flate kort på størrelse med et kredittkort. Når det er sagt, hva tag du har bør fungere.

Koden

hvis du installerte biblioteket som beskrevet ovenfor, bør følgende skisse være tilgjengelig i eksempelboken under Fil > Eksempler > MFRC522 > rfid_write_personal_data. Velg den i eksempelboken din, eller kopier koden nedenfor:

/*
* Skriv personlige data på ET MIFARE RFID-kort ved HJELP AV EN RFID-RC522 leser
* Bruker MFRC522-Bibliotek for Å bruke ARDUINO RFID-MODULSETT 13.56 MHZ MED KODER SPI W OG R AV COOQROBOT.
* ——————————
* MFRC522 Arduino Arduino Arduino Arduino Arduino Arduino Arduino
* Leser / PCD Uno / 101 Mega Nano V3 Leonardo / Micro Pro Mikro
* Signal Pin Pin Pin Pin Pin Pin Pin
* ——————————
* FØRST/Tilbakestill FØRST 9 5 D9 TILBAKESTILLING/ICSP-5 FØRST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 d12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 d13 ICSP-3 15
*
* Maskinvare som kreves:
* Arduino
* PCD( Proximity Coupling Device): NXP Mfrc522 Kontaktløs Leser IC
* PICC( Proximity Integrated Circuit Card): et kort eller en tag ved HJELP AV ISO 14443A-grensesnittet, f.Eks. Mifare eller NTAG203.
* leseren kan bli funnet på eBay for rundt 5 dollar. Søk etter «mf-rc522» på ebay.com.
*/

#inkluder
#inkluder

# define RST_PIN 9 / / Konfigurerbar, se typisk pin layout ovenfor
# define SS_PIN 10 // Konfigurerbar, se typisk pin layout ovenfor

MFRC522 mfrc522(SS_PIN, RST_PIN); // Opprett mfrc522-forekomst

ugyldig oppsett() {
Seriell.begynn (9600); / / Initialiser seriell kommunikasjon MED PCEN
SPI.begynn(); // Init SPI buss
mfrc522.PCD_Init(); // Init MFRC522 kort
Seriell.println (F («Skriv personlige data på EN MIFARE PICC «));
}

void loop() {

// Forbered nøkkel – alle nøkler er satt Til FFFFFFFFFFFFh ved chip levering fra fabrikken.
MFRC522:: MIFARE_Key nøkkel;
for (byte i = 0; i < 6; i++) nøkkel.keyByte = 0xff;

/ / Tilbakestill sløyfen hvis det ikke finnes noe nytt kort på sensoren / leseren. Dette sparer hele prosessen når den er tomgang.
hvis (! mfrc522.PICC_IsNewCardPresent ()) {
retur;
}

// Velg ett av kortene
hvis ( ! mfrc522.PICC_ReadCardSerial ()) {
retur;
}

Seriell.skriv ut (F («Kort UID:»)); / / Dump UID
for (byte i = 0; i < mfrc522.uid.størrelse; i++) {
Seriell.skriv ut(mfrc522.uid.uidByte < 0x10 ? «0» : «»);
Seriell.skriv ut(mfrc522.uid.uidByte, HEX);
}
Seriell.skriv ut (F («PICC type: «)); // Dump PICC type
MFRC522:: PICC_Type piccType = mfrc522.PICC_GetType (mfrc522.uid.sak);
Seriell.println (mfrc522.PICC_GetTypeName(piccType));

byte buffer;
byte blokk;
MFRC522::Statuskode status;
byte len;

Seriell.setTimeout (20000l); / / vent til 20 sekunder for inndata fra seriell
/ / Spør personlige data:Familienavn
Seriell.println (F («Type Etternavn, slutter med#»));
len = Seriell.readBytesUntil (‘# ‘ , (char *) buffer, 30); / / les etternavn fra seriell
for (byte i = len; i < 30; i++) buffer=»;//pad med mellomrom

blokk = 1;
/ / Seriell.println (F («Godkjenning ved hjelp av nøkkel A…»));
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
Serial.print(F(«PCD_Authenticate() failed: «));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
else Serial.println(F(«PCD_Authenticate() success: «));

// Write block
status = mfrc522.MIFARE_Write(block, buffer, 16);
if (status != MFRC522::STATUS_OK) {
Serial.print(F(«MIFARE_Write() failed: «));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
else Serial.println (F («mifare_write () suksess: «));

blokk = 2;
/ / Seriell.println (F («Godkjenning ved hjelp av nøkkel A…»));
status = mfrc522.PCD_Authenticate (MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, & nøkkel, & (mfrc522.uid));
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («PCD_Authenticate () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}

// Skriv blokk
status = mfrc522.MIFARE_Write (blokk, &buffer, 16);
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («MIFARE_Write () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}
annet Seriell.println (F («mifare_write () suksess: «));

// Spør personlige data:Fornavn
Seriell.println (F («Skriv Fornavn, slutter med#»));
len = Seriell.readBytesUntil (‘# ‘ , (char *) buffer, 20); / / les fornavn fra serie
for (byte i = len; i < 20; i++) buffer=»; / / pad med mellomrom

blokk = 4;
/ / Seriell.println (F («Godkjenning ved hjelp av nøkkel A…»));
status = mfrc522.PCD_Authenticate (MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, & nøkkel, & (mfrc522.(uid));
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («PCD_Authenticate () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}

// Skriv blokk
status = mfrc522.MIFARE_Write (blokk, buffer, 16);
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («MIFARE_Write () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}
annet Seriell.println (F («mifare_write () suksess: «));

blokk = 5;
/ / Seriell.println (F («Godkjenning ved hjelp av nøkkel A…»));
status = mfrc522.PCD_Authenticate (MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, & nøkkel, & (mfrc522.uid));
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («PCD_Authenticate () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}

// Skriv blokk
status = mfrc522.MIFARE_Write (blokk, &buffer, 16);
hvis (status != MFRC522:: STATUS_OK) {
Seriell.skriv ut (F («MIFARE_Write () failed:»));
Seriell.println (mfrc522.GetStatusCodeName (status));
retur;
}
annet Seriell.println (F («mifare_write () suksess: «));

Seriell.println ( «» );
mfrc522.PICC_HaltA(); // Stopp PICC
mfrc522.PCD_StopCrypto1 (); / / Stopp kryptering PÅ PCD

}

Last opp denne koden, og (etter kabling opp prosjektet som beskrevet nedenfor) kan du umiddelbart begynne å skrive data TIL RFID-brikker.

en av fordelene med å bruke biblioteker som dette er at du kan finne deler av koden som allerede er skrevet, slik at du ikke trenger å gjenoppfinne hjulet for hvert prosjekt. Denne gangen skal vi ikke gå gjennom koden linje for linje. I stedet, la oss snakke litt mer om hva koden gjør.

DATA I RFID-brikker lagres i seksjoner som kalles sektorer, som videre er delt inn i blokker. Hver blokk kan inneholde noen få byte med data. Mengden avhenger av den spesifikke taggen, men en vanlig 1k passiv tag (som betyr en tag som kan lagre 1 kilobyte data) kan for eksempel ha 16 sektorer, hver med 4 blokker, med hver blokk i stand til å lagre opptil 16 byte data.

denne skissen skal bare lagre for-og etternavnet ditt, så det trenger bare en sektor, men det vil spre dataene ut over flere blokker, siden navnene dine kan ta opp mer data enn det som passer i en enkelt blokk (og for organisatorisk bekvemmelighet).

når du kjører skriptet, blir du bedt om å oppgi familienavnet ditt, som deretter skrives til blokker PÅ RFID-brikken. Deretter får du en melding om å skrive fornavnet ditt, som vil bli skrevet til forskjellige blokker. For mer informasjon om HVORDAN RFID-blokker er organisert og hvordan du adresserer dem, sjekk ut denne veiledningen.

Ledningene

ledningene for DIN SPESIFIKKE RFID-leser vil avhenge av modellen du får, da mange forskjellige iterasjoner har pinnene i en annen rekkefølge. Heldigvis viser eksempelkoden vi inkluderte ovenfor hvilke pins som skal gå der, avhengig av brettet du bruker. Følg denne veiledningen for detaljer.

som et eksempel, hvis Du brukte En Arduino Uno Og en mfrc-522 sensor, ville du gjøre følgende:

● Koble FØRST til pinne 9
● Koble SDA (eller SS) til pinne 10
● Koble MOSI til pinne 11
● Koble MISO til pin-12
● Koble SCK til pin-13
● Koble VCC til 5V
● Koble til GND GND

Men, igjen, sjekk hvilket brett du bruker for å forsikre deg om at du er koblet opp riktig. Når brettet ditt er koblet til, slår Du På Arduino mens Det er koblet til VIA USB til datamaskinen. Deretter kan du trykke ET RFID-kort eller nøkkelring til leseren. Hold den der mens du skriver inn data gjennom seriell skjerm.

mfrc522-biblioteket inneholder også en innebygd skisse for lesing AV RFID-data etter at du har skrevet DEN. Nå som du vet hvordan du skriver data, kan du prøve å laste opp skissen og bruke den til å lese taggen du har skrevet til.

Leave a Reply

Din e-postadresse vil ikke bli publisert.