IoT prototyping made simple
● Developer Evangelist @ PubNub
● @bhavana1110
● Electrical engineer
Internet of Many things
● ARM processor
● Sensors
● Boards
Cheaper “Capable” Computing
Your first IoT prototype
Simple IoT example
Send & Receive Data to/from Data Center via Internet
In reality...Mobile devices
Mobile devices
Mobile devices
Smart Hardware
Smart Hardware
What are the different components?● Hardware
● Software
● Network
● Security
● Realtime
Which board do I use?
Courtesy : Make magazine
What are you building?
Withings: Smart Body Analyzer
GE Link
Cinder Sensing Cooker
Nest: Learning Thermostat
Whistle: Connected pet collar
Amazon Dash Button
Education
Arduino Uno Raspberry Pi 2, Model B
Home Automation
Photon, Particle ESP8266 WiPy
Software
C based
JavaScriptPython/C
Arduino compatible
Communication protocols
How can they talk in real time?
How was real time achieved?
How is it done today?
HTTP Long Polling
Presencedetection
Decreased time to market
Storing offlinemessages
Minimum bandwidth
usage
Cross platform supportsecurity
Read/writeAccess to Individual devices
Bidirectional data flow
Power drain
How do you detect different devices on the network?
Security
Home Network IoT device Data Cloud
Open ports Firmware upgrades Encryption Cloud storage
Access to the devices
Open ports from devices
TLS/AES Access to devices
PubNub Confidential © 2015
• Realtime communication• Analytics• Message Routing• Scalability
Mobile/IoT/web
Data Stream Network to build scalable realtime
applications for mobile, web and IoT
Real time Applications
Controlling devices
Mobile, Web and IoTMultiple verticals
•
•
•
•
// publishpubnub.publish({
channel : “hw_test”, message : “Hello World!” });
// subscribepubnub.subscribe({ channel : "hw_test", message : receiver })
Remote-Controlled LED
publish data subscribe data
•
•
•
•
•
Publisher Subscriber
•
•
•
// presencepubnub.subscribe({ channel : “hw_test", presence : pres_reciever, message : receiver});
•
•
•
•
// storage and playbackpubnub.history({ channel : “hw_test", callback : sp_reciever })
•
•
•
•
// Key Authorizationvar pubnub = PUBNUB.init({ publish_key : "pam", subscribe_key : "pam", auth_key : "3y8uiaj"})
Data, data, dataWe’re collecting more data than ever.
Every connected device needs a partner app.
(which is just a dashboard)
Charts + MapsA framework to build dashboards
Runs on the front end
Dashboards for all devices
Publish from any device
Distributed Systems
Statistics Dashboards
Internet of Things
eon-chart.js
pubnub.jsc3.js
d3.js
eon-map.js
pubnub.jsMapBox.js
leaflet.js
Multi Hardware demo
Pulishers
Subscriber
Humidity
Temperature
Temperature
PubNub
Eon charting
MQTT Message Queuing Telemetry Transport
● Lightweight Publish/Subscribe
● Resource constrained devices
○ Unreliable networks○ High latency○ Low bandwidth
How does it work?
● Publishers/Subscribers
● Pub/Sub decouples clients
● Topics
● TCP/IP
● QoS
MQTT● Low power embedded devices
● Low bandwidth
● QoS
● No in built security
● Low-high Latency
● Mobile, web and IoT
● High reliability - message delivery
● Security in built
● Real time message delivery
● Highly scalable applications
MQTT PubNub
September 28, 2016