building the internet of things with eclipse iot - javaland 2014
DESCRIPTION
TRANSCRIPT
![Page 1: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/1.jpg)
BUILDING THE INTERNET OF THINGS WITH ECLIPSE IOT* Benjamin Cabé @kartben
Eclipse Foundation
*and some cool Java technologies!
![Page 2: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/2.jpg)
M2M? IoT?
![Page 3: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/3.jpg)
❝ Technology that supports wired or wireless communication between devices
![Page 4: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/4.jpg)
![Page 5: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/5.jpg)
![Page 6: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/6.jpg)
![Page 7: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/7.jpg)
![Page 8: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/8.jpg)
http://www.flickr.com/photos/brunauto/5687363705
fragmentation
![Page 9: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/9.jpg)
lock-in
http://www.flickr.com/photos/photosightfaces/8152791780/
![Page 10: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/10.jpg)
http://www.flickr.com/photos/90514086@N00/952121271/ http://www.flickr.com/photos/cyberslayer/952121271
complexity
![Page 11: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/11.jpg)
![Page 12: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/12.jpg)
Protocols
Tools
Frameworks
Services
![Page 13: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/13.jpg)
Paho provides client implementations of the MQTT protocol.
Mihini is an embedded Lua runtime providing HW abstraction and other services.
Koneki provides tools for embedded Lua developers.
![Page 14: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/14.jpg)
Eclipse SCADA is a complete Java/OSGi-based SCADA system (communication, monitoring, GUI, …)
Kura is a Java/OSGi-based M2M container for gateways. Has support for Modbus, CANbus, MQTT, …
Mosquitto is a lightweight server implementation of the MQTT and MQTT-SN protocols, written in C.
(code pending)
![Page 15: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/15.jpg)
Ponte bridges M2M/IoT (MQTT, CoAP) protocols to the Web.
SmartHome provides a complete set of services for home automation gateways.
OM2M implements the ETSI M2M standard.
(code pending)
![Page 16: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/16.jpg)
Californium is an implementation of the CoAP protocol written in Java. Includes DTLS for security.
Wakaama is an implementation of LWM2M written in C.
Krikkit is a rules system for programming edge devices just like you’d configure a router
Wakaama
Krikkit
(code pending)
(code pending)
(code pending)
![Page 17: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/17.jpg)
Concierge is a lightweight implementation of OSGi Core R5.
Your project? J
Concierge
We need to talk! ;-)
(code pending)
![Page 18: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/18.jpg)
I often get asked…
![Page 19: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/19.jpg)
WHAT IS ZE BEST LANGUAGE FOR
IOT?!?
I often get asked…
![Page 20: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/20.jpg)
ANSWER: It depends! J For embedded systems…
Co
de
vs.
C
on
figu
rati
on
Constrained micro-controllers vs. Smart gateways
C Javascript Lua Java/OSGi
![Page 21: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/21.jpg)
ANSWER: It depends! J In
fras
tru
ctu
re
v
s.
A
pp
. dev
elo
pm
ent
Communication enablement vs. Information systems
On the server side…
C Javascript Java/OSGi
![Page 22: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/22.jpg)
BUILDING BLOCKS FOR IOT
![Page 23: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/23.jpg)
BUILDING BLOCKS FOR IOT … for building what?
![Page 24: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/24.jpg)
Cloud by Andrew Lynne from The Noun Project Thermometer by Lemon Liu from The Noun Project
Fluorescent Light Bulb by Dmitriy Lagunov from The Noun Project Water by Gilad Fried from The Noun Project
MQTT Network
Mosquitto broker
Building… SENSOR NETWORKS
![Page 25: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/25.jpg)
Cloud by Andrew Lynne from The Noun Project Thermometer by Lemon Liu from The Noun Project
Fluorescent Light Bulb by Dmitriy Lagunov from The Noun Project Water by Gilad Fried from The Noun Project
MQTT Network
Ponte broker
CoAP Network
Building… SENSOR NETWORKS (2)
![Page 26: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/26.jpg)
Cloud by Andrew Lynne from The Noun Project Thermometer by Lemon Liu from The Noun Project
Fluorescent Light Bulb by Dmitriy Lagunov from The Noun Project Water by Gilad Fried from The Noun Project
CoAP Network
LWM2M server (e.g. Leshan)
wakaama wakaama
wakaama
Building… DEVICE MANAGEMENT
battery level avail. memory …
firmware reboot …
![Page 27: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/27.jpg)
Android UI
X10
Serial …
Bluetooth
Building… HOME AUTOMATION
![Page 28: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/28.jpg)
Real world example… and demo!
![Page 29: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/29.jpg)
21.3
21.3
![Page 30: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/30.jpg)
Is the MQTT API that simple?
![Page 31: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/31.jpg)
Is the MQTT API that simple? MqttClient mqttClient = new MqttClient ( "tcp://iot.eclipse.org:1883", MqttClient.generateClientId() );
mqttClient.setCallback(…);mqttClient.connect();mqttClient.subscribe("myGreenhouse/#");// the rest of your app
![Page 32: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/32.jpg)
Is the MQTT API that simple?
mqttClient.setCallback(new MqttCallback() {@Overridepublic void messageArrived(String topic, MqttMessage message) throws Exception { // process received message // e.g. display temperature value}// ...
});
Callback code:
![Page 33: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/33.jpg)
Data viz. w/ MQTT over Websockets
• Rickshaw is a JavaScript toolkit for creating interactive time series graphs
• It’s built on top of d3.js
• MQTT over Websockets makes it very easy to feed data into Rickshaw datasets
– More at http://code.shutterstock.com/rickshaw – lots of examples to get started
![Page 34: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/34.jpg)
In a nutshell
• MQTT is a very versatile protocol for building your IoT solution from the ground up. You should try it!
• Eclipse IoT has lots of projects, from basic building blocks to more complete solutions
• We have Java, and more! J
![Page 35: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/35.jpg)
UPCOMING ECLIPSE EVENTS
![Page 36: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/36.jpg)
UPCOMING ECLIPSE EVENTS
http://iotlive.org
![Page 37: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/37.jpg)
UPCOMING ECLIPSE EVENTS
Eclipse Day Florence May 23, 2014
http://iotlive.org
http://eclipsedayflorence.com
![Page 38: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/38.jpg)
http://eclipsecon.org/france2014
UPCOMING ECLIPSE EVENTS
![Page 39: Building the Internet of Things with Eclipse IoT - JavaLand 2014](https://reader033.vdocuments.site/reader033/viewer/2022042613/541162558d7f725c7f8b458e/html5/thumbnails/39.jpg)
http://iot.eclipse.org