Читать и писать на тегах nfc с помощью arduino

Читать и писать на тегах nfc с помощью arduino
Читать и писать на тегах nfc с помощью arduino
Anonim

Чтение и запись на тегах NFC с помощью Arduino

Используйте Arduino для чтения тегов NFC и напишите на них информацию!

Что такое NFC "// www.sparkfun.com/products/11021" target = "_ blank"> Arduino Uno R3
  • Adafruit PN532 RFID / NFC Shield
  • Arduino IDE (интегрированная среда разработки)
  • Перезаписываемые теги NFC
  • Image
    Image

    Важно, чтобы теги NFC перезаписывались, иначе это не сработает.

    Чтобы проверить, было ли то, что мы написали в тегах, было успешно, мы можем протестировать с помощью Arduino или с телефоном с поддержкой NFC. Большинство смартфонов под управлением Android должны иметь возможность читать теги NFC, и я буду тестировать Nexus 5. К сожалению, для пользователей iPhone единственными iPhone, которые поддерживают NFC, являются iPhone 6 и 6s, но они не поддерживают чтение тегов NFC, поэтому просто используйте Arduino, чтобы проверить, что ваш тег написал на них. iPhones используют только возможности NFC для оплаты Apple, поэтому вы не можете использовать их для чтения тегов или чего-либо еще.

    Когда у нас есть все части вместе, нам нужно установить две библиотеки, которые сделают чтение и запись на тегах возможными. Библиотеки - это don / NDEF и Seeedstudio, которые мы будем использовать в основном, это дон, поскольку библиотека Seeedstudio используется, если у вас есть экран Seeedstudio NFC. Мы будем устанавливать его как библиотеку на всякий случай. Вы должны загрузить и установить обе библиотеки, используя «Добавить.zip-библиотеку» Arduino в Sketch >> Include Library. Не забудьте установить обе библиотеки отдельно и в каталог по умолчанию Arduino, иначе у вас будут компиляция ошибок.

    Запустите IDE, и у вас должен быть новый файл эскиза. Сохраните новый файл под любым именем, которое вы выбрали, например «Чтение тега NFC». Первыми файлами, которые у вас будут, будут файлы заголовков, и они будут следующими. Они будут идти до установки void ().

    
    

    #include#include#include// The following files are included in the libraries Installed #includePN532_I2C pn532_i2c(Wire); NfcAdapter nfc = NfcAdapter(pn532_i2c); // Indicates the Shield you are using

    Чтение тега NFC

    Эти файлы заголовков чрезвычайно важны, и проект не будет работать без них. Затем вы хотите написать следующий код.

    
    

    void setup(void) { Serial.begin(9600); Serial.println("NFC TAG READER"); // Header used when using the serial monitor nfc.begin(); } void loop(void) { Serial.println("\nScan your NFC tag on the NFC Shield\n"); // Command so that you an others will know what to do if (nfc.tagPresent()) { NfcTag tag = nfc.read(); Serial.println(tag.getTagType()); Serial.print("UID: ");Serial.println(tag.getUidString()); // Retrieves the Unique Identification from your tag if (tag.hasNdefMessage()) // If your tag has a message { NdefMessage message = tag.getNdefMessage(); Serial.print("\nThis Message in this Tag is "); Serial.print(message.getRecordCount()); Serial.print(" NFC Tag Record"); if (message.getRecordCount() != 1) { Serial.print("s"); } Serial.println("."); // If you have more than 1 Message then it wil cycle through them 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(payloadLength); record.getPayload(payload); String payloadAsString = ""; // Processes the message as a string vs as a HEX value 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); // Prints the Unique Identification of the NFC Tag } } } } delay(10000); }

    Скачать код

    После того, как вы сохранили и загрузили этот код в свой Arduino с прикрепленным экраном, вы можете начать тестировать, какие сообщения имеют ваши теги, если они есть. Когда вы загружаете программу в Arduino, откройте последовательный монитор, и вы увидите сообщение «NFC TAG Reader», а ниже - инструкции «Сканировать свой тег NFC на вашем NFC-экране». Когда я это делаю, я получаю это на своем серийном мониторе:

    Image
    Image

    Обратите внимание, что он дает уникальную идентификацию тега NFC, и он сообщает мне, какую информацию я написал в тегах. На этом конкретном теге у меня есть простое приветственное сообщение и ссылка на Twitter Arduino. Arduino успешно читает информацию о моем теге. Видео ниже показывает, как мой Nexus 5 читает тег и отображает сообщения.

    Запись на тег NFC

    Теперь, чтобы писать сообщение по тегу, процесс аналогичен, но мы немного изменим код. Заголовок перед установкой void () останется прежним, но это будет код, который вы хотите записать и загрузить в Arduino.

    
    

    void setup() { Serial.begin(9600); Serial.println("NFC Tag Writer"); // Serial Monitor Message nfc.begin(); } void loop() { Serial.println("\nPlace an NFC Tag that you want to Record these Messages on!"); // Command for the Serial Monitor if (nfc.tagPresent()) { NdefMessage message = NdefMessage(); message.addTextRecord("My First NFC Tag Write"); // Text Message you want to Record message.addUriRecord("//allaboutcircuits.com"); // Website you want to Record message.addTextRecord("Way to Go, It Worked!"); // Ednding Message for you to Record boolean success = nfc.write(message); if (success) { Serial.println("Good Job, now read it with your phone!"); // if it works you will see this message } else { Serial.println("Write failed"); // If the the rewrite failed you will see this message } } delay(10000); }

    Скачать код

    Этот код сохраняет три сообщения в теге: вводный текст с надписью «My First NFC Tag Write», затем ссылка на AllAboutCircuits и, наконец, окончательное сообщение «Путь к работе, это работает!».

    Image
    Image

    Когда я сканирую тег на своем телефоне, теперь я получаю два сообщения и ссылку. Вы можете изменить код, чтобы сказать все, что захотите, в сообщениях и направить вас к другой ссылке. При внесении любых изменений убедитесь, что вы проверяете информацию о теге с помощью Arduino или смартфона. Удачи, работая с NFC!

    Попробуйте этот проект сами! Получить спецификацию.