Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/italia/cie-PN532
Arduino library for SPI and I2C access to the NFC chip in the Italian Electronic Identity Card (CIE)
https://github.com/italia/cie-PN532
arduino cie nfc
Last synced: about 2 months ago
JSON representation
Arduino library for SPI and I2C access to the NFC chip in the Italian Electronic Identity Card (CIE)
- Host: GitHub
- URL: https://github.com/italia/cie-PN532
- Owner: italia
- License: bsd-3-clause
- Created: 2017-09-26T14:42:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-03-20T17:30:25.000Z (almost 3 years ago)
- Last Synced: 2024-08-03T02:04:02.927Z (5 months ago)
- Topics: arduino, cie, nfc
- Language: C++
- Homepage:
- Size: 2.07 MB
- Stars: 23
- Watchers: 17
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.rst
- License: LICENSE
Awesome Lists containing this project
- .github - cie-PN532
README
# cie-PN532
Arduino library for SPI access to the PN532 NFC chip in the Italian Electronic Identity Card (CIE).___
![Warning](images/warning.png "This library does NOT yet detect cloned cards")
___## Online resources
[![Online documentation](images/documentation.png "Online documentation")](https://cie-pn532.azurewebsites.net) [![Demonstration video](images/video.png "Demonstration video")](https://www.youtube.com/watch?v=xGILUdw0EKQ)## Prerequisites
This library depends upon a modified version of the **Adafruit_PN532** library which you can obtain from this GitHub Repository.https://github.com/BrightSoul/Adafruit-PN532
You must install the Adafruit_PN532 and cie_PN532 in your Arduino _libraries_ directory.
Plese follow the instructions from the Arduino guide.https://www.arduino.cc/en/Guide/Libraries
## Wiring PN532 breakout to the Arduino Uno for SPI communication
At present, just the SPI connection is supported. The examples provided will work with this wiring.![images/pn532-wiring-spi.png](images/pn532-wiring-spi.png)
This wiring is also described in detail on this page at the Adafruit website.
https://learn.adafruit.com/adafruit-pn532-rfid-nfc/breakout-wiring
## Getting started
Create a new arduino project and set it up like this:
```C++
//Include some libraries
#include
#include
#include//Use the cie_PN532 with the typical wiring, as pointed out above
cie_PN532 cie();void setup(void) {
#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif
Serial.begin(115200);
//Initialize the PN532 breakout board
cie.begin();
}
```
Then, in your loop, wait for a card then read its ID_Servizi (a low-security unique identifier)```C++
void loop(void) {
//Let's see if a card is present
bool cardDetected = cie.detectCard();
if (!cardDetected) {
//No card present, we wait for one
delay(100);
return;
}//Good! A card is present, let's read the ID!
word bufferLength = EF_ID_SERVIZI_LENGTH;
byte buffer[EF_ID_SERVIZI_LENGTH];if (!cie.read_EF_ID_Servizi(buffer, &bufferLength)) {
Serial.print(F("Error reading EF.ID_SERVIZI"));
delay(1000);
return;
}//We were able to read the ID_Servizi, print it out!
Serial.print(F("EF.ID_Servizi: "));
cie.printHex(buffer, bufferLength);
}
```## More examples
This library comes with an _examples_ directory. You can load and run examples from the Arduino IDE by clicking the File menu -> Examples -> cie 532.## Useful links
* The CIE 3.0 chip specification (italian)http://www.agid.gov.it/sites/default/files/documentazione/cie_3.0_-_specifiche_chip.pdf
* Technical specification for the European Card for e-Services and National e-ID Applications
http://www.unsads.com/specs/IASECC/IAS_ECC_v1.0.1_UK.pdf
* Specifiche tecniche del documento digitale unificato (italian)
http://www.agid.gov.it/sites/default/files/leggi_decreti_direttive/specifiche_tecniche_del_documento_digitale_unificato_v.1.0.0.pdf