rbn
This is a bit of software that was built for the raspberry pi, but should work on any linux box. It's good at doing things like passing data from bluetooth low energy devices over a websocket connection, or sending data from a connected arduino up to firebase. It consists of two parts - interfaces and transports.
Interfaces
Interfaces allow the pi to collect data from other devices. Currently, the following interfaces are supported:
- rbn-ble - bluetooth low energy
- rbn-rfid - usb-based rfid readers
- rbn-arduino - arduino over serial
You should restart the pi after plugging in a new interface, to make sure the OS picks up the changes
Transports
Got some data from an interface? Awesome. Transports let you send that data somewhere on the internet.
- rbn-websockets - uses websockets
- rbn-http - http POST requests
- rbn-firebase - firebase
Easy Mode
- Download and unzip the grid image from here.
- Write it onto an SD card by following this guide.
- Plug the SD card into your pi, and SSH into it (user:pass is pi:pi)
Hard Mode
- SSH onto your raspberry pi, and change to your home directory.
- Run `git clone git@github.com:robinpowered/robin-grid.git'.
- Change into the grid directory with a
cd robin-grid
. - Run
npm install --production
to pull down and install dependancies.
Customizing
To add or remove interfaces and transports, and configure the behavior of the grid, change the options in config.json. By default, config.json looks like this:
Besides the interfaces
and transports
objects, the supported options are:
autoUpdate
- update automatically when a new version is released (default:false
)runOnBoot
- run the grid automatically when the OS boots up usingforever
(default:true
)
Running
Streaming logs and debugging
If you want to run the base station and stream the log output, run
sudo DEBUG=base,websocket,ble nodemon grid.js
The DEBUG=namespace1,namespace2,namespace3
parameter is there to help you cut down on the number of logs for easier viewing. Each module has a corresponding namespace - rbn-rfid
logs on the rfid
namespace, rbn-websocket
logs on the socket
namespace, etc.
- If you don't have nodemon installed, run
npm install -g nodemon
*
Also, a note on the autoUpdate
option - if you have autoUpdate
set to true and your pi has been rebooted recently, chances are the grid is already running. Do a sudo forever list
to check, and a sudo forever stopall
to kill it before you run the nodemon
command above.