Prototyping

From Web of Things Community Group

This page collects ideas for prototyping the Web of Things.

The main question is what you are trying to achieve. Demoing basic sensors and actuators offers an illustration of the architectural principles, but not the application domains that will drive commercial adoption.

There are a range of hardware kits available and varying considerably in price. At the high end the waspmote involves a coordinator and multiple client devices. A range of radio technologies are available, along with a large range of sensors.

A lower cost option is to use the Raspberry Pi together with Arduino. This is well suited to hobbyist experimentation and there is plenty of advice on connecting sensors, basic actuators, and building simple remote controlled robots.

A simple demo set up would involve a Raspberry Pi together with an Arduino board and a few sensors and actuators wired to the Arduino board. The Raspberry Pi acts as a gateway to the Internet. A more sophisticated set up involves using radio frequency communications between a coordinator attached to the Raspberry Pi, and set of client devices connected to sensors and actuators. One approach is to use XBee which comes as an IEEE 802.15.4 RF module that plugs into a base board controlled through a serial connection. The simplest solution is to use the Arduino wireless SD adapter as a base board that in turn plugs into an Arduino board.

Raspberry Pi runs Linux, and can be controlled using native code (e.g. C), Java, Python, or JavaScript (with Node.js). If you want to program the client devices with JavaScript, one possibility is Espruino, and in principle it should be straightforward to combine this with XBee.

  • Espruino JavaScript based microcontroller

The following article describes how to control an Arduino with JavaScript via a USB connection to a laptop computer running Node.js and Johnny-Five, which is a library of JavaScript components that know how to talk to an Arduino through the “Firmata” protocol.

In principle, it shouldn't be too hard to replace the USB cable with a wireless connection. The rationale for using a Raspberry Pi is as a standalone gateway device. For demo's it is sufficient to use a laptop computer.

Security camera, home gateway and cloud service platform

This makes use of a remotely controllable camera together with a home gateway based upon Raspberry Pi and a cloud server for the service platform. The gateway and service platform are implemented with Node.js for services using JavaScript. The service interfaces are declared with an interface definition language that hides the messaging layer, which is implemented on top of HTTP. More details on the architecture are given in this paper.