Building Applications with Eclipse IoT, Block by Block
-
Upload
anne-nevin -
Category
Technology
-
view
424 -
download
1
Transcript of Building Applications with Eclipse IoT, Block by Block
![Page 1: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/3.jpg)
Cloud
Gateway
Make data smart with intelligent gateways
![Page 4: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/5.jpg)
![Page 6: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/7.jpg)
Cloud
Gateway
JVM
A 1 A 2 A 3
![Page 8: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/8.jpg)
Cloud
Gateway
JVM
A 1 A 2 A 3
App App
![Page 9: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/11.jpg)
11
Air Ventilation Motor Control
Battery
WiFi dongle
Distance sensor
Camera
![Page 12: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/12.jpg)
12
This is the top level of the application
![Page 13: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/14.jpg)
14
The CoAP interface block interacts wih the front-end application
via CoAP server
![Page 15: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/17.jpg)
17
![Page 18: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/18.jpg)
18
The motor control is composed of 4 blocks
from the library of blocks
![Page 19: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/19.jpg)
19
![Page 20: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/22.jpg)
22
![Page 23: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/23.jpg)
Manually written code
Reusable code
Generated code
~98%
~2%
+ Runtime
![Page 24: Building Applications with Eclipse IoT, Block by Block](https://reader034.fdocuments.in/reader034/viewer/2022042906/58a6d2921a28abcc458b69e1/html5/thumbnails/24.jpg)
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