Building Applications with Eclipse IoT, Block by Block

Preview:

Citation preview

March 2012 - Business Confidential - Bitreactive AS

Building Applications with Eclipse IoT, Block by Block

Anne Nevin

Bitreactive AS, Trondheim

Eclipse DemoCamp Trondheim August 27th. 2015

Bitreactive

■ Founded June 2011, spinoff from NTNU ■ Delivers the software development tool Reactive Blocks which provides

specific solutions to the programming challenges of the IoT industry.

Jone S. RasmussenGeneral Manager

M: +47 957 26 339E: jone@bitreactive.com

www.bitreactive.com

Frank Alexander KraemerTechnology Manager

M: +47 959 28 555E: frank@bitreactive.com

www.bitreactive.com

Anne NevinSales

M: +47 930 07 669E: anne@bitreactive.com

www.bitreactive.com

Kathrin Winkler System Architect

M: +4747914350E: kathrin@bitreactive.com

www.bitreactive.com

Ole BuddeSystem Architect

M: +47 406 32 522E: ole@bitreactive.com

www.bitreactive.com

Linda Ariani GunawanSystem Architect

M: +47 463 92 572E: linda@bitreactive.com

www.bitreactive.com

Alina IsaksenSystem Architect

M: +47 980 28 536E: alina@bitreactive.com

www.bitreactive.com

Cloud

Gateway

Make data smart with intelligent gateways

Cloud

Gateway

It is difficult to implement IoT gateway solutions

• Tie together hardware and network resources • Different standards and legacy systems • Manage connectivity and network issues • Device management • Autonomous operation • Integrate data with existing enterprise systems and databases

Reactive Blocks

6

CoAP Resource

ok

getResponse

init

failed

get

post

Config Listener

initConfig

start

updatedConfig

Kura CloudClient

readypublish

start

stop

waiting

stopped

failed

msgArrived

MQTT Core

initOksubscribe

init

initFailed

publishOk

message

error

stopped

disconnected

unsubscribe

publish

stopRPi GPIO Digital In

valuestop

init

initError

initOk

isLow

isHigh

stopped

read

initPS

Config Listener

initConfig

start

updatedConfig

playing

Modbus

initOkexecutedReadIn

init

initFailed

readDone

writeDone

readFailed

stopped

writeFailed

deviceId

executedWrite

stop

executeReadHold

registerId

1 2 3Config Listener

initConfig

start

updatedConfig

Makes it easy to combine Eclipse technologies to make new applications

Cloud

Gateway

JVM

A 1 A 2 A 3

Cloud

Gateway

JVM

A 1 A 2 A 3

App App

Kura is a Java/OSGi-based container for remote management and control

MQTT is a lightweight messaging protocol based on the publish/subscribe model. PAHO provides the MQTT client implementation.

CoAP (constrained application protocol) is a RESTful protocol, like HTTP over UDP. Californium implements the CoAP standard in Java

The Raspberry Pi Eclipse IoT Car

Use a remote console to move the car around in different directions

Publish pictures to an MQTT server for remote viewing

Configure the proximity limit at runtime

Kura

MQTT

CoAP

11

Air Ventilation Motor Control

Battery

WiFi dongle

Distance sensor

Camera

12

This is the top level of the application

13

Inside the MQTT interface block. It is

composed of 5 blocks from the library of

block

14

The CoAP interface block interacts wih the front-end application

via CoAP server

15

Server Client

The front end application used to vie and interact with the

data was also implemented with

Reactive Blocks. We used Java Swing.

16

Inside the CoAP interface block which

is composed of 6 block from the library of

blocks

17

18

The motor control is composed of 4 blocks

from the library of blocks

19

20

proximity limit

The proximity detector is composed of 3

blocks from the library of blocks

21

Config listener: Listens to changes in the configuration property Proximity limit. At runtime this property can be seen and set via the Kura´s web-console

22

Manually written code

Reusable code

Generated code

~98%

~2%

+ Runtime

24

Generic Functionality ■ Buffering ■ Counters ■ Flow Logic ■ Session Utilities ■ Iterator

Timers ■ Timers ■ Periodic Timers ■ Watchdogs

Application Prototyping ■ Java Swing ■ Java FX ■ Speech (Free TTS) ■ Properties

Hardware Connections ■ Modbus ■ Serial I/O ■ Raspberry Pi GPIO ■ Berryclip for Raspberry Pi ■ Gertboard for Raspberry Pi ■ USB Camera

Files ■ Files Utilities ■ File I/O ■ Properties

End-User Communication ■ SMS: Twilio, Keyteq, Clickatell ■ Email ■ CMPP Client (Smack)

Communication ■ HTTP/HTTPS ■ MQTT ■ CoAP ■ JSON-RPC ■ AMQP ■ Network Monitoring ■ OPC-UA

Data Collection Services ■ Sierra Wireless AirVantage ■ IBM IoT Foundation ■ Eurotech ESF ■ Xively ■ Solair

Security ■ Cryptography ■ OAuth 2.0

Transformation of Data ■ GSON ■ XML Parsing (DOM4J) ■ XSL Transformation

Eclipse Kura and OSGi ■ Configuration Listener ■ Cloud Client Handler ■ Event Admin ■ Service Tracker ■ Termination ■ Service Register

Location ■ Geofence ■ KML

Data Processing ■ Video Recording ■ Image Processing

Not just a tool but also a growing library of ready-to-use building blocks

Recommended