node-red-contrib-acr122u_nfc
Version:
NFC acr122u card read node
50 lines (37 loc) • 1.69 kB
JavaScript
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);
};