everything about internet of things
TRANSCRIPT
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)
On 2020
20-50 billion devices expected to be connected
7 devices per person!
Smart Roads is
a billion dollar
business opportunity
IoT ComponentsDevices
Sensors
MCUs
Gateways
Smart Phones
Network
Media and Protocols
Middleware / IoT Platforms
Cloud
Storage (SQL, NoSQL)
Web apps, APIs, analytics, …
Small ComputersBeagleBone Black
Cheap
Fast
Raspberry Pi 2
Cheap
Big community
Intel Galileo (Arduino based)
…
Spark ElectronArduino-like cellular development kit
Open Source HW & SW
$39/board
$3/Month Data plan
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
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
OS for DevicesContiki-os
Designed for IoT (Memory, Protocols, Battery)
Open Source
Raspbian
ARM mbed OS
Linux/*nix,…
Wireless NetworkingWiFi (Battery Hungry)
BLE (Great for PAN)
GSM
Works for many use cases
$ for large # of devices
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
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
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…
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
Credit To Julien Vermillard
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
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 !
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
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
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
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
…
Connected Car Live Demo
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?
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