A simple libnfc API to interact with NFC tags.
npm i -S libnfc-js
- Linux or macOS system (Windows support is not yet implemented)
- libnfc MUST be installed in the system:
- macOS: brew install libnfc
- linux(debian): apt-get install libnfc
- this binding is looking for libnfc files in /usr/lib or /usr/local/lib
- Your NFC device MUST be configured in nfc.conf file (location depends on your libnfc installation)
Please ensure that you're able to communicate with your NFC device with nfc-list or nfc-poll commands, before you start using this package.
See full example in test.js
const {NFC, NFCReader} = require('libnfc-js')
// Core API:
let nfc = new NFC();
console.log(nfc.listDevices())
nfc.close();
let nfcReader = new NFCReader();
nfcReader.open();
or (if you have more than 1 device in the system)
let nfcReader = new NFCReader();
nfcReader.open("pn532_uart:/dev/tty.usbserial");
nfcReader.poll(); // polls for the next card
nfcReader.on('card', card => {
// Sending data:
let result = await nfcReader.transceive(Buffer.from([0]));
console.log(result);
await nfcReader.release();
console.log('card released');
nfcReader.poll(); // polls for the next card
});
// triggered if polling has failed
nfcReader.on('error', err => {
throw err;
})