A set of node-red nodes for connecting to johnny-five IO Plugins
JavaScript HTML
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information.
icons j5 node Dec 2, 2015
lib add boardModule to j5 context Feb 14, 2018
.gitignore initial Mar 13, 2015
License.md cleanup and ajax fix Mar 14, 2015
Readme.md update versions, add playground Feb 14, 2018
gpio.html fix playground Feb 14, 2018
gpio.js add boardModule to j5 context Feb 14, 2018
i2c.png initial Mar 13, 2015
in_out.png initial Mar 13, 2015
j5node.png j5 node Dec 2, 2015
package.json add boardModule to j5 context Feb 14, 2018



Join the chat at https://gitter.im/monteslu/node-red-contrib-gpio

A set of input and output nodes for controlling General Purpose Input and Outputs (GPIOs) though the use of johnny-five I/O Plugins as well as running johnny-five scripts!

Install via NPM

From inside your node-red directory:

npm install node-red-contrib-gpio

Control I/O for Analog, Digital, PWM and Servos

input output

Also Read and Write to i2c devices


Node configuration

  • 14 is the length of bytes to read (1 byte = 8 bits)
  • i2c bytes is an array of bytes. You can't use inject node directly because data has to be inside an array.
return msg;
  • i2c read and i2c write configure i2c connection. I2c and register are decimal values! parseInt(x, 10) function is used to read values.

Now with full Johnny-five support!


Supported Hardware

node-red-contrib-gpio supports several johnny-five I/O classes:

Device IO Plugin
Arduino/Firmata firmata
Raspberry Pi raspi-io
BeagleBone Black, Green, Pocket beaglebone-io
C.H.I.P. chip-io
Galileo/Edison galileo-io
Blend Micro blend-micro-io
LightBlue Bean bean-io
ble-io(esp32, curie) ble-io
Circuit Playground(classic) playground-io
Electirc Imp imp-io
Particle(Spark) Core particle-io

Arduino is supported out of the box, but for other devices, you'll need to install their IO plugin.

For example to install the Raspberry Pi plugin:

npm install raspi-io

Remote Arduino Support

If you're using Arduino/Firmata, you can connect to a remote device via a raw tcp socket, or an MQTT connection.

For example, if you wanted to connect using tcp, in node-red you could specify an ip and port. On another machine with an Arduino plugged in you could run a server that relays a tcp socket to a serial port such as: tcpSerialRelay.js

If you wanted to connect an Arduino to an MQTT server you can use a script such as: bindSerialToMQTT.js. In node-red you can connect to the same MQTT server and subscribe to the topic the arduino is publishing on, while publishing to the topic that the arduino is subscribed to.