building the internet of things with eclipse iot - javaland 2014

40
BUILDING THE INTERNET OF THINGS WITH ECLIPSE IOT* Benjamin Cabé @kartben Eclipse Foundation *and some cool Java technologies!

Upload: benjamin-cabe

Post on 11-Sep-2014

5.981 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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

M2M? IoT?

Page 3: Building the Internet of Things with Eclipse IoT - JavaLand 2014

❝ Technology that supports wired or wireless communication between devices

Page 4: Building the Internet of Things with Eclipse IoT - JavaLand 2014
Page 5: Building the Internet of Things with Eclipse IoT - JavaLand 2014
Page 6: Building the Internet of Things with Eclipse IoT - JavaLand 2014
Page 7: Building the Internet of Things with Eclipse IoT - JavaLand 2014
Page 8: Building the Internet of Things with Eclipse IoT - JavaLand 2014

http://www.flickr.com/photos/brunauto/5687363705

fragmentation

Page 9: Building the Internet of Things with Eclipse IoT - JavaLand 2014

lock-in

http://www.flickr.com/photos/photosightfaces/8152791780/

Page 10: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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
Page 12: Building the Internet of Things with Eclipse IoT - JavaLand 2014

Protocols

Tools

Frameworks

Services

Page 13: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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

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

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

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

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

I often get asked…

Page 19: Building the Internet of Things with Eclipse IoT - JavaLand 2014

WHAT IS ZE BEST LANGUAGE FOR

IOT?!?

I often get asked…

Page 20: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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

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

BUILDING BLOCKS FOR IOT

Page 23: Building the Internet of Things with Eclipse IoT - JavaLand 2014

BUILDING BLOCKS FOR IOT … for building what?

Page 24: Building the Internet of Things with Eclipse IoT - JavaLand 2014

 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

 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

 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

Android UI

X10

Serial …

Bluetooth

Building… HOME AUTOMATION

Page 28: Building the Internet of Things with Eclipse IoT - JavaLand 2014

Real world example… and demo!

Page 29: Building the Internet of Things with Eclipse IoT - JavaLand 2014

21.3

21.3

Page 30: Building the Internet of Things with Eclipse IoT - JavaLand 2014

Is the MQTT API that simple?

Page 31: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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

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

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

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

UPCOMING ECLIPSE EVENTS

Page 36: Building the Internet of Things with Eclipse IoT - JavaLand 2014

UPCOMING ECLIPSE EVENTS

http://iotlive.org

Page 37: Building the Internet of Things with Eclipse IoT - JavaLand 2014

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

http://eclipsecon.org/france2014

UPCOMING ECLIPSE EVENTS

Page 39: Building the Internet of Things with Eclipse IoT - JavaLand 2014

http://iot.eclipse.org

Page 40: Building the Internet of Things with Eclipse IoT - JavaLand 2014

http://iot.eclipse.org

<[email protected]> @kartben

Thanks! Questions?