Microsoft IoT Solutions with AzureGlobal Azure Boot Camp 2015-Chennai
Who am I ?
Vinoth Rajagopalan
Project Lead – Windows Embedded Products & IoT
e-con systems India Pvt Ltd
MVP- Windows Embedded
Topics• Internet of Things – An Intro
• Why Cloud for IoT
• Azure IoT services
• IoT Protocols
• Microsoft OS for IoT
• Devices for IoT
• Demo
Internet of Things (IoT)
• Connecting Heterogeneous systems seamlessly in to information network to achieve business and social values
• 25 Billion Connected things on 2020 ( More than Human population in the world)
• IoT, M2M , Intelligent systems etc.. Converging the same
• Examples• Smart Home, Smart City, Smart Hospitals,
Smart …..
Evolution of IoT
• Earlier IoT systems• Expensive on installing and maintaining• Difficult implementation (No standard protocols, services etc..)
• Why IoT is booming?• Cheaper hardware (sensors, processor boards, RF devices etc..)• More standardization on Hardware platforms• M2M protocols and easy connectivity of Heterogeneous systems
Why Cloud (Azure) for IoT?• Cloud - Back bone of IoT
• Highly scalable • Connecting millions of devices
• Enormous storage, processing capacity
• Connecting Heterogeneous systems• PCs, Mobiles, bigger devices to smaller
devices running on various OS
• Data Analysis to create business value• (ex) Vending Machines
• Variety of cloud services
Azure Event hub
• Part of Azure Service Bus
• Handling Telemetry Messages from devices, Apps and websites
• Logging millions of events/second
• Connect millions of devices across platforms
• Time-based event buffering
• Elastic scale in order to accommodate variable load profiles
• Accessible through AMQP and HTTP protocols
Demo on Event hubs
Azure Stream Analytics
• Real-time stream processing in the cloud
• Processing Millions of Events / second
• Simple SQL-like language to define your stream processing logic
• No hardware to deploy
Demo on Stream Analytics
IoT Communication Patterns
Telemetry
Information flowing
from a device to other
systems for conveying
status of device and
environment
Inquiries
Requests from devices
looking to gather
required information or
asking to initiate
activities
Commands
Commands from other
systems to a device or a
group of devices to
perform specific
activities
Notifications
Information flowing
from other systems to a
device/group for
conveying status
changes in the world
1:N 1:N
Popular IoT Protocols
• Alljoyn (https://allseenalliance.org/)• Open source framework for IoT
• Initiated by Qualcomm and now it is growing bigger (Maintained by AllseenAlliance)
• SDKs available for Windows/WEC, Linux, Android, iOS, • .net MicroFramework (Available soon)
• SDK types• Standard SDK
• Thin client SDK – for resource constrained devices
• Microsoft adopting this as a service in Windows 10 (various versions)
Popular IoT Protocols
• MQTT (http://mqtt.org/) • Available in the industry for more than 10 Year
• Open standard by IBM and adopted by many org
• Extremely lightweight publish/subscribe messaging transport
• Support for Windows/WEC, .net Micro framework, Linux, Android, iOS,
• Broker (server)/ Client Mechanism
• https://m2mqtt.codeplex.com/ - .net code for MQTT
Windows IoT AllJoyn Device Network
Internet/Cloud
Windows can bridge AllJoyn to other proximal networks and remote device networks via the cloud
Proximal Network
AllJoyn Node
Other ProximalDevices
Windows IoTAllJoyn Cloud Bridge
3rd party device cloud
AllJoyn Thin Client
Azure for IoT future roadmap
• Azure IoT suite• Evolution of Azure Intelligent systems services• Based on Azure service bus• Device Repository, Event storage, Set Alerts, Commands and perform
Analytics
• Device Gateway – Reykjavik project• IoT Gateway in the Cloud• Based on Service Bus
• Queues• Topics/Subscriptions• Event Hubs
• Released as open source on GitHub• Access using HTTP, AMQP, MQTT, CoAP and custom protocol gateway
Device Gateway – Core Architectural Concepts1. Custom Protocol
Gateway
2. Telemetry Pump and Adapters
3. Command Gateway
4. Provisioning Service and Metadata Store
Windows Azure Service Bus Messaging
Custom Protocol Gateway Host
MQTT CoAP … …
Telemetry/Request
RouterNotification/Command Router
Adapters Command API Host
Provisioning
Service
Device
Metadata
and Key
Store
HD
Insi
gh
t
Biz
Talk
Sv/S
r
Orl
ean
s
Azu
re S
tora
ge
SQ
L
SB
HTTP
HTTP
Devices
AMQP
1
2 3
4
Configs
Microsoft OS for IoT• Windows Embedded Compact
• Used to build any X86 and ARM core based devices (earlier version support MIPS Arch)
• Extremely customized
• OS foot print on MBs (<100MB)
• Suitable for devices with low power, low processing core(300 MHz to 1GHz and above) and RAM (64 MB to ~3 GBs) and minimum ~64MB and above
• Native Win32 and .Net CF
• Broader range of connectivity support
• Windows Embedded Handheld• Earlier WEH is based on Windows Embedded compact based kernel
• Latest versions are based on Windows Phone 8.1 Kernel
• License provided selected OEM
Microsoft OS for IoT ( Cont..)
• Windows Embedded Standard/Industry• X86 based devices• Customized version of Windows PC operating systems• Image foot prints are larger and similar to PC but it is componentised
• .NET Micro Framework• Open source OS• ARM Architecture (ARM7, ARM9 and ARM Cortex M)• Suitable for resource constrained devices (256 KB of Flash and 64KB of RAM)• C# Managed code ( A sub set of .net base class libraries)• https://amqpnetlite.codeplex.com/ - AMQP for accessing Service Bus ( Event
hubs)
Windows Embedded Family
Portable media Consumer Thin Client
IndustrialAutomation Telematics Robotics
Entertainment MedicalIndustrial
Automation Thin Client
Point of Service
Kiosks Entertainment
Server appliances
Kiosks
Windows 10 IoT Editions
For Industry Devices
Desktop Shell, Win32 apps
1 GB RAM, 16 GB Storage
For Mobile Devices
Modern Shell
Mobile Chassis requirement
512 MB RAM, 4 GB storage
For Small Devices
Dedicated devices
No Shell/Store/MS Apps
256MB RAM, 2GB storage
Universal Apps
Windows Device Services
• On all Windows IoT clients
• Extends value of Windows for OEMs
• OS telemetry, update management, interoperability
• Azure IoT-ready
Requires desktop or desktop apps–
Win32, .NET, WPF, etc. ?
Requires a Shell experience, multiple
applications, Windows first-party
applications, or mobile voice?
Otherwise
Windows 10 – For Small devices
Sharks Cove• Intel ® Atom™ Processor Z3735G, 2M Cache, 4 Core,
1.33GHz up to 1.88GHz
• Supports Connected Standby
MinnowBoard MAX• Intel® Atom™ E3800 processor
• Open Hardware Platform (Gerbers & Layout)
Qualcomm DragonBoard™ 410C• Qualcomm Snapdragon 410 (APQ8016)
• 1GB LPDDR3, 4GB eMMC
Raspberry Pi 2
Bringing the power of Windows to the Maker community
Hardware specs:
• Broadcom 2836 900MHz quad-core ARM Cortex-A7 CPU
• 1GB LPDDR2 SDRAM
• MicroSD, Ethernet, USB, HDMI
• GPIO, I2C, I2S, SPI
• www.windowsondevices.com
Arduino• What is Arduino?
• Arduino is an open-source electronics platform • Based on easy-to-use hardware and software. • It's intended for anyone making innovative projects.• Boards, Off-The-Shelf Shields, IJW Software, Kits• http://www.arduino.cc/
• Hardware• Variety of Implementations
• All implement the same hardware interface (or superset), same physical pin locations
• Arduino (various) ARM ATmega328 etc MPU• .NET MF: Netduino• Intel Galileo (Runs Headless version of Win 8.1)• 86Duino (x86 Like Galileo but support Windows Embedded Compact)
Arduino Boards
netduino plus 2 86Duino ZERO Intel Galileo
• Headers on both sides of board will mount a shield plug directly in• Meant to be stackable
• IO Hardware physically implemented to plug into Arduino sockets
• Standard Drivers• Same driver source will run shield on all variants of Arduino
• Sensors, Network, WiFi, Sensors, Actuators etc
• Shield List• http://shieldlist.org/
Connect The Dots
• Connect tiny devices to Microsoft Azure services to build IoT solutions
• www.connectthedots.io
• Open source project by Microsoft Open Technologies
• Multiple client platforms• Windows• Linux• .NET microframework• Arduino
• Azure-based services and front-end
Demo