This sketch shows how to read UID's with the module. This is the most simple example, because for getting the UID of a tag is not necessary any authentication or key access.
Required Materials
1 x Waspmote
1 x Battery
1 x Coin cell
1 x RFID 13.56MHz board
1 x RFID 13.56MHz antenna
1 x RFID Tag
Notes
- Remember to connect the battery to Waspmote for proper operation.
- Don't write address 0, 3, 7, 11, 15, ... if you are not an advanced user. You could leave your tag unaccessible.
- Address 0 contains the IC manufacturer data. This block has read-only access.
- Address 3, 7, 11 contains the secret keys A and B. Writing in them will change access keys and conditions.
- This example can be executed in Waspmote v12
Code
/*
* ------ [RFID1356_04] RFID/NFC Get UID --------
*
* Explanation: This sketch shows how to read UID's with the module.
* This is the most simple example, because for getting the UID of
* a tag is not necessary any authentication or key access.
*
* Copyright (C) 2015 Libelium Comunicaciones Distribuidas S.L.
* http://www.libelium.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* Version: 0.2
* Design: David Gascon
* Implementation: Ahmad Saad, Javier Solobera
*/
#include <WaspRFID13.h>
// stores the UID (unique identifier) of a card:
UIdentifier UID;
// stores the answer to request:
ATQ ans;
// stores the result of init()
uint8_t state;
void setup()
{
USB.ON();
USB.println(F("RFID_04 Example"));
////////////////////////////////////////////////////////////////
// switch on the RFID/NFC @ 13.56 MHz module, and select the socket.
////////////////////////////////////////////////////////////////
RFID13.ON(SOCKET0);
USB.println(F("RFID/NFC @ 13.56 MHz module started"));
}
void loop()
{
USB.print(F("\n"));
USB.println(F("Waiting for card..."));
///////////////////////////////////////////
// 1. Init the RFID reader and get card UID
///////////////////////////////////////////
state = RFID13.init(UID, ans);
////////////////
// 2. Print UID
////////////////
if (state == 0)
{
USB.print(F("The UID: "));
RFID13.print(UID, 4);
for (int i=0; i<2; i++) // blink the LED fast to show not-OK
{
Utils.blinkLEDs(50);
}
}
else
{
USB.println(F("Card not found"));
}
delay(1000); // wait some time in each loop
}