building the internet of things with eclipse iot - javaland 2014
DESCRIPTION
TRANSCRIPT
BUILDING THE INTERNET OF THINGS WITH ECLIPSE IOT* Benjamin Cabé @kartben
Eclipse Foundation
*and some cool Java technologies!
M2M? IoT?
❝ Technology that supports wired or wireless communication between devices
http://www.flickr.com/photos/brunauto/5687363705
fragmentation
lock-in
http://www.flickr.com/photos/photosightfaces/8152791780/
http://www.flickr.com/photos/90514086@N00/952121271/ http://www.flickr.com/photos/cyberslayer/952121271
complexity
Protocols
Tools
Frameworks
Services
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.
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)
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)
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)
Concierge is a lightweight implementation of OSGi Core R5.
Your project? J
Concierge
We need to talk! ;-)
(code pending)
I often get asked…
WHAT IS ZE BEST LANGUAGE FOR
IOT?!?
I often get asked…
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
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
BUILDING BLOCKS FOR IOT
BUILDING BLOCKS FOR IOT … for building what?
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
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)
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 …
Android UI
X10
Serial …
Bluetooth
Building… HOME AUTOMATION
Real world example… and demo!
21.3
21.3
Is the MQTT API that simple?
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
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:
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
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
UPCOMING ECLIPSE EVENTS
UPCOMING ECLIPSE EVENTS
http://iotlive.org
UPCOMING ECLIPSE EVENTS
Eclipse Day Florence May 23, 2014
http://iotlive.org
http://eclipsedayflorence.com
http://eclipsecon.org/france2014
UPCOMING ECLIPSE EVENTS
http://iot.eclipse.org