Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

IoT/JavaOne2014 Demo

< IoT
Revision as of 21:00, 24 June 2014 by Contact.benjamin-cabe.com (Talk | contribs) (Created page with "= Demo scenario = We want to demonstrate a connected greenhouse that reports its temperature on a regular basis, and that includes a remotely controlled light. The key points...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Demo scenario

We want to demonstrate a connected greenhouse that reports its temperature on a regular basis, and that includes a remotely controlled light. The key points that we want to demonstrate are as follows:

  • Interoperability – The open frameworks and protocols at Eclipse IoT allow the creation of interoperable IoT solutions (e.g. control the greenhouse lights from a web application as easily as from a physical remote)
  • Reusability - Thanks to the Java and OSGi platforms, it is easier to produce modular and reusable software components that can be shared at several levels of the end-to-end IoT chain
  • Connectivity - Protocols like MQTT and CoAP allow easy connections of devices to the cloud or to each other

Main demo

The main demonstrator is built around Eclipse Kura on the embedded side, and Eclipse Paho's Javascript (WebSockets) client on the web/client side.

Hardware

  • BeagleBone Black rev. C running Debian
  • Analog temperature sensor (TMP36)
  • An LED

Kura app

The BeagleBone Black will be running Eclipse Kura plus an application that periodically sends temperature value using MQTT. The polling interval is configurable via a setting, therefore allowing to showcase the Kura Web UI. The application is also subscribed to a specific topic on which a command to toggle the LED ON/OFF can be sent.

In order to enable CoAP demonstrations, the temperature will be exposed over CoAP (ideally, both WiFi and 802.15.4), thanks to a Kura bundle using Californium. [TBD what kind of "client" application do we want to visualize the temperature read using CoAP?]

Web app

A web UI uses MQTT over Websockets to display live temperature updates (both instant value and history chart using Rickshaw JS charting library). The web UI must be responsive to look nice on a smartphone (live demo should include a scenario where two people on the booth can both interact with the greenhouse simulteanously)

Simulator

In order to allow early integration by people interested in extending the demo, and also for the sake of demonstrating multiples greenhouses at the same time, a self-contained web simulator will allow users to create their own fake greenhouse.

This simulator is implemented in Javascript, using the MQTT over WebSockets implementation from Eclipse Paho. It allows to create as many greenhouses as wanted and, for each of them, set a mock temperature value and visualize whether the light is ON or OFF.

See UI mock-up here.

Other possible extensions to the demo core scenario

  • Consume live or consolidated sensor data using MQTT and "forward it" to another cloud service
  • Consume live or consolidated sensor data using MQTT and provide a custom visualization for it
  • ...

What you need to know to extend the demo

  • The Kura greenhouse app talks to iot.eclipse.org MQTT broker (tcp://iot.eclipse.org:1883)
  • Temperature is posted on the topic "javaone2014/eclipse-greenhouse/sensors/temperature" ; payload is a string representation of the temperature, in degrees Celsius (example: "24.2")
  • Command to toggle the LED can be sent on "javaone2014/eclipse-greenhouse/actuators/light" ; payload should be "ON" or "OFF"
  • You can simulate a greenhouse by using the simulator available at XXX [TBD]

Back to the top