Kuinka ohjelmoida RFID-kortti projekteihisi

RFID-tunnisteet ovat pieniä, uudelleenkirjoitettavia siruja, jotka voivat tallentaa pieniä määriä dataa, kuten nimiä, osoitteita, tuotetietoja ja paljon muuta. Ne voivat olla avaimenperiä ja kortteja, tai ne voidaan jopa istuttaa lemmikkeihin tai ihmisiin. Jos haluat oppia, miten ne toimivat tai lisätä ne omaan projektiisi, RFID-lukija ja-kirjoittaja on halpa komponentti, jota voit käyttää. Tämä opas näyttää, miten voit käyttää yhtä kirjoittaaksesi omaan RFID-tunnisteeseesi.

miten RFID-kirjoittajat toimivat

RFID-lukija-/kirjoittajasensorit käyttävät lyhyen kantaman pienitehoisia radioaaltoja lähettääkseen tietoa tunnisteista, joihin data on tallennettu, elektroniseen laitteeseen, johon anturi on liitetty. Tässä tapauksessa käytämme Arduinoa laitteena lisäämällä RFID-anturin. Kirjoitamme perustietoja RFID-tunnisteeseen.

tätä varten Käytämme tätä kirjastoa RFID-tagien lukemiseen ja kirjoittamiseen. Koska RFID-tunnisteiden käyttö on hieman monimutkaisempaa kuin vaikkapa LED-valojen kytkeminen päälle tai pois päältä, luotamme olemassa oleviin luonnoksiin, jotka voit integroida omiin projekteihisi. Nämä luonnokset tarjoavat valmiiksi kirjoitettuja toimintoja, joiden avulla voit helpommin integroida ne muihin projekteihisi.

käyttääksesi kirjastoa, lataa ensin .zip-tiedosto yllä olevalta Github-sivulta. Avaa seuraavaksi Arduino IDE, siirry kohtaan Sketch > Include Library > Add .ZIP Library … ja valitse juuri lataamasi kirjasto. Sen lisäksi, että tämä mahdollistaa RFID-kirjaston sisällyttämisen luonnoksiisi, saat myös kokoelman esimerkkiluonnoksia, joita tarvitsemme myöhemmin.

What You ’ll Need

For this project, we’ re only going to be written to an RFID tag. Kuitenkin, pitää mielessä, kun käymme läpi opas, miten voit käyttää tätä laajentaa muita projekteja. Ehkä lukituksen voi laukaista, kun näyttää lukijalle esimerkiksi tunnisteen, jossa on oikeat tiedot. Tätä perusprojektia varten tarvitset kuitenkin:

Arduino
RFID-anturi (mieluiten mfrc-522)
RFID-tunnisteet
leipälauta & johdotus
Arduino IDE
USB-kaapeli

koska RFID-sirut ovat hyvin pieniä, voit käyttää tunnistetta lähes missä tahansa muodossa. Kaksi yleisintä RFID-sirutyyppiä-jotka tulevat usein paketeissa tai sensoreilla – ovat pieniä pyöreitä avaimenperiä tai noin luottokortin kokoisia litteitä kortteja. Sen sanottuani, minkä tahansa merkin pitäisi toimia.

koodi

jos olet asentanut kirjaston yllä olevan ohjeen mukaisesti, seuraavan luonnoksen tulee olla saatavilla esimerkkikirjassasi tiedostossa > Examples > Mfrc522 > rfid_write_personal_data. Valitse se esimerkkikirjastasi tai kopioi alla oleva koodi:

/*
* Kirjoita Mifare RFID-kortin henkilötiedot käyttäen RFID – rc522-lukijaa
* käyttää MFRC522-kirjastoa Arduino RFID-MODUULIPAKKAUSTA 13.56 MHZ COOQROBOTIN tunnisteilla SPI W ja R.
* ——————————
* MFRC522 Arduino Arduino Arduino Arduino
* Reader / PCD Uno/101 Mega Nano v3 Leonardo / Micro Pro Micro
* Signal Pin Pin Pin Pin Pin
* ——————————
* RST/Reset RST 9 5 D9 RESET / ICSP-5 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
*
* Tarvittava laitteisto:
* Arduino
* PCD (Läheisyyskytkinlaite): NXP MFRC522 kontaktiton lukija IC
* PICC (Läheisyyskytkinkortti): kortti tai tunniste, joka käyttää ISO 14443A-liitäntää, esim.Mifare tai Ntag203.
* lukija löytyy ebaysta noin 5 dollarilla. Etsi kohteesta ”mf-rc522” ebay.com.
*/

# include
#include

# define RST_PIN 9 / / Configurable, see typical pin layout above
# define SS_PIN 10 / / Configurable, see typical pin layout above

mfrc522 mfrc522 (SS_PIN, RST_PIN); // Create MFRC522 instanssi

void setup () {
Serial.begin (9600); // Initialize serial communications with the PC
SPI.begin (); / / Init SPI bus
mfrc522.PCD_Init (); / / Init MFRC522-kortti
Serial.println (F (”Kirjoita henkilötiedot Mifare PICC: hen”));
}

void loop() {

// valmista avain – kaikki avaimet on asetettu ffffffffffh sirutoimituksessa tehtaalta.
MFRC522:: MIFARE_Key key;
for (byte i = 0; i < 6; I++) key.keyByte = 0xff;

// Nollaa silmukka, jos anturissa/lukijassa ei ole uutta korttia. Tämä säästää koko prosessin tyhjäkäynnillä.
jos (! mfrc522.PICC_IsNewCardPresent ()) {
return;
}

// Valitse jokin korteista
jos (! mfrc522.PICC_ReadCardSerial ()) {
return;
}

sarjamurhaaja.print (F (”Card UID:”)); //Dump UID
for (byte i = 0; i < mfrc522.uid.koko; i++) {
sarja.print(mfrc522.uid.uidByte < 0x10 ? ”0” : ””);
sarjamurhaaja.print(mfrc522.uid.uidByte, HEX);
}
sarja.print (F (”PICC type: ”)); // Dump PICC type
MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
sarja.println(mfrc522.PICC_GetTypeName (piccType));

tavupuskuri;
tavulohko;
mfrc522::StatusCode status;
tavulen;

Serial.setTimeout(20000L);// odota 20 sekuntia, kun syötät sarjanumeron
/ / Kysy henkilötiedot: sukunimi
Sarjanumero.println (F (”tyypin sukunimi, päättyen#”));
len = sarja.readBytesUntil ( ” # ” , (char *) buffer, 30); / / read family name from serial
for (byte i = len; i < 30; i++) buffer=”; / / pad with spaces

block = 1;
//Serial.println (F (”Authenticating using key 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 () success: ”));

Lohko = 2;
/ / sarja.println (F (”Authenticating using key 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;
}

// Kirjoituslohko
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 () success: ”));

// Kysy henkilötiedot: etunimi
sarja.println (F (”Type etunimi, päättyen#”));
len = Serial.readBytesUntil ( ” # ” , (char *) buffer, 20); / / read first name from serial
for (byte i = len; i < 20; i++) buffer=”; / / pad with spaces

block = 4;
//Serial.println (F (”Authenticating using key a…”));
status = mfrc522.PCD_Authenticate (MFRC522:: PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.);
jos (tilanne != MFRC522:: STATUS_OK) {
Serial.print (F (”PCD_Authenticate () failed: ”));
Serial.println(mfrc522.GetStatusCodeName (status));
return;
}

// Kirjoituslohko
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 () success: ”));

block = 5;
/ / sarja.println (F (”Authenticating using key 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;
}

// Kirjoituslohko
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 () success: ”));

sarjamurhaaja.println ( ”” );
mfrc522.PICC_HaltA (); / / Halt PICC
mfrc522.PCD_StopCrypto1 (); / / lopeta salaus PCD: llä

}

lataa tämä koodi, ja (kun olet kytkenyt projektisi alla kuvatulla tavalla) voit heti aloittaa tietojen kirjoittamisen RFID-tunnisteisiin.

yksi tällaisten kirjastojen käytön eduista on se, että löytyy osia jo kirjoitetusta koodista, joten pyörää ei tarvitse keksiä uudelleen jokaiselle projektille. Tällä kertaa emme mene koodirivi kerrallaan läpi. Sen sijaan puhutaan hieman enemmän siitä, mitä koodi tekee.

RFID-tunnisteiden tiedot tallennetaan sektoreiksi kutsuttuihin osioihin, jotka jaetaan edelleen lohkoihin. Jokainen lohko voi sisältää muutaman tavun dataa. Määrä riippuu tietystä tunnisteesta, mutta yhteisessä 1K-passiivisessa tunnisteessa (eli tunnisteessa, joka voi tallentaa 1 kilotavua dataa) voi olla esimerkiksi 16 sektoria, joista jokainen sisältää 4 lohkoa, ja jokainen lohko voi tallentaa jopa 16 tavua tietoa.

tämä luonnos tallentaa vain etu-ja sukunimesi, joten se tarvitsee vain yhden sektorin, mutta se levittää tiedot usealle lohkolle, koska nimesi saattavat viedä enemmän tietoa kuin mahtuu yhteen lohkoon (ja organisaation mukavuudeksi).

kun suoritat komentosarjan, sinua pyydetään antamaan sukunimesi, joka sitten kirjoitetaan RFID-tunnisteen lohkoihin. Seuraavaksi saat kehotuksen kirjoittaa etunimesi, joka kirjoitetaan eri lohkoihin. Lisätietoja RFID-lohkojen järjestämisestä ja niiden käsittelystä on tässä oppaassa.

johdotus

tietyn RFID-lukijan johdotus riippuu saamastasi mallista, sillä monissa eri iteraatioissa nastat ovat eri järjestyksessä. Onneksi esimerkkikoodi sisällytimme edellä listat, mitkä nastat pitäisi mennä minne riippuen aluksella käytät. Seuraa, että opas yksityiskohtia.

esimerkiksi, jos käyttäisit Arduino Uno: ta ja mfrc-522-anturia, toimisit seuraavasti:

● Connect RST to pin 9
● Connect SDA (tai SS) to pin 10
● Connect MOSI to pin 11
● Connect MISO to pin 12
● Connect VCC to pin 13
● Connect VCC to 5V
● Connect GND to GND

but, again, check which boards you ’ re käyttämällä varmistaa, että olet kytketty oikein. Kun levy on kytketty, Käynnistä Arduino, kun se on kytketty USB tietokoneeseen. Sitten, voit painaa RFID-kortti tai avaimenperä lukija. Pidä sitä siinä, kun syötät tietoja sarjamonitorin kautta.

mfrc522-kirjastossa on myös sisäänrakennettu luonnos RFID-datan lukemiseksi sen kirjoittamisen jälkeen. Nyt kun osaat kirjoittaa tietoja, yritä ladata kyseinen luonnos ja lukea sen avulla tunniste, jolle olet kirjoittanut.

Leave a Reply

Sähköpostiosoitettasi ei julkaista.