nobodyMO / node-red-contrib-piface-digital

4 stars 4 forks source link

node-red-contrib-piface-digital

Node-RED nodes to control a PiFace Digital add-on board for a Raspberry-Pi using the node implementation node-pifacedigital.

Note: Some later versions of the PiFace relabelled the switch inputs to be 0 - 7 instead of 1 - 8 as on the original boards. We cannot automatically detect this so the user will have to apply some common sense.

Pre-reqs

Please install all prequisites for node-pifacedigital before you install this node: Please consider that the current Version node-pifacedigital on npm only supports node.js >=4.x.x.

On a fresh Raspbian installation you should enable SPI. Therefor start raspi-config and enable SPI under "Advanced Options".

After rebooting you should add your user to the SPI-Group, e.g. for user pi:

usermod -a -G spi pi

Install necessary libraries

git clone https://github.com/piface/libmcp23s17.git
cd libmcp23s17/
make
sudo make install
git clone https://github.com/piface/libpifacedigital.git
cd libpifacedigital/
make
sudo make install

Install

Run the following command in your Node-RED user directory - typically ~/.node-red or `/opt/iobroker/node_modules/iobroker.node-red´on a iobroker installation.

npm install node-red-contrib-piface-digital

If you get error messages during the installation, try the npm option --unsafe-perm to avoid permission errors.

Usage

A pair of input and output Node-RED nodes for the Raspberry Pi PiFace Digital add-on board.

PiFace board number

The hardware address the board must be set with the jumper on the board. To address the boards use the following jumper settings:

Board number JP1 JP2
Address 0 0 0
Address 1 1 0
Address 2 0 1
Address 3 1 1

Output

The PiFace output node will set the selected pin on or off depending on the value passed in. Expects a msg.payload with either a 1 or 0 (or true or false).

Input

The PiFace input node generates a msg.payload with either a 0 or 1 depending on the state of the input pin.

The msg.topic is set to piface/{the pin number}