Example program for the X-NUCLEO-NFC04A1

Dependencies:   BSP libNDEF ST25DV

X-NUCLEO-NFC04A1 dynamic NFC/RFID tag IC expansion board Firmware Package

Introduction

This firmware package includes Components Device Drivers, Board Support Package and example applications for STMicroelectronics X-NUCLEO-NFC04A1 dynamic NFC/RFID tag IC expansion board.

Example Application

This program gives the User the possibility to read or write the tag of the X-NUCLEO-NFC04A1. The user needs an NFC enabled device as a smartphone that has to be at least 10 cm close to the antenna of the X-NUCLEO-NFC04A1. The LEDs indicate the operational mode:

  • LED1 is on: by reading the tag the User obtains the parameters of the WiFi access points.
  • LED2 is on: by reading the tag the User is redirected to a website through the custom browser of the smartphone.
  • LED3 is on: the User can overwrite the value of the tag through the use of any NFC application.

Tested Platforms

This firmware has been tested on STM32 NUCLEO-F401RE

Committer:
DiegoOstuni
Date:
Thu Nov 14 11:23:21 2019 +0000
Revision:
0:3f1a69fc394e
Fork of the GitHub

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DiegoOstuni 0:3f1a69fc394e 1 #ifndef _X_NUCLEO_NFC04_H_
DiegoOstuni 0:3f1a69fc394e 2 #define _X_NUCLEO_NFC04_H_
DiegoOstuni 0:3f1a69fc394e 3 #include "BSP/x_nucleo_nfc04a1_nfctag.h"
DiegoOstuni 0:3f1a69fc394e 4 #include "libNDEF/NDEFcommon.h"
DiegoOstuni 0:3f1a69fc394e 5 #include "libNDEF/tagtype5_wrapper.h"
DiegoOstuni 0:3f1a69fc394e 6 #include "libNDEF/lib_NDEF_URI.h"
DiegoOstuni 0:3f1a69fc394e 7 #include "libNDEF/lib_NDEF_AAR.h"
DiegoOstuni 0:3f1a69fc394e 8 #include "libNDEF/lib_NDEF_Bluetooth.h"
DiegoOstuni 0:3f1a69fc394e 9 #include "libNDEF/lib_NDEF_Email.h"
DiegoOstuni 0:3f1a69fc394e 10 #include "libNDEF/lib_NDEF_Handover.h"
DiegoOstuni 0:3f1a69fc394e 11 #include "libNDEF/lib_NDEF_Geo.h"
DiegoOstuni 0:3f1a69fc394e 12 #include "libNDEF/lib_NDEF_MyApp.h"
DiegoOstuni 0:3f1a69fc394e 13 #include "libNDEF/lib_NDEF_SMS.h"
DiegoOstuni 0:3f1a69fc394e 14 #include "libNDEF/lib_NDEF_Text.h"
DiegoOstuni 0:3f1a69fc394e 15 #include "libNDEF/lib_NDEF_Vcard.h"
DiegoOstuni 0:3f1a69fc394e 16 #include "libNDEF/lib_NDEF_Wifi.h"
DiegoOstuni 0:3f1a69fc394e 17
DiegoOstuni 0:3f1a69fc394e 18 //#include "ST25DV/st25dv.h"
DiegoOstuni 0:3f1a69fc394e 19 //#include "x_nucleo_nfc04a1.h"
DiegoOstuni 0:3f1a69fc394e 20 #include "mbed.h"
DiegoOstuni 0:3f1a69fc394e 21 #include "PinNames.h"
DiegoOstuni 0:3f1a69fc394e 22 #include "st25dv.h"
DiegoOstuni 0:3f1a69fc394e 23
DiegoOstuni 0:3f1a69fc394e 24 #include <string>
DiegoOstuni 0:3f1a69fc394e 25
DiegoOstuni 0:3f1a69fc394e 26 using namespace std;
DiegoOstuni 0:3f1a69fc394e 27
DiegoOstuni 0:3f1a69fc394e 28
DiegoOstuni 0:3f1a69fc394e 29
DiegoOstuni 0:3f1a69fc394e 30 /* Class of the NFC04A1
DiegoOstuni 0:3f1a69fc394e 31 *
DiegoOstuni 0:3f1a69fc394e 32 * begin: It initializes the device in order to start the communication with it
DiegoOstuni 0:3f1a69fc394e 33 * writeURI: Method that implements the write of an URI through I2C communication
DiegoOstuni 0:3f1a69fc394e 34 * readURI: Reading of an URI coming from an NFC tag
DiegoOstuni 0:3f1a69fc394e 35 * writeWiFi: Write the WiFi in the NFC tag
DiegoOstuni 0:3f1a69fc394e 36 * readWiFi: Read the WiFi coming from another device that writes on the NFC tag
DiegoOstuni 0:3f1a69fc394e 37 * ledON: It lights one of the three LED based on input PIN
DiegoOstuni 0:3f1a69fc394e 38 * ledOFF: It lights off one of the three LED based on input PIN
DiegoOstuni 0:3f1a69fc394e 39 *
DiegoOstuni 0:3f1a69fc394e 40 */
DiegoOstuni 0:3f1a69fc394e 41 class X_Nucleo_NFC04 {
DiegoOstuni 0:3f1a69fc394e 42 public:
DiegoOstuni 0:3f1a69fc394e 43 X_Nucleo_NFC04(I2C* i2cChannel, DigitalOut* led_1, DigitalOut* led_2, DigitalOut* led_3, DigitalOut* LPD, DigitalIn* MISO);
DiegoOstuni 0:3f1a69fc394e 44 int begin(I2C* mi2cChannel, DigitalOut * mLPD);
DiegoOstuni 0:3f1a69fc394e 45 void ledOn(DigitalOut* led);
DiegoOstuni 0:3f1a69fc394e 46 void ledOff(DigitalOut* led);
DiegoOstuni 0:3f1a69fc394e 47 int writeURI(string protocol, string uri, string info, I2C* mi2cChannel);
DiegoOstuni 0:3f1a69fc394e 48 uint16_t writeWiFi(string NetworkSSID, Ndef_Wifi_Authentication_t AuthenticationType, Ndef_Wifi_Encryption_t EncryptionType, string NetworkKey, I2C* mi2cChannel );
DiegoOstuni 0:3f1a69fc394e 49 string readURI( I2C* mi2cChannel);
DiegoOstuni 0:3f1a69fc394e 50 private:
DiegoOstuni 0:3f1a69fc394e 51 DigitalOut *mled_1;
DiegoOstuni 0:3f1a69fc394e 52 DigitalOut *mled_2;
DiegoOstuni 0:3f1a69fc394e 53 DigitalOut *mled_3;
DiegoOstuni 0:3f1a69fc394e 54 DigitalOut *mLPD;
DiegoOstuni 0:3f1a69fc394e 55 DigitalIn *mMISO;
DiegoOstuni 0:3f1a69fc394e 56 I2C *mi2cChannel;
DiegoOstuni 0:3f1a69fc394e 57
DiegoOstuni 0:3f1a69fc394e 58 };
DiegoOstuni 0:3f1a69fc394e 59
DiegoOstuni 0:3f1a69fc394e 60 extern X_Nucleo_NFC04 X_Nucleo_Nfc04;
DiegoOstuni 0:3f1a69fc394e 61
DiegoOstuni 0:3f1a69fc394e 62 #endif