Everything about Internet of Things

112
Everything about Internet of Things Muhammad Hassan Nasr Senior Software Engineer GISTIC March 2015

Transcript of Everything about Internet of Things

Everything about

Internet of Things

Muhammad Hassan Nasr Senior Software Engineer

GISTICMarch 2015

The Internet of Things (IoT) is the network of physical objects or

"uniquely identifiable things" embedded with software, sensors and connectivity

to enable it to achieve greater value and service by

exchanging data without human interaction.

Agenda

Why IoT?

What is IoT?

How to build IoT?

IoT (Internet of Things)Sometimes called M2M (Machine-to-Machine)

Why IoT?

Internet is everywhere

like electricity

On 2020

20-50 billion devices expected to be connected

7 devices per person!

Huge Business Opportunity

IoT Takes Over Big Data

As Technology

July 2014

Gartner’s 2012 Hype Cycle

Gartner’s 2013 Hype Cycle

Gartner’s 2014 Hype Cycle

What is IoT?

IoT Components

IoT ComponentsDevices

Sensors

MCUs

Gateways

Smart Phones

Network

Media and Protocols

Middleware / IoT Platforms

Cloud

Storage (SQL, NoSQL)

Web apps, APIs, analytics, …

Architecture of ARM mbed

How to Build IoT?

Devices

MCUs

Arduino

Microduino

TI Launch Pad

Small ComputersBeagleBone Black

Cheap

Fast

Raspberry Pi 2

Cheap

Big community

Intel Galileo (Arduino based)

Spark Electron

Spark Electron

(IoT for folks)

Spark ElectronArduino-like cellular development kit

Open Source HW & SW

$39/board

$3/Month Data plan

ARM mbed Devices

And a lot more …

Manufacturing Guidelines

Manufacturing GuidelinesAt least IP65 enclosure (Dust, Water Proof)

Heavy Duty

Runs for years

Raspberry Pi, education to production?

CE and FCC certified

Own Device/MCU vs Off-the-shelf

Case Study

Traffic Monitoring Devices

Meshlium/Waspmote

Many Radios (Zigbee, LoRa, …)

Meshlium Manager is Open Source

Detects 95% of SmartPhone

SmarTek Acoustic Sensor

Low Power

Multilane detection

Offline 60 Days storage

Armadillo TrackerRadar Technology (DC310 microwave sensor)

Multi-lane bidirectional

Long range wireless connectivity

2+ Weeks Batteries

Solar Power

TraffiCloud

(DriveTimes Feature)

What is IoT?

OS for DevicesContiki-os

Designed for IoT (Memory, Protocols, Battery)

Open Source

Raspbian

ARM mbed OS

Linux/*nix,…

Network

Network

Media and Protocols

Wired?

Wireless

Everything is going wireless So is

The Internet of Things

Wired Ethernet is almost obsolete!

Wireless NetworkingWiFi (Battery Hungry)

BLE (Great for PAN)

GSM

Works for many use cases

$ for large # of devices

Other Wireless NetworkingZ-Wave

ZigBee

6LoWPAN

LoRa

Z-WaveDesigned for:

Home automation

Control and status apps

100kbps

Encrypted

ZigBee

Low power

10–100 meters line-of-sight

Mesh network (Longer Distances)

250kbps

ZigBee

Encrypted

Simpler, less expensive than WiFi

Variants: Zigbee IP, Zigbee Pro

ZigBee Vs Z-WaveZ-Wave only available from “Sigma Designs”

ZigBee has many vendors

Z-wave range is greater than Zigbee

Z-wave has less interference

ZigBee Vs BLEZigBee

Home WLAN

Mesh topology covers unlimited # of nodes

Sense & Control apps

BLE

PAN

Star topology covers limited # of nodes

Body and Peripherals

Zig Bee vs LP-WiFi

6LoWPAN

IPv6 Low-power WPAN

Encrypted

Newest competitor to ZigBee

ZigBee more mature

LoRaLong Range

2+ Miles Range In Dense Urban (NLOS)

Low Power (Multi-Year Battery)

One Gateway support 10(s)K Nodes

Works on Harsh Environments

Works with Raspberry PI, Arduino, ..

LoRa AllianceIBM, Cisco, …

Developed LoRaWAN protocol

Efficient, Low TCO

No more mesh maintenance

Cover cities and countries with few base stations

Data Rate up to 300 kbps

Case Studies

Lora IoT Station

Bidirectional communications

With 1000(s) things

Several kilometers away.

Libelium's LoRa module

Line Of Sight (LOS) Tests

Libelium's LoRa module

Non Line Of Sight (NLOS) Tests

LoRa Alternatives

WEIGHTLESS

5km range

10 years battery

$2 chip

No alliance like LoRa?

Symphony WALoPCents/Month vs cellular Dollars/Month

Cover square miles

Star topology

One Gateway covers 250,000 device

AA like batteries for years

New company…

Symphony WALoP vs Others

(m)

Middleware

Agenda for MiddlewareProtocols

Data Transfer

Device Management

IoT platforms

Standardization

Data Protocols

Data ProtocolsMQTT

CoAP

AMQP, STOMP

WebSocket

MQTTPublish/Subscribe

Lightweight (than HTTP)

IBM says “MQTT can send messages wirelessly using 10 times less battery power and 93 times faster"

Best for:

Low Bandwidth

Unreliable Network

OASIS standard

Used by Libelium

CoAPIETF standard

RESTful design

Feels like HTTP

Lighters than HTTP

Works for constrained network/nodes

Ex: micro-controller with 10 KiB of RAM

Device Management Protocols

Device Management Protocols

TR-069

OMA-DM

OMA Lightweight M2M

OSGi

Manual Approach

TR-069SOAP/HTTP-based protocol.

Auto-configuration

Dynamic service provisioning

Software/firmware management

Status and performance monitoring

TR-069Diagnostics

Secured using SSL/TLS

Used by millions of devices

Supported by many commercial vendors

Better for broadband equipments

OMA-DMOpen Mobile Alliance (OMA) - Device Management (DM)

Designed for mobile devices, which have:

Small foot-print

Constraint on bandwidth

Tight security (vulnerable to software attacks)

OMA-DM FeaturesProvisioning

Configuration of the device (including first time use)

Enabling and disabling features

Device Configuration (change device settings & parameters)

Software Upgrades

Fault Management (Report error, status)

Open Source implementations available

OMA Lightweight M2MSimple, efficient protocol

Banking class security (DTLS, …)

Supports Cellular, 6LoWPAN, WiFi and ZigBee IP or any other IP-based devices

Will be supported in OneM2M (standard)

Open Source Implementation

OSGiAn open standard service platform for Java

Enables dynamic component model (bundles)

Bundles can (remotely without a reboot) be:

installed/uninstalled

started/stopped

updated

OSGi Other Features

Modularity application logic separated into modules

Deploy multiple versions of a module concurrently

Dynamically discover/use services of other modules

Run on low power hardware with 156 MHz and 8 MB RAM only

Many commercial/Open Source Implementations

Manual ApproachUpdate Device

SSH login/run script remote

Or Pull changes using git

Device monitoring

Send heartbeats to custom web service

Manual Approach

Pros

very lightweight

Cons

reliable, scalable?

IoT Platforms

Open Source

Sentilo

Kura

Node-RED

SentiloHigh performance message processing, scalable

Based on fast “Redis” In-Memory DB

RESTful API to manage sensors, publish/read sensor observations, …

Alarm/Alert management for sensors, for ex:

temp > 20 C,

data frozen “idle for 5 minutes”

Send Orders to sensors

SentiloAdmin console for managing sensors.

Security AAA

Reliability

Already used by Barcelona City

Code commented in Spanish!

Very Generic

Kuraiot.eclipse.org project

Store and forward telemetry data collected by the gateway to remote servers.

Policy-driven publishing system

Abstracts developer from network complexity

Default Messaging lib: Eclipse Paho (MQTT)

KuraCloud Services - API to communicate with remote servers

OSGi Configuration Admin/Remote Management

Watchdog Service (Force system reset upon problem).

Web-based management for gateway

Node-REDDeveloped by IBM

A tool for wiring hardware devices, APIs and online services.

Browser-based flow editing

Lightweight runtime built on Node.js

120,000+ modules

Distributed Node-RED

CommercialAxeda

Acquired by PTC and replaced Thingworx

Thingworx

Acquired by PTC as well

PTC had 6 IoT awards in 2014

ProSyst

Acquired by Bosch few days ago !

CommercialTelefonica

Oracle IoT

Bosch IoT Suite

Temboo

ARM mbed

IBM IoT

Xively

PubNub

ThingworxPricing

22 K+ Euro per year royalty only (15 K+ Euro per year for demo)

Powerful and productive mashup builder

Middleware support device management and many protocols

Samples built By Mashup Builder

ProSystPricing

6K+ Euro for client, 15K+ Euro for server

Excels in device management

Built on standard OSGi

No Application Layer support

Support OMA-DM, TR-069, JMS, … protocols

MQTT is not supported yet

Temboo Organic Programming

ARM mbedARM approach to IoT, they have built

their own Device OS and Device Server (middleware)

ARM mbed OSFull-stack OS

ARM Cortex®-M MCUs

Energy Optimized

Connectivity:

Bluetooth, 6LoWPAN, Wi-Fi, Cellular

Free.

ARM mbed Device ServerLike a Web Server but for Devices

Standard Protocols (CoAP, MQTT, …)

10x bandwidth reduction

Scalable

Expose RESTful API to other web apps

Device Management (Lightweight M2M, …)

Tools: Web IDE, TLS

ARM mbed Stack

ARM mbed Case Study

mbed Smart City

IBM IoTAn IoT platform

Part of IBM awesome cloud service Bluemix

Supporting many languages, VMs, Node-RED, …

Open/Affordable Prices with 30 days trial

Scalable

IBM IoTUsing Open Standards like MQTT

Extensible by other services like

Cloudant NoSQL DB

GeoSpatial Analytics

Twilio

XivelySupports HTTP, REST, MQTT protocols (only)

Supports many Raspberry Pi, Arduino, ARM, ...

Simple Device management features

Expensive $45K+ Per year!!

10K devices, 20K users

PubNubSupport Streaming Protocols:

Web socket, Socket.IO, WebRTC

Scalable, Fast, Secure

Supported on ARM, Arduino, Raspberry Pi

Pricing affordable

Device management?

Standardization

Standardization Fragmentation

Apple HomeKit

OData

AllJoyn

OneM2M

Open Interconnect Consortium

IoT GuidelinesThe IoT is Huge

Many challenges!

Many technologies/protocols

Design for Best Fit

Determine your hardest problem

Choose the primary protocol/tool to solve it

IoT GuidelinesProtocol/tool choice depends on scenario

A complex system can use more than one protocol/tool

Support standard IoT protocols

Use time series NoSQL is a must!

IoT GuidelinesDevice

On-boarding

Management

OTA Programming

Security is not an option

Scalability & APIs

Sandbox/testing environment

Questions

Thank you!