simple things about internet of things
TRANSCRIPT
Simple Things about
Internet of Things
Muhammad Hassan Nasr Senior Software Engineer
GISTIC
April 2015
About Me!
muhammadhassan nasr.com
#Computer_Engineering @2004
Technical Lead
@
CoFounder
of
Senior Software Engineer
@
var experience = 10.years+
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.
Internet of Things is…
Shortly called IoT…
Also called M2M(Machine to Machine)
Agenda
Why IoT?
What is IoT?
How to build IoT?
Tips
Why IoT?
Internet is everywhere
like electricity
wireless Internet is getting cheaper
Connectivity chips
#wifi
#3G
getting more affordable
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?
Real Life Examples
LG SMART THINQ
Works with Smart Grid
Works with
What if Apple made a Car?
Tesla Car
Detect repairs
Schedule fix Autonomously
Connected Car
IoT Components
IoT ComponentsDevices
Sensors
MCUs
Small Computers/Smart Phones
Gateways
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
…
Spark Electron
Spark Electron
(IoT for folks)
Spark ElectronArduino-like cellular development kit
Open Source HW & SW
$39/board
$3/Month Data plan
Monitor soil moisture
Small ComputersRaspberry Pi 2
$35
900 MHZ quad-core
1 GB RAM
HDMI, …
Big community
Small Computers
BeagleBone Black
Intel Galileo (Arduino based)
…
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
…
ZigBee Vs BLEZigBee
WLAN (Home Automation)
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
Data Rates < 300 kbps
Libelium's LoRa module
Non Line Of Sight (NLOS) Tests
Middleware
Agenda for MiddlewareProtocols
Data Transfer
Device Management
IoT platforms
Standardization
Data Protocols
Data ProtocolsHTTP
MQTT
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
CoAP
RESTful design
Feels like HTTP
Lighters than HTTP
Best for: MCUs 10 KiB RAM
Device Management Protocols
Device Management Protocols
Manual Approach
TR-069
OMA-DM
OMA Lightweight M2M
OSGi
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?
OMA-DMProvisioning
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
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
Run on low power hardware 156 MHz and 8 MB RAM only
Many commercial/Open Source Implementations
Middleware
IoT Platforms
CommercialTelefonica $$$
Oracle IoT $$$
Bosch IoT Suite $$$
Temboo
ARM mbed
IBM IoT
Thingworx $$$
Xively $$$$
PubNub
…
Open Source
Sentilo
Kura
Node-RED
…
Kuraiot.eclipse.org project
Policy-driven publishing system
Abstracts developer from network complexity
Default Messaging lib:
Eclipse Paho (MQTT)
KuraCloud Services - API to communicate with remote servers
OSGi 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
IBM IoTUsing Open Standards like MQTT
Part of IBM awesome cloud service Bluemix
Supporting many languages, VMs, Node-RED, …
Open/Affordable Prices with 30 days trial
Scalable
Parse.comBackend as a Service (Baas)
Easy to use
SDKs for iOS, Android, JS, …
SDKs for Arduino and Embedded C
Generous free package
ARM mbedARM approach to IoT, they have built
their own Device OS and Device Server (middleware)
ARM mbed Case Study
mbed Smart City
Case Study
Faheem Traffic Monitoring
TraffiCloud
(DriveTimes Feature)
What is IoT?
Standardization
Standardization Fragmentation
Apple HomeKit
OData
AllJoyn
OneM2M
Open Interconnect Consortium
Tips
TipsThe IoT is Huge
Many challenges!
Many technologies/protocols
Design for Best Fit
Determine your hardest problem
Choose the primary protocol/tool to solve it
Tips
A complex system can use more than one protocol/tool
Support standard IoT protocols
Use time series NoSQL/Big Data
Tips
Security is not an option
Scalability & APIs
Sandbox/testing environment
Software And Hardware Together
iOS + iPhone
vs
Android + LG +Samsung + …
Questions
linkedin.com/in/muhammadhassan
Thank you!