IoT development (APIcon 2014 presentation)

Preview:

DESCRIPTION

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

Citation preview

Developing for the Internet of ThingsMike MilinkovichExecutive Director,Eclipse Foundation

& IoT Hobbyist

APIcon – San FranciscoMay 28, 2014

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

Major Caveat!

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

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

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

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

IoT Today

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

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

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

I want the internet ofMY

things

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

silos

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

fragmentation

11

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

lock-in

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

12

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

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

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

$ $

$ $

$ $

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

Open Wins

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

Developer Engagement

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

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

Open Wins

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

Open Hardware

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

protocolsframeworks tools

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

CoAP

Lightweight M2M

ETSi M2M

Wakaama 

OM2M

protocols

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

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

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

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

tools

Lua Tools

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

BUILDING BLOCKS FOR IOT

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

BUILDING BLOCKS FOR IOT… for building what?

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

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

Demo #1

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

Ard

uino

Sensors

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

USBModbus

Ard

uino

Ras

pber

ry P

i

Lua + Mihini

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

USBModbus

MQTT

Ard

uino

Ras

pber

ry P

i

Lua + Mihini

802.11n

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

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

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

Ponte broker

CoAP Network

Building… SENSOR NETWORKS (2)

MQTT Network

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…

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

Android UI

X10Serial …

Bluetooth

Building… HOME AUTOMATION

ZigBee

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

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

Not A Great Tooling Experience

+

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

My Real World Problem

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

Cottage Monitoring

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

My Real World ProblemFirst

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

tools for the webon the web

code.everywhere = true;

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

The Orion Project:A Browser Based Open Tooling

Platform

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

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

OrionHub (Demo #2)

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

+

+

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

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) {}};

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

Hacking My Cottage Demo

Orion & IoT (Demo #3)

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

Serial

Ard

uino

Ras

pber

ry P

i

MQ

TT

Android

MQTT

4G

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

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

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

Thanks!Mike Milinkovichmike.milinkovich@eclipse.org@mmilinkov

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

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