There is a lot of buzz going around about Internet of Things, IoT. Laptops, tablets, phones, devices, glasses, watches, bands and even clothing are now connected to the cloud. But how do you start? What devices are there that I can use if I want to build something and what services are there ready for me to be consumed in the cloud? In this demo packed session we’ll show a lot of demos and code that show and inspire you to build your own gadgets that connect to the cloud. We will touch on a lot of services in Microsoft Azure that will help you realize that affordable and scalable backend you’ll need once your device becomes the next viral thing on the Internet. Even if this session has a theme of using devices connected to the cloud, all of the services we use in Azure are as useful without any device in other scenarios.
5. Field
Gateway
Device
Connectivity & Management
Analytics &
Operationalized Insights
Devices
RTOS,Linux,Windows,Android,iOS
Protocol
Adaptation
Batch Analytics & Visualizations
Azure HDInsight, AzureML, Power BI,
Azure Data Factory
Hot Path Analytics
Azure Stream Analytics, Azure HDInsight Storm
Hot Path Business Logic
Service Fabric & Actor Framework
Cloud Gateway
Event Hubs
&
IoT Hub
Field
Gateway
Protocol
Adaptation
6. Field
Gateway
Device
Connectivity & Management
Analytics &
Operationalized Insights
Presentation &
Business Connectivity
Devices
RTOS,Linux,Windows,Android,iOS
Protocol
Adaptation
Batch Analytics & Visualizations
Azure HDInsight, AzureML, Power BI,
Azure Data Factory
Hot Path Analytics
Azure Stream Analytics, Azure HDInsight Storm
Presentation &
Business Connectivity
App Service, Websites
Dynamics, BizTalk Services,
Notification Hubs
Hot Path Business Logic
Service Fabric & Actor Framework
Cloud Gateway
Event Hubs
&
IoT Hub
Field
Gateway
Protocol
Adaptation
7. Devices Device Connectivity Storage Analytics Presentation & Action
Event Hubs SQL Database
Machine
Learning
App Service
Service Bus
Table/Blob
Storage
Stream
Analytics
Power BI
External Data
Sources
DocumentDB HDInsight
Notification
Hubs
External Data
Sources
Data Factory Mobile Services
BizTalk Services
{ }
8.
9.
10. IoT Sweet Spot $1000 PCs$400 Phones
Cost
Computational Capabilities
Memory/Storage Capacity
Energy Consumption/Source
$1
Sensor
$10000
Server
Component Quality
29. address = new Address(sbNamespace, 5671, keyName, keyValue);
connection = new Connection(address);
session = new Session(connection);
sendLink = new SenderLink(
session,
"send-link:" + entity,
entity);
var messageValue = Encoding.UTF8.GetBytes(data);
// AMQP supports 3 types of body, here we use Data.
var message = new Message() { BodySection =
new Data() { Binary = messageValue } };
sendLink.Send(message);
Using AmqpNetLite: http://amqpnetlite.codeplex.com/
Before you can do anything with your data, you must first get it into Azure. This is what is typically called the "ingestion" or "ingress" stage of an overall IoT architecture.
Depending on the type of device you have, and how it is deployed physically, you may or may not be able to reach the Cloud directly.
Also depending on your device and scenario, you may or may not be able to use secure protocols like SSL. It is usually very desirable to have all communication from the device to the Cloud authenticated and encrypted.
Let's look at a few types of devices that you might want to use to prototype or develop IoT projects:
- Simple MCU-based boards: Arduino Uno, Due ...
- Advanced MCU-based boards with onboard network: Tessel, Arduino Yun ...
- Full computing platform in embedded form factor: Raspberry Pi, BeagleBone Black ...
- Back to simple MCU-based boards: using a more powerful device as a field gateway
We are going to look at these different types of devices and how to connect them to Azure.
Simple boards: these do not have the CPU or RAM to run full networking stacks or secure protocols. You can add a network shield but it only gives you some basic HTTP capabilities, without SSL. But this is enough to get started sending simple data, for example using Azure Mobile Services.
(or any other WebAPI)
Advanced boards: these are capable of running a full secure TCP/IP stack. This means you can securely send data over HTTPS or AMQP to Azure IoT services like Device Hub or Event Hubs.
MIPS @400MHz
64 MB DDR2
Using these advanced boards, you also access other Azure services.
Full boards: using the Raspberry Pi and BBB, everything is possible. You have access to all the usual Linux libraries and tools.
900MHz quad-core ARM Cortex-A7 CPU
1GB RAM
But you can also use Windows 10! Yay! This opens the full power of Universal Windows Apps that you can run on both embedded devices and full-power platforms like PCs or smartphones.
Now back to our simple boards: using an RPi or BBB, you can build a field gateway that will act as a middleman, receiving unsecure data and forwarding it to Azure over a secure channel.