Drumeții Transport Sobe economice

Program pentru programarea etichetelor NFC. Citirea și scrierea etichetelor NFC folosind Arduino

Să folosim o placă Arduino pentru a citi etichetele NFC și a le scrie informații!

Ce este NFC?

NFC (near field communication) sunt protocoale care folosesc dispozitive electronice pentru a comunica și a transfera date între ele. Dispozitivele NFC trebuie amplasate foarte aproape unele de altele, de obicei la 10 cm, dar acest interval poate varia în funcție de dispozitivul care transmite datele și de dimensiunea etichetei. Etichetele NFC nu necesită alimentare. Ele folosesc inducția magnetică între două antene bucle mici. În prezent, etichetele transportă între 96 și 4096 de octeți de informații.

Lista componentelor

  • Placă de extensie Adafruit PN532 RFID/NFC Shield (sau echivalent);
  • Arduino IDE;
  • etichete NFC reinscriptibile.

Este important ca etichetele NFC să fie reinscriptibile, altfel codul nu va funcționa.

Pentru a verifica dacă am scris cu succes date pe etichete, putem folosi un telefon Arduino sau un telefon NFC. Majoritatea smartphone-urilor Android pot citi etichete NFC, voi folosi Nexus 5 pentru testare. Din păcate pentru utilizatorii de iPhone, suportul NFC a început cu iPhone 6 și 6s, dar nu acceptă citirea etichetelor NFC, așa că puteți folosi o placă Arduino. pentru a verifica ce este scris pe eticheta dvs. NFC. iPhone-ul folosește numai capacitățile NFC pentru Apple Pay, ceea ce înseamnă că nu îl puteți folosi pentru a citi etichete sau orice altceva.

Odată ce avem toate componentele necesare, va trebui să instalăm două biblioteci care să permită citirea și scrierea etichetelor. Acestea sunt bibliotecile don/NDEF și Seeedstudio, o vom folosi în principal pe prima. Biblioteca Seeedstudio este folosită dacă aveți placa de expansiune Seeedstudio NFC Shield. O vom instala pentru orice eventualitate. Trebuie să descărcați și să instalați ambele biblioteci folosind opțiunea „Add .zip Library” din Arduino IDE din meniul „Sketch → Include Library”. Nu uitați să instalați ambele biblioteci separat și în directorul implicit Arduino, altfel veți primi erori de compilare.

Lansați IDE-ul și ar trebui creat un nou fișier schiță. Salvați noul fișier sub orice nume, de exemplu, „Citiți eticheta NFC”. Mai întâi trebuie să adăugați fișiere de antet la acesta. Trebuie să meargă înainte de void setup() .

#include #include #include PN532_I2C pn532_i2c(Fir); NfcAdapter nfc = NfcAdapter(pn532_i2c); // Indicați că folosim un card de expansiune

Citirea etichetelor NFC

Aceste fișiere de antet sunt foarte importante și proiectul nu va funcționa fără ele. Apoi scriem următorul cod.

#include #include #include // Următoarele fișiere includ bibliotecile instalate #include PN532_I2C pn532_i2c(Fir); NfcAdapter nfc = NfcAdapter(pn532_i2c); ) void loop (void) ( Serial.println("\nScanează-ți eticheta NFC pe NFC Shield\n"); // Comanda ca să știi ce să faci în continuare dacă (nfc.tagPresent()) ( eticheta NfcTag = nfc.read ( ); Serial.println(tag.getTagType()); Serial.println(tag.getUidString()); )) // Dacă eticheta are un mesaj ( mesaj NdefMessage = tag.getNdefMessage(); Serial.print("\nAcest mesaj din această etichetă este "); Serial.print(message.getRecordCount()); Serial.print( " NFC Tag Record"); if (message.getRecordCount() != 1) ( Serial.print("s"); ) Serial.println("."); // Dacă aveți mai mult de 1 mesaj, mergeți prin ele într-o buclă int recordCount = message.getRecordCount(); for (int i = 0; i< recordCount; i++) { Serial.print("\nNDEF Record "); Serial.println(i+1); NdefRecord record = message.getRecord(i); int payloadLength = record.getPayloadLength(); byte payload; record.getPayload(payload); String payloadAsString = ""; // Обработать сообщение, как строку for (int c = 0; c < payloadLength; c++) { payloadAsString += (char)payload[c]; } Serial.print(" Information (as String): "); Serial.println(payloadAsString); String uid = record.getId(); if (uid != "") { Serial.print(" ID: "); Serial.println(uid); // Напечатать уникальный идентификатор NFC метки } } } } delay(10000); }

Odată ce ați salvat și încărcat acest cod în placa Arduino cu placa de expansiune conectată, puteți începe să verificați ce mesaje au etichetele dvs., dacă există. Când încărcați programul în Arduino, deschideți monitorul serial, acolo veți vedea un mesaj „Cititor de etichete NFC”, iar mai jos instrucțiuni care vă spun să vă scanați eticheta NFC pe scutul dvs. NFC („Scanați eticheta NFC pe scutul NFC". ”). Când am făcut asta, am primit următoarele în monitorul portului serial:



Rețineți că oferă ID-ul unic al etichetei NFC și îmi spune ce informații am scris pe etichete. În această etichetă specială am un mesaj simplu de bun venit și un link către Twitter Arduino. Arduino citește cu succes informațiile din eticheta mea. Videoclipul de mai jos arată că Nexus 5 citește eticheta și afișează mesaje.

Scrieți pe eticheta NFC

Acum, pentru a scrie un mesaj pe o etichetă, trebuie să urmați un proces similar, cu excepția modificărilor minore ale codului. Antetul de dinaintea funcției void setup() va fi același, iar mai jos este codul care trebuie încărcat în Arduino.

#include #include #include // Următoarele fișiere includ bibliotecile instalate #include PN532_I2C pn532_i2c(Fir); NfcAdapter nfc = NfcAdapter(pn532_i2c); // Indică faptul că folosim un card de expansiune void setup() ( Serial.begin(9600); Serial.println("NFC Tag Writer"); // Mesaj către monitorul portului serial nfc.begin(); ) void loop () ( Serial.println("\nPlasați o etichetă NFC pe care doriți să înregistrați aceste mesaje!"); // Comanda în monitorul portului serial if (nfc.tagPresent()) ( NdefMessage message = NdefMessage(); mesaj .addTextRecord(" My First NFC Tag Write"); // Mesaj text pe care vrem să înregistrăm mesaj.addUriRecord("http://allaboutcircuits.com" // Site-ul web pe care vrem să înregistrăm mesaj.addTextRecord("Way to Go , A funcționat! "); // Mesajul final că vrem să scriem succes boolean = nfc.write(mesaj); if (succes) ( Serial.println("Bună, acum citește-l cu telefonul!"); // dacă totul funcționează, atunci vom vedea acest mesaj ) else ( Serial.println("Write failed"); // dacă scrierea a eșuat, vom vedea acest mesaj ) ) delay(10000);

Acest cod stochează trei mesaje în etichetă: un text introductiv care spune „Prima mea etichetă NFC Scrie”, apoi un link către site-ul web AllAboutCircuits și, în sfârșit, un mesaj final care spune „Way to Go, It Works!” .

În zilele noastre, multe smartphone-uri sunt echipate cu un cip NFC activ. Vă permite să faceți utilizarea dispozitivului puțin mai convenabilă. Mai ales dacă proprietarul dispozitivului are un set de etichete NFC.

Avantajul tehnologiei NFC este că poate fi conținută fie într-un cip activ, fie într-o etichetă pasivă. Acesta din urmă nu necesită energie pentru a funcționa, puteți uita de reîncărcarea regulată. În același timp, etichetele NFC au dimensiuni minime, ceea ce le permite să fie localizate chiar și într-o cheie. De fapt, fiecare astfel de etichetă este o antenă mică, groasă ca o foaie de hârtie. Diametrul său este comparabil cu o monedă de 5 ruble. Schimbul de date durează 0,1 s. Pentru a face acest lucru, trebuie să atașați smartphone-ul la etichetă, astfel încât spațiul de aer să nu depășească 5 cm Mai precis, distanța este măsurată între cip și etichetă - prima este de obicei situată undeva în zona lui. bateria dispozitivului.

Etichetele NFC pot fi folosite pentru o varietate de scopuri. Cel mai adesea pot fi găsite în carduri bancare. În acest caz, eticheta este folosită pentru plata contactless - trebuie doar să vă asigurați că terminalul o acceptă. Acest lucru accelerează semnificativ procesul de plată, deoarece în majoritatea cazurilor nu vi se va cere să introduceți un cod PIN.


Etichetele NFC sunt vândute și ca accesorii separate. Ele pot fi așezate pe masă sau atârnate de o grămadă de chei. Astfel de etichete sunt folosite pentru a controla " casă inteligentă" Și cu ajutorul lor, puteți forța smartphone-ul să treacă automat la un anumit mod de operare. De exemplu, marca poate fi pe tabloul de bord al unei mașini. În acest caz, atingerea smartphone-ului va activa Bluetooth, după care șoferul va comunica cu apelanții printr-o cască fără fir. Și o singură acțiune nu trebuie să fie programată. Pe lângă Bluetooth, se poate porni postul dvs. de radio preferat, precum și un navigator GPS. Într-un cuvânt, totul depinde de imaginația utilizatorului!

De unde să cumpărați etichete NFC?

Dacă sunteți interesat de etichete sub formă de autocolante, care sunt cel mai ușor de utilizat, atunci va trebui să vizitați. Aici au cele mai multe alegeri. De exemplu, puteți achiziționa un set de zece autocolante diferite Ntag213 - costul unui astfel de set nu depășește 220 de ruble.

Puteți cumpăra cu ușurință etichete NFC de la diferiți producători. Acest lucru nu le va afecta munca în niciun fel, deoarece folosesc același protocol. De fapt, astfel de produse diferă unele de altele doar prin formă și model reprezentat.

Dacă șase etichete sunt suficiente pentru dvs., atunci vă sugerăm să vă familiarizați cu un set ușor trunchiat de la AnyNFC. Cu toate acestea, achiziționarea acestuia va costa și mai mult - un set de șase autocolante costă 312 ruble. Dar aceste autocolante sunt realizate pe hârtie mai groasă și sunt mult mai greu de deteriorat.


Opțiunile discutate mai sus au modele specifice. Dacă intenționați să programați niște comenzi neobișnuite, atunci aveți nevoie de autocolante fără case, avioane sau alte imagini. De exemplu, 6 autocolante multicolore, vândute pentru aproximativ 83 de ruble (fără livrare), au doar o siglă tehnologie wireless NFC. Când utilizați astfel de autocolante, veți fi ghidat de culoarea și locația lor.

Există o versiune și mai simplificată. Puteți cumpăra 10 etichete fără imagini. Acestea vor fi antenele subțiri menționate chiar la începutul articolului. Apoi, puteți face orice imagine cu propriile mâini, aplicând-o pe antenă, transformând-o într-o etichetă NFC cu drepturi depline. Cea mai ușoară modalitate de a face acest lucru este să utilizați o imprimantă și hârtie autoadezivă.


Dar o etichetă autocolantă nu este întotdeauna necesară. În unele cazuri, ar trebui să fie făcută sub forma unui accesoriu care ar fi atașat unui breloc. Apoi trebuie să achiziționați un set de brelocuri NTAG215. Antenele din ele sunt închise într-o carcasă de plastic. Cheia este atașată de chei folosind un inel metalic. Puteți lipi orice imagine doriți pe corp.

Cum se înregistrează o etichetă NFC?

Mulți utilizatori cred că înregistrarea etichetelor NFC este domeniul profesioniștilor. Și fără comenzile adecvate, astfel de produse sunt inutile - atingerea lor nu va provoca nicio acțiune. Cum se programează aceasta sau acea comandă folosind un smartphone Android? Este chiar greu? Ne grăbim să vă mulțumim, totul este mult mai ușor decât credeți.

Un program special vă ajută să înregistrați cutare sau cutare acțiune care va fi efectuată de smartphone după atingerea etichetei NFC. Aplicații similare sunt ușor de găsit pe Google Play. Vă recomandăm să instalați Instrumente NFC și Sarcini NFC pe dispozitiv. Interfața lor se bazează pe Limba engleză. Dar chiar și cunoștințele de bază ale limbii sunt suficiente pentru a lucra cu aceste programe. Ca ultimă soluție, puteți utiliza .


Lucrul cu instrumentele NFC, de exemplu, este foarte ușor. Doar accesați fila " Sarcini„, după care nu mai rămâne decât să selectezi sarcina pe care o va îndeplini smartphone-ul atunci când va fi adus la o anumită etichetă NFC. Și nu uitați să atingeți autocolantul sau brelocul după aceea.

Aproape toate programele care comunică cu etichete NFC sunt proiectate într-un mod similar. Unele oferă comenzi simple din care să alegeți. Altele sunt mai complexe și mai complexe. Nu uitați că nu toate sunt gratuite. Cu toate acestea, asemenea aplicații nu sunt nici costisitoare.

Rezumând

Putem spune cu siguranță că etichetele NFC sunt foarte utile. Ele pot automatiza acțiunile smartphone-ului. De asemenea, astfel de etichete pot fi lăudate pentru versatilitatea lor - ce comenzi le va executa dispozitivul depinde doar de dvs. Pe scurt, etichetele NFC fac utilizarea telefonului mai comodă.

Datele sunt transferate între două dispozitive NFC sau un dispozitiv și Etichetă NFC când intră în contact unul cu altul. Sunt două tip NFC interactiuni:

Pasiv - activ

O etichetă NFC pasivă interacționează cu un dispozitiv NFC activ, de exemplu, un smartphone.

Activ - Activ

Un dispozitiv NFC activ, de exemplu un smartphone, interacționează cu un alt dispozitiv NFC activ, de exemplu un terminal de plată fără contact.

Ce este o etichetă NFC?

Termenul de etichetă NFC este folosit în mod obișnuit pentru o etichetă NFC pasivă. Exemple de etichete NFC pasive sunt incrustații NFC, autocolante NFC, brățări NFC și alte produse NFC convertite. Etichetele NFC sunt foarte asemănătoare cu un stick USB, cu excepția faptului că nu trebuie să fie conectate la un computer pentru a transfera date. Nu există baterie în interiorul etichetelor NFC. Toate au un circuit integrat (IC) și antene în interiorul lor. Datele sunt transferate prin intermediul acestei antene.

Care cip NFC este cel mai bun pentru mine?

Cel mai potrivit cip NFC este adesea determinat de ceea ce doriți să scrieți pe el (adică dimensiunea memoriei de care aveți nevoie). Dimensiunea memoriei cipului NFC este măsurată în octeți. Tipul de cip și dimensiunea memoriei disponibile sunt indicate pentru fiecare etichetă NFC în cardul cu informații despre produs de pe site.

Ghid de selecție

    Alegeți un cip cu cea mai mică dimensiune memorie care îndeplinește condițiile tale. Pe cipul NFC ar trebui să fie scrise cât mai puține date posibil. Cu cât sunt mai multe date pe un cip, cu atât acesta va fi scris și citit mai lent.

    Alegeți cel mai rapid cip. Utilizatorul se așteaptă ca interacțiunea cu o etichetă NFC să fie o atingere rapidă (<0.5 с). Однако некоторые чипы имеют более долгий цикл чтения.

    Alegeți o etichetă NFC cu cea mai mare suprafață de antenă. Cu cât suprafața antenei este mai mare, cu atât distanța de citire este mai mare.

    Alegeți un cip NFC compatibil cu dispozitivele care îl vor citi. Unele cipuri NFC nu sunt compatibile cu toate dispozitivele. Alegerea optimă ar fi un cip NFC compatibil cu standardul NFC Forum.

    Unele cipuri au caracteristici speciale suplimentare (de exemplu, programare unică, securitate). Adesea, aceste caracteristici afectează performanța și costul. Asigurați-vă că înțelegeți capacitățile oferite de fiecare cip.

    Alege cel mai ieftin cip NFC!

Am nevoie de software special pentru a folosi NFC?

Spre deosebire de codurile QR, nu trebuie să descărcați o aplicație specială pentru a utiliza NFC. Tot ce trebuie să faceți este să activați funcția NFC pe smartphone. Acest lucru se poate face de obicei în setările dispozitivului dvs. mobil. Dacă funcția NFC este activată, eticheta NFC va fi citită automat când o atingeți cu smartphone-ul. Astfel, utilizatorul nu trebuie să efectueze acțiuni suplimentare. Interfața cu utilizatorul variază în funcție de dispozitiv și multe necesită permisiunea utilizatorului înainte de a deschide datele dintr-o etichetă NFC.

Câte date pot fi scrise pe cipul NFC?

Cantitatea de date care poate fi scrisă pe un cip NFC depinde de tipul acestuia. De obicei, acesta este de câteva sute de octeți.

Care este distanța de citire a unei etichete NFC?

Standardul NFC are o distanță de citire foarte mică, motiv pentru care și-a primit numele. (Near Field Communication - „comunicare în câmp apropiat”, „comunicare aproape fără contact”). Două dispozitive NFC și/sau etichete NFC trebuie să fie la aproximativ 1-2 cm unul de celălalt pentru a face schimb de date. Distanța posibilă de citire depinde de mai mulți factori, cum ar fi dimensiunea etichetei NFC și tipul de cititor NFC. Dacă este necesară o distanță mai mare de citire, atunci ar trebui să utilizați tehnologia UHF sau RFID.

Ce determină distanța de citire a unei etichete NFC?

    Dimensiunea și forma etichetei NFC – În general, cu cât eticheta NFC este mai mare, cu atât intervalul de citire este mai lung. Acest lucru se datorează faptului că, cu cât eticheta NFC este mai mare, cu atât antena este mai mare.

    Mediu – Factori precum prezența suprafețelor metalice afectează funcționarea etichetei NFC.

    Design etichetă NFC – Cu cât există mai multe materiale diferite între antena etichetei NFC și cititor, cu atât eticheta NFC este mai ușor de citit. De exemplu, o brățară din silicon cu o etichetă NFC încorporată are o distanță de citire mai mică decât un autocolant NFC.

    Tip cititor NFC – De obicei, cititoarele USB sau seriale au o rază de citire mai mare decât dispozitivele mobile cu un modul NFC.

    Tip de cip NFC – Unele cipuri NFC au o gamă excelentă de citire, în ciuda dimensiunilor lor mici.

Este posibil să rescrieți informații pe o etichetă NFC?

Majoritatea cipurilor NFC au capacitatea de a fi rescrise, de exemplu. După înregistrare, informațiile de pe ele pot fi șterse și înregistrate din nou. Aceasta înseamnă că orice utilizator cu un dispozitiv NFC poate suprascrie informațiile de pe o etichetă NFC, atâta timp cât nu blochează suprascrierea etichetei. Odată blocate, datele de pe eticheta NFC nu pot fi șterse sau suprascrise, de exemplu. va fi disponibil numai în citire. Blocarea prin suprascriere nu poate fi anulată.

Ce este un dispozitiv NFC?

Termenul dispozitiv NFC este adesea aplicat etichetelor NFC active. Un exemplu de dispozitive NFC active sunt smartphone-urile și tabletele cu module NFC, cititoarele NFC conectate la un PC. Toate aceste dispozitive au un cititor NFC în interior și necesită energie electrică pentru a funcționa.

Este posibil să criptați datele pe un cip NFC?

Standardul NFC nu acceptă criptarea NDEF a înregistrărilor. Singura modalitate de a implementa criptarea este de a crea o intrare personalizată MimeType. Această înregistrare trebuie să conțină date criptate, iar aplicația care o citește trebuie să aibă o cheie de decriptare. Toate celelalte aplicații vor ignora această intrare.

Este posibil să suprascrieți UID-ul?

Identificatorul unic (UID) al unei etichete NFC nu poate fi schimbat. Acest identificator este situat într-o zonă de memorie protejată a cipul NFC. Este conceput pentru a identifica cipul NFC.

Ce cip NFC poate stoca contacte (VCARD)?

Cipul NFC utilizat pe scară largă NTAG203 are 144 de memorii inscriptibile. Acest lucru nu este suficient pentru a înregistra informațiile de contact complete. Cipul vă permite să înregistrați doar un număr mic de câmpuri (De exemplu, nume, prenume și telefon). Dacă aveți nevoie de o capacitate mai mare, este recomandat să utilizați cipul NTAG216, care are o capacitate de scriere de 888 de octeți. Este optim pentru înregistrarea informațiilor de contact în format VCARD. Un contact înregistrat în acest format poate fi importat într-un smartphone cu o singură atingere a unei etichete NFC. Această caracteristică este utilizată pentru cărțile de vizită NFC.

Ce este NFC Forum?

Organizația NFC Forum a fost creată pentru a promova tehnologia NFC și a dezvolta o specificație standard NFC care să asigure compatibilitatea dispozitivelor și serviciilor care folosesc această tehnologie. Forumul NFC a standardizat 4 tipuri de etichete NFC care funcționează cu dispozitive NFC. Aceasta este baza compatibilității între dispozitivele de la diferiți producători. O etichetă NFC respectă standardul NFC Forum dacă este compatibilă cu unul dintre aceste 4 tipuri (Tip 1, Tip 2, Tip 3 sau Tip 4). Etichetele NFC care respectă standardul NFC Forum au mai puține probleme de compatibilitate decât etichetele care nu respectă standardul.