Date post: | 17-Feb-2017 |
Category: |
Technology |
Upload: | anne-nevin |
View: | 419 times |
Download: | 1 times |
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: [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
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