====== NFC example ======
{{:en:iot:examples:nfc_module.png?200|}}
{{:en:iot:examples:esp_module_pinout.png?200|}}
{{:en:iot:examples:esp_with_nfc_v3.png?250|}}
SCK -> 4 \\
MISO -> 5 \\
MOSI -> 6 \\
SS -> 13 \\
VCC -> 8 \\
GND -> 15 \\
Needed libraries:
lib_deps = ITTIoT, Adafruit PN532
The code below will upload card ID to mqtt server, when a card is present.
/*
* IoT NFC example
*
* This example will publish to "NFC" topic
*
* Created 19 Nov 2019
* Modified by Lars Briedis 17 June 2024
*/
#include
#include
#include
#define WIFI_NAME "name"
#define WIFI_PASSWORD "password"
//Define pins for communication with the NFC reader
#define PN532_SCK D5
#define PN532_MOSI D7
#define PN532_SS D3
#define PN532_MISO D6
//Setup Adafruit PN532 library
Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS);
void iot_connected()
{
Serial.println("MQTT connected callback");
Serial.println("IoT NFC example!");
}
void setup()
{
Serial.begin(115200);
Serial.println("Booting");
//iot.setConfig("wname", WIFI_NAME);
//iot.setConfig("wpass", WIFI_PASSWORD);
//iot.printConfig(); // print json config to serial //Peale Serial.begin ja enne iot.setup
//iot.setup();
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.println("Didn't find PN53x board");
while (1);
}
nfc.SAMConfig();
}
void loop()
{
boolean success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
uint8_t uidLength;
char buf[10];
char str[70] = "";
//iot.handle();
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 1000); // Card reading function
if (success)
{
//Concatenate card ID
for(int i = 0; i < uidLength;i++)
{
String(uid[i]).toCharArray(buf,10);
strcat(str, buf);
}
//iot.publishMsg("NFC", str); // Publish card ID to topic "NFC"
Serial.println(str);
delay(1000);
}
}