Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "IoT/JavaOne2014 Demo"

< IoT
(Simulator)
(What you need to know to extend the demo)
Line 55: Line 55:
 
** TBC hopefuly by september we can have Moquette hosted on iot.eclipse.org, and use it for the demo instead of Mosquitto.
 
** TBC hopefuly by september we can have Moquette hosted on iot.eclipse.org, and use it for the demo instead of Mosquitto.
 
* 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")
 
* 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"
+
* 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]
 
* You can simulate a greenhouse by using the simulator available at XXX [TBD]

Revision as of 11:48, 10 July 2014

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

The main demonstrator is built around Eclipse Kura on the embedded side, and Eclipse Paho's Javascript (WebSockets) client on the web/client side. The web UI allows to display the temperature in the greenhouse and a button can be pushed to toggle the light.

Hardware

  • BeagleBone Black rev. C running Debian
  • Analog temperature sensor (TMP36)
  • An LED
  • Acrylic greenhouse
    • A QR-code on the greenhouse takes the visitor to a web page that allows to control the greenhouse

Software

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 and light command will also 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?]

The Kura application is available at https://github.com/kartben/kura-greenhouse-demo

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, and current WIP version deployed here

Suggested 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
  • Greenhouse connected to a commercial MQTT broker instead of iot.eclipse.org's
  • More complex greenhouse with many sensors (Philips Hue, ...) connected to Eclipse Smarthome
  • Embedded app developed using Reactive Blocks

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)
    • TBC hopefuly by september we can have Moquette hosted on iot.eclipse.org, and use it for the demo instead of Mosquitto.
  • 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