rc522
Version:
node.js module to access a rfid reader with rc522 chipset which is connected a raspberry pi
85 lines (64 loc) • 2.7 kB
Markdown
#RFID RC522 on Raspberry PI with NodeJS
node.js module to access a rfid reader with rc522 chipset which is connected a raspberry pi
##Fork of
This is a fork with added functionality. For a nice and simpler module please see the original https://www.npmjs.com/package/rc522-rfid https://github.com/sbrinkmann/rc522-rfid and adjustment of https://github.com/SebastianPozoga/rc522-rfid
## Purpose
This node module is to access RFID reader with a rc522 chipset (e.g. http://amzn.com/B00GYR1KJ8) via GPIO interface of the raspberry pi.
## Functionality
The module is currently only able to read the serial number of the tag which is hold onto the reader.
## Installation
## 1. Install node:
```
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs
```
## 2. Update your PI:
```
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
sudo apt-get clean
```
## 3. Configure the PI:
The RFID reader is plugged onto the raspberry pi like it is described over here http://geraintw.blogspot.de/2014/01/rfid-and-raspberry-pi.html
- The GCC compiler is installed ```sudo apt-get install build-essential```
- node-gyp is installed ```sudo npm install -g node-gyp```
## 4. Compile the spi_bcm2835 driver:
First of all we have to install the C library for Broadcom BCM 2835 as it describe` here
```
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.49.tar.gz
tar -zxf bcm2835-1.49.tar.gz
cd bcm2835-1.49
./configure
make
sudo make check
sudo make install
sudo modprobe spi_bcm2835
```
## 5. Make a node project
```
cd ~/
mkdir RFID
cd RFID/
npm install --save rc522
nano rfid.js
```
Put this into:
```
var rc522 = require("rc522");
console.log('Ready!!!');
rc522(function(rfidSerialNumber){
console.log(rfidSerialNumber);
});
```
Save and run: (Is necessary "sudo")
```
sudo node rfid.js
```
NOTE: Running as root
```
Prior to the release of Raspbian Jessie in Feb 2016, access to any peripheral device via /dev/mem on the RPi required the process to run as root. Raspbian Jessie permits non-root users to access the GPIO peripheral (only) via /dev/gpiomem, and this library supports that limited mode of operation.
If the library runs with effective UID of 0 (ie root), then bcm2835_init() will attempt to open /dev/mem, and, if successful, it will permit use of all peripherals and library functions.
If the library runs with any other effective UID (ie not root), then bcm2835_init() will attempt to open /dev/gpiomem, and, if successful, will only permit GPIO operations. In particular, bcm2835_spi_begin() and bcm2835_i2c_begin() will return false and all other non-gpio operations may fail silently or crash.
```