UNPKG

node-red-contrib-acr122u_nfc

Version:

NFC acr122u card read node

50 lines (37 loc) 1.69 kB
const nfc = require('nfc-pcsc'); module.exports = function(RED) { function NFCReaderNode_acr122u(config) { RED.nodes.createNode(this, config); var node = this; // Create a new NFC reader instance const reader = new nfc.NFC(); reader.on('reader', function(reader) { node.status({ fill: "green", shape: "dot", text: "Reader detected" }); console.log(`Reader detected: ${reader.name}`); reader.on('card', function(card) { node.status({ fill: "green", shape: "dot", text: "Card detected" }); // Send the card UID to the Node-RED flow node.send({ payload: card.uid }); console.log(`Card UID: ${card.uid}`); }); reader.on('card.off', function(card) { console.log(`Card removed: `, card); node.status({ fill: "red", shape: "ring", text: "Card removed" }); node.send({ payload: "card removed" }); }); reader.on('error', function(err) { console.error('Error:', err); }); reader.on('end', function() { console.log('Reader disconnected'); node.status({ fill: "red", shape: "ring", text: "Reader disconnected" }); }); }); reader.on('error', function(err) { console.error('No reader found', err); node.status({ fill: "red", shape: "ring", text: "No reader found" }); }); } // Register the node in Node-RED RED.nodes.registerType("acr122u", NFCReaderNode_acr122u); };