RFID-kártya programozása a projektekhez

az RFID-címkék kicsi, újraírható chipek, amelyek kis mennyiségű adatot tárolhatnak, például neveket, címeket, termékinformációkat stb. Lehetnek kulcstartók és kártyák, vagy akár háziállatokba vagy emberekbe is beültethetők. Ha meg szeretné tudni, hogyan működnek, vagy hozzáadja őket a saját projektjéhez, az RFID olvasó és író egy olcsó összetevő, amelyet használhat. Ez az útmutató megmutatja, hogyan kell használni, hogy írjon a saját RFID címke.

hogyan működnek az RFID írók

RFID olvasó / író érzékelők rövid hatótávolságú, alacsony fogyasztású rádióhullámokat használnak az adatok továbbítására a címkékből, ahol az adatokat tárolják, az érzékelőhöz csatlakoztatott elektronikus eszközbe. Ebben az esetben egy Arduino-t fogunk használni eszközként egy RFID-érzékelő hozzáadásával. Pontosabban, néhány alapvető információt írunk egy RFID címkére.

ehhez ezt a könyvtárat használjuk RFID-címkék olvasására és írására. Mivel az RFID címkék használata egy kicsit bonyolultabb, mint mondjuk a LED be-vagy kikapcsolása, támaszkodunk a már meglévő vázlatokra, amelyeket integrálhat saját projektjeibe. Az előre megírt funkciók, amelyeket ezek a vázlatok nyújtanak, könnyebben integrálhatják őket a többi projektbe.

a könyvtár használatához először töltse le a .zip fájl a fenti Github oldalról. Ezután nyissa meg az Arduino IDE-t, keresse meg a Sketch > include Library > Add elemet .ZIP Könyvtár … és válassza ki az éppen letöltött könyvtárat. Ez nem csak lehetővé teszi az RFID könyvtár felvételét a vázlatokba, hanem egy példavázlat-gyűjteményt is kap, amelyre később szükségünk lesz.

amire szükséged lesz

ehhez a projekthez csak RFID címkére fogunk írni. Ne feledje azonban, amikor áttekintjük az útmutatót, hogyan használhatja ezt a többi projekt kiterjesztésére. Talán elindíthat egy zárat a feloldáshoz, ha például az olvasónak megmutatja a helyes adatokkal ellátott címkét. Ehhez az alapvető projekthez, bár, itt van, amire szüksége lesz:

Arduino
RFID érzékelő (lehetőleg MFRC-522)
RFID címkék
Breadboard & kábelezés
Arduino IDE
USB kábel

mivel az RFID chipek nagyon kicsiek, a használt címke szinte bármilyen formában megjelenhet. Az RFID chipek két leggyakoribb típusa-gyakran készletben vagy érzékelőkkel érkezik – a kis kerek kulcstartók vagy a hitelkártya méretű lapos kártyák. Azt mondta, hogy, bármilyen tag van működnie kell.

a kód

ha a könyvtárat a fenti utasítások szerint telepítette, a következő vázlatnak elérhetőnek kell lennie a példakönyvben a fájl > példák > MFRC522 > rfid_write_personal_data alatt. Jelölje ki a példakönyvben, vagy másolja az alábbi kódot:

/*
* írjon személyes adatokat egy Mifare RFID kártya segítségével RFID-RC522 olvasó
* használja MFRC522-Könyvtár használni ARDUINO RFID modulkészlet 13,56 MHZ címkékkel SPI W és R által COOQROBOT.
* ——————————
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* olvasó / PCD Uno / 101 Mega Nano V3 Leonardo / Micro Pro Micro
* jel Pin Pin Pin Pin
* ——————————
* 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
*
* Szükséges hardver:
* Arduino
* PCD (Proximity csatoló eszköz): NXP MFRC522 érintés nélküli olvasó IC
* PICC (Proximity integrált áramköri kártya): kártya vagy címke az ISO 14443A interfésszel, pl. Mifare vagy NTAG203.
* az olvasó körülbelül 5 dollárért megtalálható az eBay-en. Keresése “mf-rc522” on ebay.com.
*/

#include
#include

# define RST_PIN 9 / / konfigurálható, lásd a fenti tipikus pin elrendezést
#define SS_PIN 10 / / konfigurálható, lásd a fenti tipikus pin elrendezést

MFRC522 mfrc522(SS_PIN, RST_PIN); // Hozzon létre MFRC522 példányt

void setup() {
Soros.begin (9600); / / soros kommunikáció inicializálása a PC
SPI-vel.begin (); / / Init SPI busz
mfrc522.PCD_Init (); / / Init mfrc522 kártya
Soros.println (F (“írjon személyes adatokat egy Mifare PICC-re”));
}

void loop() {

// készítse elő a kulcsot – az összes kulcs FFFFFFFFFFFFh értékre van állítva a chip gyárból történő kiszállításakor.
MFRC522::MIFARE_Key kulcs;
for (byte i = 0; i < 6; i++) kulcs.keyByte = 0xFF;

/ / állítsa vissza a hurok, ha nincs új kártya jelen az érzékelő / olvasó. Ez üresjáratban menti az egész folyamatot.
ha (! mfrc522.PICC_IsNewCardPresent ()) {
return;
}

// válassza ki a
if ( ! mfrc522.PICC_ReadCardSerial ()) {
return;
}

sorozat.print (F (“kártya UID:”)); //Dump UID
for (byte i = 0; i < mfrc522.uid.méret; i++) {
Soros.nyomtatás (mfrc522.uid.uidByte < 0x10 ? “0” : “”);
sorozat.nyomtatás (mfrc522.uid.uidByte, HEX);
}
Soros.print (F (“PICC type: “)); // Dump PICC type
MFRC522::PICC_Type piccType = mfrc522.PICC_GetType (mfrc522.uid.sak);
Soros.println (mfrc522.PICC_GetTypeName(piccType));

bájtpuffer;
bájtblokk;
MFRC522::StatusCode állapot;
bájt len;

Soros.setTimeout(20000l);// várjon 20 másodpercig a Soros
bemenetére / / kérdezze meg a személyes adatokat: családnév
Soros.println (F (“típus családnév, végződő#”));
len = Soros.readBytesUntil ( ‘ # ‘, (char *) buffer, 30) ; // olvassa el a családnevet a
sorozatból (byte i = len; i < 30; i++) buffer = ‘ ‘; // pad szóközökkel

blokk = 1;
//Soros.println (F (“hitelesítés a kulcs használatával…”));
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 () siker: “));

blokk = 2;
/ / Soros.println (F (“hitelesítés a kulcs használatával…”));
status = mfrc522.PCD_Authenticate(MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, &kulcs, &(mfrc522.uid));
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“PCD_Authenticate () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}

// írási blokk
status = mfrc522.MIFARE_Write (blokk, & puffer, 16);
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“mifare_write () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}
más soros.println (F (“mifare_write () siker: “));

// kérjen személyes adatokat: Keresztnév
Soros.println (F (“típus Keresztnév, végződő#”));
len = Soros.readBytesUntil ( ‘ # ‘, (char *) buffer, 20) ; // olvassa el az utónevet a Soros
– től (byte i = len; i < 20; i++) buffer = ‘ ‘; // pad szóközökkel

block = 4;
//Soros.println (F (“hitelesítés a kulcs használatával…”));
status = mfrc522.PCD_Authenticate(MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, &kulcs, &(mfrc522.));
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“PCD_Authenticate () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}

// írási blokk
status = mfrc522.MIFARE_Write (blokk, puffer, 16);
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“mifare_write () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}
más soros.println (F (“mifare_write () siker: “));

blokk = 5;
/ / Soros.println (F (“hitelesítés a kulcs használatával…”));
status = mfrc522.PCD_Authenticate(MFRC522:: PICC_CMD_MF_AUTH_KEY_A, blokk, &kulcs, &(mfrc522.uid));
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“PCD_Authenticate () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}

// írási blokk
status = mfrc522.MIFARE_Write (blokk, & puffer, 16);
if (állapot != MFRC522:: STATUS_OK) {
Soros.print (F (“mifare_write () sikertelen:”));
Soros.println (mfrc522.GetStatusCodeName (állapot));
visszatérés;
}
más soros.println (F (“mifare_write () siker: “));

sorozat.println ( “” );
mfrc522.PICC_HaltA(); // Halt PICC
mfrc522.PCD_StopCrypto1 (); / / állítsa le a titkosítást a PCD-n

}

töltse fel ezt a kódot, és (miután bekötötte a projektet az alábbiakban leírtak szerint) azonnal elkezdheti az adatok írását az RFID-címkékre.

az ilyen könyvtárak használatának egyik előnye, hogy megtalálhatja a már megírt kódrészleteket, így nem kell minden projekthez újra feltalálnia a kereket. Ezúttal nem fogjuk végigmenni a kódot sorról-sorra. Ehelyett beszéljünk egy kicsit arról, hogy mit csinál a kód.

az RFID-címkékben lévő adatokat szektoroknak nevezett szakaszokban tárolják, amelyeket tovább osztanak blokkokra. Minden blokk tartalmazhat néhány bájt adatot. Az összeg az adott címkétől függ, de egy általános 1K passzív címke (azaz egy címke, amely 1 kilobájt adatot képes tárolni) például 16 szektorral rendelkezhet, amelyek mindegyike 4 blokkot tartalmaz, mindegyik blokk legfeljebb 16 bájt adatot képes tárolni.

ez a vázlat csak az utónevet és a vezetéknevet fogja tárolni, tehát csak egy szektorra van szüksége, de az adatokat több blokkra osztja szét, mivel a nevei több adatot foglalhatnak el, mint amennyi egy blokkban elfér (és a szervezeti kényelem érdekében).

a szkript futtatásakor meg kell adnia a családnevét, amelyet ezután az RFID-címke blokkjaira ír. Ezután kap egy felszólítást, hogy írja be a keresztnevét, amelyet különböző blokkokba írnak. További információ az RFID blokkok szervezéséről és kezeléséről, olvassa el ezt az útmutatót.

a huzalozás

az adott RFID olvasó kábelezése a kapott modelltől függ, mivel sok különböző iterációban a csapok eltérő sorrendben vannak. Szerencsére a fenti példakód felsorolja, hogy mely csapoknak kell oda menniük, a használt táblától függően. Kövesse ezt az útmutatót a részletekért.

például, ha Arduino Uno-t és MFRC-522 érzékelőt használ, akkor a következőket kell tennie:

● Csatlakozás ELSŐ pin 9
● Csatlakoztassuk SDA (vagy SS), hogy a pin-10
● Csatlakoztassuk MOSI, hogy a pin-11
● Csatlakoztassuk MISO, hogy a pin-12
● Csatlakoztassuk BETEG, hogy pin-13
● Csatlakoztassuk TVK, hogy 5V
● Csatlakoztassuk GND, hogy a GND

De, még egyszer, ellenőrizze, hogy mely táblák használata, hogy győződjön meg arról, hogy a vezetékes fel helyesen. Miután csatlakoztatta a táblát, kapcsolja be az Arduino-t, miközben USB-n keresztül csatlakozik a számítógéphez. Ezután megnyomhat egy RFID kártyát vagy kulcstartót az olvasóhoz. Tartsa ott, miközben adatokat ad meg a Soros monitoron keresztül.

az MFRC522 könyvtár tartalmaz egy beépített vázlatot az RFID adatok olvasásához, miután megírta. Most, hogy tudja, hogyan kell adatokat írni, próbálja meg feltölteni ezt a vázlatot, és ezzel olvassa el a címkét, amelyre írt.

Leave a Reply

Az e-mail-címet nem tesszük közzé.