Everything
about
Internet of Things
Muhammad Hassan Nasr
Senior Software Engineer
GISTIC
March 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
Smart Roads is
a billion dollar
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?
Why is IoT?
IoT Components
IoT Components
Devices
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 Computers
BeagleBone Black
Cheap
Fast
Raspberry Pi 2
Cheap
Big community
Intel Galileo (Arduino based)
…
Spark Electron
Spark Electron
(IoT for folks)
Spark Electron
Arduino-like cellular
development kit
Open Source HW & SW
$39/board
$3/Month Data plan
ARM mbed Devices
And a lot more …
Manufacturing Guidelines
Manufacturing Guidelines
At 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 Tracker
Radar Technology (DC310 microwave
sensor)
Multi-lane bidirectional
Long range wireless connectivity
2+ Weeks Batteries
Solar Power
TraffiCloud
(DriveTimes Feature)
What is IoT?
OS for Devices
Contiki-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 Networking
WiFi (Battery Hungry)
BLE (Great for PAN)
GSM
Works for many use cases
$ for large # of devices
Other Wireless Networking
Z-Wave
ZigBee
6LoWPAN
LoRa
…
Z-Wave
Designed 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-Wave
Z-Wave only available from “Sigma
Designs”
ZigBee has many vendors
Z-wave range is greater than Zigbee
Z-wave has less interference
ZigBee Vs BLE
ZigBee
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
LoRa
Long 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 Alliance
IBM, 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 WALoP
Cents/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 Middleware
Protocols
Data Transfer
Device Management
IoT platforms
Standardization
Data Protocols
Data Protocols
MQTT
CoAP
AMQP, STOMP
WebSocket
…
MQTT
Publish/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
CoAP
IETF 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
Credit To Julien Vermillard
Device Management
Protocols
TR-069
OMA-DM
OMA Lightweight M2M
OSGi
Manual Approach
TR-069
SOAP/HTTP-based protocol.
Auto-configuration
Dynamic service provisioning
Software/firmware management
Status and performance monitoring
TR-069
Diagnostics
Secured using SSL/TLS
Used by millions of devices
Supported by many commercial vendors
Better for broadband equipments
OMA-DM
Open 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 Features
Provisioning
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 M2M
Simple, 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
OSGi
An 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 Approach
Update 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
…
Sentilo
High 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
Sentilo
Admin console for managing sensors.
Security AAA
Reliability
Already used by Barcelona City
Code commented in Spanish!
Very Generic
Kura
iot.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)
Kura
Cloud 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-RED
Developed 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
Commercial
Axeda
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 !
Commercial
Telefonica
Oracle IoT
Bosch IoT Suite
Temboo
ARM mbed
IBM IoT
Xively
PubNub
…
Thingworx
Pricing
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
ProSyst
Pricing
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 mbed
ARM approach to IoT, they have built 

their own Device OS and Device Server (middleware)
ARM mbed OS
Full-stack OS
ARM Cortex®-M MCUs
Energy Optimized
Connectivity:
Bluetooth, 6LoWPAN, Wi-Fi, Cellular
Free.
ARM mbed Device Server
Like 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 IoT
An IoT platform
Part of IBM awesome cloud service
Bluemix
Supporting many languages, VMs,
Node-RED, …
Open/Affordable Prices with 30 days trial
Scalable
IBM IoT
Using Open Standards like MQTT
Extensible by other services like
Cloudant NoSQL DB
GeoSpatial Analytics
Twilio
…
Connected Car Live Demo
Xively
Supports HTTP, REST, MQTT protocols
(only)
Supports many Raspberry Pi, Arduino,
ARM, ...
Simple Device management features
Expensive $45K+ Per year!!
10K devices, 20K users
PubNub
Support 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 Guidelines
The 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 Guidelines
Protocol/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 Guidelines
Device
On-boarding
Management
OTA Programming
Security is not an option
Scalability & APIs
Sandbox/testing environment
Questions
Thank you!

Everything about Internet of Things