+ All Categories
Home > Technology > Building Applications with Eclipse IoT, Block by Block

Building Applications with Eclipse IoT, Block by Block

Date post: 17-Feb-2017
Category:
Upload: anne-nevin
View: 419 times
Download: 1 times
Share this document with a friend
24
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
Transcript
Page 1: Building Applications with Eclipse IoT, Block by Block

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

Page 2: Building Applications with Eclipse IoT, Block by Block

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: [email protected]

www.bitreactive.com

Frank Alexander KraemerTechnology Manager

M: +47 959 28 555E: [email protected]

www.bitreactive.com

Anne NevinSales

M: +47 930 07 669E: [email protected]

www.bitreactive.com

Kathrin Winkler System Architect

M: +4747914350E: [email protected]

www.bitreactive.com

Ole BuddeSystem Architect

M: +47 406 32 522E: [email protected]

www.bitreactive.com

Linda Ariani GunawanSystem Architect

M: +47 463 92 572E: [email protected]

www.bitreactive.com

Alina IsaksenSystem Architect

M: +47 980 28 536E: [email protected]

www.bitreactive.com

Page 3: Building Applications with Eclipse IoT, Block by Block

Cloud

Gateway

Make data smart with intelligent gateways

Page 4: Building Applications with Eclipse IoT, Block by Block

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

Page 5: Building Applications with Eclipse IoT, Block by Block
Page 6: Building Applications with Eclipse IoT, Block by Block

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

Page 7: Building Applications with Eclipse IoT, Block by Block

Cloud

Gateway

JVM

A 1 A 2 A 3

Page 8: Building Applications with Eclipse IoT, Block by Block

Cloud

Gateway

JVM

A 1 A 2 A 3

App App

Page 9: Building Applications with Eclipse IoT, Block by Block

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

Page 10: Building Applications with Eclipse IoT, Block by Block

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

Page 11: Building Applications with Eclipse IoT, Block by Block

11

Air Ventilation Motor Control

Battery

WiFi dongle

Distance sensor

Camera

Page 12: Building Applications with Eclipse IoT, Block by Block

12

This is the top level of the application

Page 13: Building Applications with Eclipse IoT, Block by Block

13

Inside the MQTT interface block. It is

composed of 5 blocks from the library of

block

Page 14: Building Applications with Eclipse IoT, Block by Block

14

The CoAP interface block interacts wih the front-end application

via CoAP server

Page 15: Building Applications with Eclipse IoT, Block by Block

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.

Page 16: Building Applications with Eclipse IoT, Block by Block

16

Inside the CoAP interface block which

is composed of 6 block from the library of

blocks

Page 17: Building Applications with Eclipse IoT, Block by Block

17

Page 18: Building Applications with Eclipse IoT, Block by Block

18

The motor control is composed of 4 blocks

from the library of blocks

Page 19: Building Applications with Eclipse IoT, Block by Block

19

Page 20: Building Applications with Eclipse IoT, Block by Block

20

proximity limit

The proximity detector is composed of 3

blocks from the library of blocks

Page 21: Building Applications with Eclipse IoT, Block by Block

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

Page 22: Building Applications with Eclipse IoT, Block by Block

22

Page 23: Building Applications with Eclipse IoT, Block by Block

Manually written code

Reusable code

Generated code

~98%

~2%

+ Runtime

Page 24: Building Applications with Eclipse IoT, Block by Block

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