iot development (apicon 2014 presentation)

54
Developing for the Internet of Things Mike Milinkovich Executive Director, Eclipse Foundation & IoT Hobbyist APIcon – San Francisco May 28, 2014

Upload: mike-milinkovich

Post on 08-May-2015

752 views

Category:

Software


6 download

DESCRIPTION

An overview of the Eclipse IoT projects, and IoT in general. Examples of development tools and frameworks for Java, JavaScript, and Lua.

TRANSCRIPT

Page 1: IoT development (APIcon 2014 presentation)

Developing for the Internet of ThingsMike MilinkovichExecutive Director,Eclipse Foundation

& IoT Hobbyist

APIcon – San FranciscoMay 28, 2014

Page 2: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.02

Major Caveat!

Page 3: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.03

Major Caveat!

Please pray to whichever deity controls the wireless at

the Hiltonfor its blessings on this talk

Page 4: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.04

Page 5: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.05

Page 6: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.06

IoT Today

Page 7: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.07

It Is Complicated!

OEM

Enterprise Application

s

Devices

Vendor 1

?

?

?

?

?

Wireless Services

Vendor 2

Backend Server

Vendor 3

Develo

per A

Develo

per B

Develo

per C

Machine

ERP

Page 8: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.08

It Is Complicated!

Consumers

Devices

Vendor 1

?

?

?

?

?

Wireless Services

Vendor 2

Backend Server

Vendor 3

Develo

per A

Develo

per B

Develo

per C

Machine

S

olu

tion

V

end

or 4

S

olu

tion

V

end

or 5

Page 9: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.09

I want the internet ofMY

things

Page 10: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.010

silos

Page 11: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.0http://www.flickr.com/photos/brunauto/5687363705

fragmentation

11

Page 12: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.0

lock-in

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

12

Page 13: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.0http://www.flickr.com/photos/90514086@N00/952121271/ http://www.flickr.com/photos/cyberslayer/952121271

complexity

13

Page 14: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.014

Page 15: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.015

Open Ecosystem IoTThird Party Ecosystem

Open IoT applicationframework and

runtimes

Open IoT applicationframework and

runtimes

Open IoT communication

protocols

Open IoT communication

protocols

Internet of

Things

Open IoTdevelopment tools

Open IoTdevelopment tools

$ $

$ $

$ $

Page 16: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.016

Open Wins

Page 17: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.017

Developer Engagement

Page 18: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.018

Page 19: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.019

Open Wins

Page 20: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.020

Open Hardware

Page 21: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.021

protocolsframeworks tools

Page 22: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.022

CoAP

Lightweight M2M

ETSi M2M

Wakaama 

OM2M

protocols

Page 23: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.023

Sandbox Servershttp://iot.eclipse.org/sandbox.html

Page 24: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.024

- Java and OSGi based framework for IoT and M2M Gateways

- Java and OSGi based framework for home automation integration

- Java and OSGi based framework for building SCADA systems

- Bridge between HTTP, MQTT and CoAP (JavaScript and node.js)

- Lua based framework for building M2M gateways

frameworks

Page 25: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.025

tools

Lua Tools

Page 26: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.026

BUILDING BLOCKS FOR IOT

Page 27: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.027

BUILDING BLOCKS FOR IOT… for building what?

Page 28: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.028

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

Mosquitto broker

Building… SENSOR NETWORKS

MQTT Network

Page 29: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.029

Demo #1

Page 30: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.030

Ard

uino

Sensors

Page 31: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.031

USBModbus

Ard

uino

Ras

pber

ry P

i

Lua + Mihini

Page 32: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.032

USBModbus

MQTT

Ard

uino

Ras

pber

ry P

i

Lua + Mihini

802.11n

Page 33: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.033

USBModbus

MQTT

Ard

uino

Ras

pber

ry P

i

Lua + Mihini

Koneki – Lua development tools

802.11n

Page 34: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.034

USBModbus

MQTT

Ard

uino

Ras

pber

ry P

i

MQTT

Lua + Mihini

Koneki – Lua development tools

802.11n

Page 35: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.035

Ponte broker

CoAP Network

Building… SENSOR NETWORKS (2)

MQTT Network

Page 36: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.036 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. OM2M, Leshan)

wakaama wakaamawakaama

Building… DEVICE MANAGEMENT

battery levelavail. memory…

firmwarereboot…

Page 37: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.037

Android UI

X10Serial …

Bluetooth

Building… HOME AUTOMATION

ZigBee

Page 38: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.038

USBModbus

MQTT

Ard

uino

Ras

pber

ry P

i

MQTT

Lua + Mihini

Koneki – Lua development tools

MQ

TT

Android

802.11n

Page 39: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.039

Not A Great Tooling Experience

+

Page 40: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.040

My Real World Problem

Page 41: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.041

Cottage Monitoring

Page 42: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.042

My Real World ProblemFirst

Page 43: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.043

tools for the webon the web

code.everywhere = true;

Page 44: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.044

The Orion Project:A Browser Based Open Tooling

Platform

Page 45: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.045

Why and What is Orion?Initiated a little over 3 years ago

A change from other Eclipse projects

A shift to Web based application delivery

The Web is the Platform

Complex IDEs replaced by Web workflows

Page 46: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.046

OrionHub (Demo #2)

Page 47: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.047

+

Page 48: IoT development (APIcon 2014 presentation)

+

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.048

Page 49: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.049

Simple Server Code/** MQTT client configuration **/var mqtt = require('mqtt');var mqttClient = mqtt.createClient(1883, 'iot.eclipse.org');mqttClient.subscribe('/ottylake.net/cottage/sensor/command/#'); var parseSerialInput = function(data) { console.log('--> data received: ' + data); try { var parsedData = JSON.parse(data); for(var key in parsedData) { mqttClient.publish('/ottylake.net/cottage/sensor/data/' + key, '' + parsedData[key]); } } catch (e) {}};

Page 50: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.050

Hacking My Cottage Demo

Orion & IoT (Demo #3)

Page 51: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.051

Serial

Ard

uino

Ras

pber

ry P

i

MQ

TT

Android

MQTT

4G

Page 52: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.052

Page 53: IoT development (APIcon 2014 presentation)

Get Involved!• EclipseCon France

– June 18-19, Toulouse• EclipseCon Europe

– October 28-30, Stuttgart• EclipseCon North America

– March 9-12, SFO

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.053

Page 54: IoT development (APIcon 2014 presentation)

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.054

Thanks!Mike [email protected]@mmilinkov

Code at https://gist.github.com/mmilinkov/public

Learn more:– iot.eclipse.org– eclipse.org/orion– orionhub.org