/ditto-examples

Eclipse Ditto™: Digital Twin framework - Examples

Primary LanguageJavaEclipse Public License 2.0EPL-2.0

Eclipse Ditto :: Examples

Join the chat at https://gitter.im/eclipse/ditto

This repository contains examples and demonstrations of how to use Eclipse Ditto.

Projects

The grove control project shows the different communication possibilities using Eclipse Ditto on your local machine and a Rasperry Pi with GrovePi+ board as IoT device. This project uses Python for the Raspberry Pi code and jQuery for the Web UI.

This example shows how to combine the REST and WebSocket API of Eclipse Ditto. This is demonstrated using a Frontend that sends REST requests and a Thing that has a WebSocket connection to Ditto and uses it to receive and respond to Messages. This project requires a running Eclipse Ditto instance and a modern web browser.

Arduino based example on a ESP8266 board publishing read out sensor values in Ditto Protocol via the MQTT endpoint of Eclipse Hono to a digital twin in Ditto:

  • BME680 sensor
    • temperature
    • humidity
    • barometer
  • BNO055 sensor
    • temperature
    • linear acceleration
    • angular velocity
    • gravity
    • absolute orientation
    • accelerometer
    • magnetometer
  • power voltage

This example demonstrates how to connect an Arduino based device to Eclipse Ditto and how payload mapping can be utilized to transform its telemetry data into a valid digital twin representation. Furthermore a simple front-end allows manipulating the digital twin and receives twin updates via SSE (Server Sent Events).

Parts of this example

  • Arduino
    • How to establish a network connection
    • How to establish a MQTT connection
    • How to receive and publish valid JSON data
  • Front-end
    • How to use Ditto's HTTP API for
      • Create policy and things
      • Create a connection (MQTT)
      • Send live messages to device
      • Listen to server sent events
  • Eclipse Ditto
    • How to set up Eclipse Ditto with Docker (alternatively use Ditto's Sandbox)
    • How to apply payload mapping on incoming messages from a connection

This example demonstrates how to setup step by step MQTT connection in Ditto. It presents how to updates things in Ditto and how to receive notifications that something was changed.

Samples to leverage Eclipse Ditto capabilities with Microsoft Azure services.

A code kata is a way of learning new things and consolidating what has been learned. The presented katas serve to understand specific features of ditto better.