Introduction: Node-RED Application Development With Sensorian

Node-RED is a node.js based tool for developing Internet of Things (IoT) applications by wiring together various types of nodes. These nodes enable an application to read sensors, control outputs, read and write data to Web APIs, and process events. We have developed our Sensorian shield to integrate with Node-RED. A set of nodes gives a Node-RED developer the ability to interact with Sensorian's inputs and outputs.

Step 1: Setting Up Your Raspberry Pi

The Raspberry Pi's operating system must be configured to communicate
with the Sensorian shield. The simplest way to do this is to use our image created specifically for using Sensorian on Raspberry Pi. Download an image from http://sensorian.io/downloads/ and burn it to an SD card or alternatively, build your own with our build script.

Step 2: Beginning Node-RED Development

Open a terminal and type:

cd Sensorian/Handler_Scratch

Press Enter, then type:

sudo ./run_servers.sh

Press Enter.

Open another terminal and type:

node-red

Press Enter.

Wait until the Server now running message appears then open the Web browser on the Raspberry Pi (slow) and visit 127.0.0.1:1880 or the Web browser on your PC (faster) and visit IP-ADDDRES-OF-RPI:1880.

Step 3: Displaying Live Transit Information

www.nextbus.com provides a public XML data feed, for many different cities, containing information about how public transit buses are keeping on schedule. Detailed documentation for their API can be found here. In this example we will be monitoring TTC Bus 12 at the Victoria Park Subway station in Toronto, Ontario, Canada. The data URL for this station is

http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=ttc&stopId=14788&routeTag=12

but if you are interested in data at another location visit

http://webservices.nextbus.com/service/publicXMLFeed?command=agencyList

and make note of the agency tag. Then visit

http://webservices.nextbus.com/service/publicXMLFeed?command=routeList&a=AGENCYTAG

replacing AGENCYTAG with the agency tag from the previous step. Now make note of your selected route tag. Now visit

http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a=AGENCYTAG&r=ROUTETAG

replacing AGENCYTAG and ROUTETAG with the agency and route tags from the previous steps. Make note of your selected stopId.

Your data URL will be

http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=AGENCYTAG&stopId=STOPID&routeTag=ROUTETAG

replacing AGENCYTAG, ROUTETAG, and STOPID with the previously obtained agency tag, route tag, and stopId respectively.

Step 4: Configuring the Touchpad Switch

This application will be designed so that pressing Sensorian B1 will display information about the first bus serving the stop and pressing Sensorian B2 will display information about the second bus serving the stop. To start, first drag the touchpad node into the workspace and then drag a switch node. Double-click the switch node and set its Name to Touchpad Switch. Add a == 1 rule and a == 2 rule. Then wire sensorian-touchpad to the left side of Touchpad Switch.

Step 5: Using Nextbus API

Drag two http request nodes into the workspace. Set the URL for both of them to the URL obtained in Step 3. In this example it will be

http://webservices.nextbus.com/service/publicXMLFeed?command=predictions&a=ttc&stopId=14788&routeTag=12

Leave everything else as is. Wire the left side of both http request nodes into the outputs of the Touchpad Switch node.

Step 6: Parsing Data

Drag two function nodes into the workspace. Double-click the first one and name it BUS1. Name the second one BUS2. Set the function of BUS1 to the code at

https://gist.github.com/sensorian/60d2bceb146aaa39...

Set the function of BUS2 to the code at:

https://gist.github.com/sensorian/51ac745cccabc746...

Step 7: Displaying Data

Finally, the data must be displayed. Drag a Sensorian tft node into the workspace and wire it to the right sides of both BUS1 and BUS2. Double click sensorian-tft and set its Orientation to Landscape.

Step 8: Using the Program

Deploy the program. Press B1 on the Sensorian to display the first bus schedule and B2 to display the second bus schedule.

Step 9: About Sensorian

To learn more about the Sensorian shield please visit, http://www.sensorian.io