SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
@ITCAMPRO #ITCAMP16Community Conference for IT Professionals
Many thanks to our sponsors & partners!
GOLD
SILVER
PARTNERS
PLATINUM
POWERED BY
Create The Internet
of Your Things
Laurent Ellerbach
laurelle@microsoft.com
Technical Evangelist Lead
Microsoft Central and Eastern Europe
http://blogs.msdn.com/laurelle
A developer introduction to Microsoft’s
approach to the Internet of Things
“”
What is the Internet of Things?
The network of physical
objects that contain
embedded technology to
communicate and interact
with their internal states or
the external environment.
Source: Gartner
Comprehensive IoT platform for developers
InsightsData AnalyticsCloud &
Infrastructure
Devices & Assets
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
Internet of Your Things
Development
Microsoft IoT
Comprehensive solutions from device to cloud
IoT Editions Power a Broad Range of Devices
20 years of history in embedded devices
One Windows platform for all devices
Enterprise-ready, Maker-friendly
Designed for today’s IoT environments
Free IoT Core edition!
Cloud-Based IoT Services & Solutions
Easy to provision, use and manage
Pay as you go, scale as you need
Global reach, hyper scale
End-to-end security & privacy
Windows, Mbed, Linux, iOS, Android, RTOS
support
Azure IoT
Microsoft Azure IoT services
Producers Connect Devices Storage Analytics Take Action
Event Hubs SQL Database
Machine
Learning
Azure Websites
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
{ }
Azure support any kind of devices, Linux and
more
Microsoft Azure
Certified for IoT:
http://www.azure.co
m/iotdev tests and
certifies IoT-
enabled platform,
device and
operating system
combinations
A concrete example: my house
What I have
Few indoor/outdoor
temperature and humidity
Oregon Scientific sensors
Few ATmega328
(used in Arduino
boards)
Few Netduino using
.NET Microframework
Water arrivals in the
garden  A great cloud
infrastructure, database,
website and more!
The best developer tools in
the world
Example IoT solution
Overall architecture of what I’ve build – v1 (Jun 2014)
433MHz
receiver
Spark.io
433MHz
emitter
ATmega328
sensors
SQL
Azure
Azure
Mobile
Services
HTTP REST
Azure Web
site (Web
App)
ASP.NET +
MVC +
Entity
Framework
+ jquery
Browser
sprinkler
Netduino running .NET Microframework
HTTP
Gateway
Overall architecture – v2 (in progress)
433MHz
receiver
ATmega328
sensors
SQL
Azure
Azure
Event
Hub +
Stream
Analytics Web App
+
Javascript
Browser
sprinkler
Netduino running .NET Microframework
Gateway
App
IaC – Azure Resource Manager json
deployment
Recommen-
dation
workflow
Automation and
Machine Learning
APIs
HTTPS REST
HTTP REST
Existing sensors New sensors
433MHz receiver
Spark.io
433MHz emitter
ATmega328
433MHz emitter
ATmega328
Rain, wind speed and direction
Soil humidity, temperature, air
humidity, luminosity
Azure Mobile Services
SQL Azure
Sensors architecture – v1
Gateway
Creating my own wind and rain sensor - v1
600
1µF
antena
DTS
Pull up internes
Prototype - v1
Beta version - v1
Tools for Arduino development
+ • Visual Micro is free for
basic usage
• Great integration with
Visual Studio, support
projects type, template,
libraries
• Debugging thru serial and
USB
• Support bootloader flash
and more!
Prototype for decoding and posting to
Azure mobile services - v1
New challenge: a greenhouse to manage!
Prototype - v2
v2
What to do with the generated data?
101010100110001101010101110100110101010101001
101011101001110101010101101001101010101010100
Let insert a record in a table!
POST /tables/nomdelatable/ HTTP/1.1
X-ZUMO-APPLICATION: 123456789abcdef123456789abcdef12
Host: nomduservice.azure-mobile.net
Content-Length: 88
Connection: close
{"sensorID":22, "channel":5,
"instSpeed":12,"averSpeed":5,"direction":2,"batterylife
":90}
HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 133
Content-Type: application/json
Location: https://nomduservice.azure-
mobile.net/tables/weather//931CFDDE-AB7F-
4480-BA28-F1D5C611398B
Server: Microsoft-IIS/8.0
x-zumo-version:
Zumo.master.0.1.6.3803.Runtime
X-Powered-By: ASP.NET
Set-Cookie:
ARRAffinity=da4a9f7437a690e3c1a799d3a6c3ddf3e
e0cbb9f5a67008d3c919f0149f34ee3;Path=/;Domain
= nomduservice.azure-mobile.net
Date: Sun, 31 Aug 2014 15:40:12 GMT
Connection: close
{"sensorID":22,"channel":5,"instSpeed":12,"av
erSpeed":5,"direction":2,"batterylife":90,"id
":"931CFDDE-AB7F-4480-BA28-F1D5C611398B"}
Sent using POST on socket port 80
Received from the server
Arduino code to post in Azure Mobile Services
yes, it’s that simple!
TCPClient client;
byte AzureServer[] = { 12, 34, 56, 78 };
String writeJsonWind(struct wind wd) {
// Create a simple JSON;
String datastring = "{"sensorID":";
datastring += String(wd.ID);
datastring += ","channel":";
datastring += String(wd.channel);
datastring += ","instSpeed":";
datastring += String(wd.instantSpeed);
datastring += ","averSpeed":";
datastring += String(wd.averageSpeed);
datastring += ","direction":";
datastring += String(wd.direction);
datastring += ","batterylife":";
datastring += String(wd.bat);
datastring += "}";
return (datastring);
}
// Sending data is simple, create a JSON, and send it on port 80!
String dataString = writeJsonWind(myWind);
sendData(dataString);
void sendData(String thisData) {
// create a connection to port 80 on the server
// IP is your Mobile Services address
if (client.connect(AzureServer, 80))
{
//Serial.println("Connected to Azure Server");
// create the REST request using POST
// Nomdelatable is name of the table
client.print("POST /tables/nomdelatable/");
client.println(" HTTP/1.1");
// use the application key
client.println("X-ZUMO-APPLICATION:
123456789abcdef123456789abcdef12");
// host name is name of your Azure Mobile Service
client.println("Host: nomdumobileservice.azure-
mobile.net");
client.print("Content-Length: ");
client.println(thisData.length());
client.println("Connection: close");
client.println();
// and finally data!
client.println(thisData);
}
else { // in case of error, stop connection
client.stop();
} }
What about security?
Using Azure Event Hubs - v2
http://azure.microsoft.com/en-
us/services/event-hubs/
New: Azure IoT Hub
V2: RPI upgraded to v2
RPI taking picture from greenhouse to Azure
Azure IoT Hub
• Device need to be
registered
• Node.js running on
RPI
• Azure IoT SDK
available on Github:
https://github.com/Az
ure/azure-iot-sdks
• C, C#, Java, node.js
• Azure IoT Hub can
receive data as well
from devices
• Manage devices key,
allow access…
Sending message
HTTPS
message
Sending
message
HTTPS
1. Node.js app
processing the
message
2. taking picture
3. Uploading into Azure
blob
4. Sending acknowledge
Can send as
well data
stora
ge
Event
hub…
SQL Azure
Blob storage
Inside the greenhouse 
https://portalvhdskb2vtjmyg3mg.blob.core.windows.net/webcam/picture
Code available on https://github.com/Ellerbach/nodejs-webcam-azure-iot
What to do with the data?
101010100110001101010101110100110101010101001101110111101110010101000011010
101011101001110101010101101001101010101010100110110001010111101001110101010
Overall architecture of what I’ve build – v1
433MHz
receiver
Spark.io
433MHz
emitter
ATmega328
sensors
SQL
Azure
Azure
Mobile
Services
HTTP REST
Azure Web
site (Web
App)
ASP.NET +
MVC +
Entity
Framework
+ jquery
Browser
sprinkler
Netduino running .NET Microframework
HTTP
Gateway
Overall architecture – v2 (in progress)
433MHz
receiver
ATmega328
sensors
SQL
Azure
Azure
Event
Hub +
Stream
Analytics Web App
+
Javascript
Browser
sprinkler
Netduino running .NET Microframework
Gateway
App
IaC – Azure Resource Manager json
deployment
Recommen-
dation
workflow
Automation and
Machine Learning
APIs
Accessing data thru Excel
Website v1: http://arrosage.azurewebsites.net/
Displaying graphs
What about security?
Access denied if not authenticated as administrators
• Intake millions of events per
second
• Easy processing on continuous
streams of data
• Correlate streaming with reference
data
• Guaranteed events delivery
• Elasticity of the cloud for scale up
or scale down
• Low startup costs
Using Stream Analytics
WITH mydata as (
SELECT
CAST(WindSpeed as bigint) as speed,
CAST(WindSpeedAverage as float) as average,
CAST(WindDirection as bigint) as direction,
CAST(SensorID as bigint) as sensorID,
CAST(Temperature as float) as temperature,
CAST(Humidity as float) as humidity,
CAST(Luminosity as bigint) as liminosite,
CAST(SoilHumidity as bigint) as soilhumid
FROM arrosageinput)
SELECT speed, average, direction, sensorID
INTO
arrosagewind
FROM mydata
SELECT temperature, humidity, liminosite,
soilhumid, sensorID
INTO
arrosagehum
FROM mydata
Website for v2
Why API in v2?
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using Newtonsoft.Json;
using System.IO;
using System.Text;
namespace WeatherAPI.Controllers
{
public class WeatherController : ApiController
{
// GET api/weather
public ForecastData GetForecast(String location)
{
//Building parameter
String baseURL = "https://query.yahooapis.com/v1/public/yql";
String yqlQuery = "select * from weather.forecast where woeid in (select woeid from
geo.places(1) where text='" + location + "')";
String format = "json";
String requestURL = baseURL + "?q=" + HttpUtility.UrlEncode(yqlQuery) + "&format=" + format;
//Creating WebRequest and getting the response
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestURL);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//Response stream to string
String responseString;
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
responseString = reader.ReadToEnd();
}
//Deserialize response to object
ForecastData forecastData = JsonConvert.DeserializeObject<ForecastData>(responseString);
return forecastData;
}
}
}
xhr.open("GET", "https://microsoft-
apiappccd711277be14956b169a7c59837294a.azurewebsi
tes.net:443/api/Recommandation", true);
What to do with the analytics?
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
Machine learning
A bit of Machine Learning – v2
Test + code +
documentation auto
generated
Simple model
to predict if
necessary to
sprinkle
Microsoft Power BI
What about a bot? 
https://dev.botframework.com/
The bot architecture: example with email
Raspberry PI running
Linux and node.js
Azure IoT Hub
Message
(picture)
SQL Azure
Blob storage
Web App, Bot framework
Bot providers
Bot framework: example of Skype integration
Deployment? A bit of DevOps in v2
Exposing an API with humidity information
The sprinkler board
The Sprinkler board v2
What is in the garden
+ +
The sprinkler architecture
Netduino
http
1 Page to manage programming
1 to manage sprinkler opening
and closing
Simple browser as a client
2 Pages to manage calendar and
programming
Timer to launch psrinkler and automated mode
• Used in production for all summer
• Fully REST API based
• Can be accessed by apps, simple key
security
• Fully customizable with settings in SD card
Programming sprinkler
How does it looks like on the device
Does it really work?
My next steps with this project
One last thing…
Internet of Wine (IoW)
Before
After
How does it work?
0
1
2
3
4
5
6
30/12/2014 30/01/2015 28/02/2015 31/03/2015 30/04/2015 31/05/2015 30/06/2015 31/07/2015 31/08/2015 30/09/2015 31/10/2015 30/11/2015 31/12/2015 31/01/2016 29/02/2016
Some BI, 2014/12/30->2016/03/13 = 263 bottles
210 bottles in 2015
Comprehensive IoT platform for developers
InsightsData AnalyticsCloud &
Infrastructure
Devices & Assets
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010
1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
Internet of Your Things
Development
http://blogs.msdn.com/laurelle
http://github.com/ellerbach
http://www.windowsondevices.com
http://azure.microsoft.com
@ITCAMPRO #ITCAMP16Community Conference for IT Professionals
Q & A
www.InternetofYourThings.com

Contenu connexe

Tendances

NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Cisco DevNet
 

Tendances (20)

Don't Cross the Streams! (or do, we got you)
Don't Cross the Streams! (or do, we got you)Don't Cross the Streams! (or do, we got you)
Don't Cross the Streams! (or do, we got you)
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backend
 
Goodbye CLI, hello API: Leveraging network programmability in security incid...
Goodbye CLI, hello API:  Leveraging network programmability in security incid...Goodbye CLI, hello API:  Leveraging network programmability in security incid...
Goodbye CLI, hello API: Leveraging network programmability in security incid...
 
Nagios Conference 2011 - Ethan Galstad - Nagios XI Overview
Nagios Conference 2011 - Ethan Galstad - Nagios XI OverviewNagios Conference 2011 - Ethan Galstad - Nagios XI Overview
Nagios Conference 2011 - Ethan Galstad - Nagios XI Overview
 
Data Plane Matters! A Deep Dive and Demo on NGINX Service Mesh
Data Plane Matters! A Deep Dive and Demo on NGINX Service MeshData Plane Matters! A Deep Dive and Demo on NGINX Service Mesh
Data Plane Matters! A Deep Dive and Demo on NGINX Service Mesh
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo Applications
 
Enabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with AnsibleEnabling policy migration in the Data Center with Ansible
Enabling policy migration in the Data Center with Ansible
 
World Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking WorkshopWorld Wide Technology | Red Hat Ansible for Networking Workshop
World Wide Technology | Red Hat Ansible for Networking Workshop
 
Open Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and ArchitectureOpen Source IoT Project Flogo - Introduction, Overview and Architecture
Open Source IoT Project Flogo - Introduction, Overview and Architecture
 
APIC EM APIs: a deep dive
APIC EM APIs: a deep diveAPIC EM APIs: a deep dive
APIC EM APIs: a deep dive
 
Kafka Summit 2021 - Why MQTT and Kafka are a match made in heaven
Kafka Summit 2021 - Why MQTT and Kafka are a match made in heavenKafka Summit 2021 - Why MQTT and Kafka are a match made in heaven
Kafka Summit 2021 - Why MQTT and Kafka are a match made in heaven
 
Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...Using Ansible Tower to implement security policies and telemetry streaming fo...
Using Ansible Tower to implement security policies and telemetry streaming fo...
 
Enterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a ServiceEnterprise Kafka: Kafka as a Service
Enterprise Kafka: Kafka as a Service
 
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
 
IoT Edge Processing with Apache NiFi and MiniFi and Apache MXNet for IoT NY 2018
IoT Edge Processing with Apache NiFi and MiniFi and Apache MXNet for IoT NY 2018IoT Edge Processing with Apache NiFi and MiniFi and Apache MXNet for IoT NY 2018
IoT Edge Processing with Apache NiFi and MiniFi and Apache MXNet for IoT NY 2018
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTC
 
Kafka 0.9, Things you should know
Kafka 0.9, Things you should knowKafka 0.9, Things you should know
Kafka 0.9, Things you should know
 
Bring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-appsBring Service Mesh To Cloud Native-apps
Bring Service Mesh To Cloud Native-apps
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
 

En vedette

En vedette (20)

Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
Building and Managing your Virtual Datacenter using PowerShell DSC - Florin L...
 
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
Execution Plans in practice - how to make SQL Server queries faster - Damian ...Execution Plans in practice - how to make SQL Server queries faster - Damian ...
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
 
ITCamp 2016 Keynote
ITCamp 2016 KeynoteITCamp 2016 Keynote
ITCamp 2016 Keynote
 
Enacting Scrum - What it takes to maximize the chances for a successful adopt...
Enacting Scrum - What it takes to maximize the chances for a successful adopt...Enacting Scrum - What it takes to maximize the chances for a successful adopt...
Enacting Scrum - What it takes to maximize the chances for a successful adopt...
 
Suddenly Reality - Peter Leeson
Suddenly Reality - Peter LeesonSuddenly Reality - Peter Leeson
Suddenly Reality - Peter Leeson
 
2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor Damian2016, A New Era of OS and Cloud Security - Tudor Damian
2016, A New Era of OS and Cloud Security - Tudor Damian
 
Investing in Presales - George Bara
Investing in Presales - George BaraInvesting in Presales - George Bara
Investing in Presales - George Bara
 
Business Processes in Microsoft Dynamics CRM - Nicu Aleman
Business Processes in Microsoft Dynamics CRM - Nicu AlemanBusiness Processes in Microsoft Dynamics CRM - Nicu Aleman
Business Processes in Microsoft Dynamics CRM - Nicu Aleman
 
Creating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George SaadehCreating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George Saadeh
 
A new world of possibilities for contextual awareness with beacons - Dan Arde...
A new world of possibilities for contextual awareness with beacons - Dan Arde...A new world of possibilities for contextual awareness with beacons - Dan Arde...
A new world of possibilities for contextual awareness with beacons - Dan Arde...
 
Enforce Consistency through Application Infrastructure - Florin Coros
Enforce Consistency through Application Infrastructure - Florin CorosEnforce Consistency through Application Infrastructure - Florin Coros
Enforce Consistency through Application Infrastructure - Florin Coros
 
Developing PowerShell Tools - Razvan Rusu
Developing PowerShell Tools - Razvan RusuDeveloping PowerShell Tools - Razvan Rusu
Developing PowerShell Tools - Razvan Rusu
 
Azure SQL Database From A Developer's Perspective - Alex Mang
Azure SQL Database From A Developer's Perspective - Alex MangAzure SQL Database From A Developer's Perspective - Alex Mang
Azure SQL Database From A Developer's Perspective - Alex Mang
 
Cluj 2030 a vision on IT - will it thrive or will it flop - Mihai Nadas
Cluj 2030 a vision on IT - will it thrive or will it flop - Mihai NadasCluj 2030 a vision on IT - will it thrive or will it flop - Mihai Nadas
Cluj 2030 a vision on IT - will it thrive or will it flop - Mihai Nadas
 
Frustration Management - Dan Danciu
Frustration Management - Dan DanciuFrustration Management - Dan Danciu
Frustration Management - Dan Danciu
 
Everyone Loves Docker Containers Before They Understand Docker Containers - A...
Everyone Loves Docker Containers Before They Understand Docker Containers - A...Everyone Loves Docker Containers Before They Understand Docker Containers - A...
Everyone Loves Docker Containers Before They Understand Docker Containers - A...
 
Emerging Experiences - More Personal Computing (MPC) - Tim Huckaby
Emerging Experiences - More Personal Computing (MPC) - Tim HuckabyEmerging Experiences - More Personal Computing (MPC) - Tim Huckaby
Emerging Experiences - More Personal Computing (MPC) - Tim Huckaby
 
The rise of privacy & personal data in the IT business - Claudia Jelea
The rise of privacy & personal data in the IT business - Claudia JeleaThe rise of privacy & personal data in the IT business - Claudia Jelea
The rise of privacy & personal data in the IT business - Claudia Jelea
 
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...
The Fine Art of Time Travelling - Implementing Event Sourcing - Andrea Saltar...
 
Building Your First SPA with Aurelia and MVC 6 - Mihai Coros
Building Your First SPA with Aurelia and MVC 6 - Mihai CorosBuilding Your First SPA with Aurelia and MVC 6 - Mihai Coros
Building Your First SPA with Aurelia and MVC 6 - Mihai Coros
 

Similaire à Create The Internet of Your Things example of a real system - Laurent Ellerbach

Windows iot barone
Windows iot baroneWindows iot barone
Windows iot barone
DotNetCampus
 
Splunk app for stream
Splunk app for stream Splunk app for stream
Splunk app for stream
csching
 

Similaire à Create The Internet of Your Things example of a real system - Laurent Ellerbach (20)

Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
 
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
 
IoT on azure
IoT on azureIoT on azure
IoT on azure
 
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionEvent streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?
 
AWS re:Invent 2016: IoT: Build, Test, and Securely Scale (GPST302)
AWS re:Invent 2016: IoT: Build, Test, and Securely Scale (GPST302)AWS re:Invent 2016: IoT: Build, Test, and Securely Scale (GPST302)
AWS re:Invent 2016: IoT: Build, Test, and Securely Scale (GPST302)
 
Azure IoT Summary
Azure IoT SummaryAzure IoT Summary
Azure IoT Summary
 
Scalable Open-Source IoT Solutions on Microsoft Azure
Scalable Open-Source IoT Solutions on Microsoft AzureScalable Open-Source IoT Solutions on Microsoft Azure
Scalable Open-Source IoT Solutions on Microsoft Azure
 
IoT
IoT IoT
IoT
 
Exploring the Azure IoT Ecosystem
Exploring the Azure IoT EcosystemExploring the Azure IoT Ecosystem
Exploring the Azure IoT Ecosystem
 
Metaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdfMetaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdf
 
Real time analytics in Azure IoT
Real time analytics in Azure IoT Real time analytics in Azure IoT
Real time analytics in Azure IoT
 
Architecting IoT solutions with Microsoft Azure
Architecting IoT solutions with Microsoft AzureArchitecting IoT solutions with Microsoft Azure
Architecting IoT solutions with Microsoft Azure
 
Windows iot barone
Windows iot baroneWindows iot barone
Windows iot barone
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOT
 
Splunk app for stream
Splunk app for stream Splunk app for stream
Splunk app for stream
 
DevSum'15 : Microsoft Azure and Things
DevSum'15 : Microsoft Azure and ThingsDevSum'15 : Microsoft Azure and Things
DevSum'15 : Microsoft Azure and Things
 
De l’Internet des objets à Power BI en passant par Azure - SharePoint Saturday
De l’Internet des objets à Power BI en passant par Azure - SharePoint SaturdayDe l’Internet des objets à Power BI en passant par Azure - SharePoint Saturday
De l’Internet des objets à Power BI en passant par Azure - SharePoint Saturday
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
Architecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour versionArchitecting io t solutions with microisoft azure ignite tour version
Architecting io t solutions with microisoft azure ignite tour version
 

Plus de ITCamp

ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp
 

Plus de ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Create The Internet of Your Things example of a real system - Laurent Ellerbach

  • 1. @ITCAMPRO #ITCAMP16Community Conference for IT Professionals Many thanks to our sponsors & partners! GOLD SILVER PARTNERS PLATINUM POWERED BY
  • 2. Create The Internet of Your Things Laurent Ellerbach laurelle@microsoft.com Technical Evangelist Lead Microsoft Central and Eastern Europe http://blogs.msdn.com/laurelle A developer introduction to Microsoft’s approach to the Internet of Things
  • 3. “” What is the Internet of Things? The network of physical objects that contain embedded technology to communicate and interact with their internal states or the external environment. Source: Gartner
  • 4. Comprehensive IoT platform for developers InsightsData AnalyticsCloud & Infrastructure Devices & Assets 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111 Internet of Your Things Development
  • 5. Microsoft IoT Comprehensive solutions from device to cloud IoT Editions Power a Broad Range of Devices 20 years of history in embedded devices One Windows platform for all devices Enterprise-ready, Maker-friendly Designed for today’s IoT environments Free IoT Core edition! Cloud-Based IoT Services & Solutions Easy to provision, use and manage Pay as you go, scale as you need Global reach, hyper scale End-to-end security & privacy Windows, Mbed, Linux, iOS, Android, RTOS support Azure IoT
  • 6. Microsoft Azure IoT services Producers Connect Devices Storage Analytics Take Action Event Hubs SQL Database Machine Learning Azure Websites 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 { }
  • 7. Azure support any kind of devices, Linux and more Microsoft Azure Certified for IoT: http://www.azure.co m/iotdev tests and certifies IoT- enabled platform, device and operating system combinations
  • 9. What I have Few indoor/outdoor temperature and humidity Oregon Scientific sensors Few ATmega328 (used in Arduino boards) Few Netduino using .NET Microframework Water arrivals in the garden  A great cloud infrastructure, database, website and more! The best developer tools in the world
  • 11. Overall architecture of what I’ve build – v1 (Jun 2014) 433MHz receiver Spark.io 433MHz emitter ATmega328 sensors SQL Azure Azure Mobile Services HTTP REST Azure Web site (Web App) ASP.NET + MVC + Entity Framework + jquery Browser sprinkler Netduino running .NET Microframework HTTP Gateway
  • 12. Overall architecture – v2 (in progress) 433MHz receiver ATmega328 sensors SQL Azure Azure Event Hub + Stream Analytics Web App + Javascript Browser sprinkler Netduino running .NET Microframework Gateway App IaC – Azure Resource Manager json deployment Recommen- dation workflow Automation and Machine Learning APIs HTTPS REST HTTP REST
  • 13. Existing sensors New sensors 433MHz receiver Spark.io 433MHz emitter ATmega328 433MHz emitter ATmega328 Rain, wind speed and direction Soil humidity, temperature, air humidity, luminosity Azure Mobile Services SQL Azure Sensors architecture – v1 Gateway
  • 14. Creating my own wind and rain sensor - v1 600 1µF antena DTS Pull up internes
  • 17. Tools for Arduino development + • Visual Micro is free for basic usage • Great integration with Visual Studio, support projects type, template, libraries • Debugging thru serial and USB • Support bootloader flash and more!
  • 18. Prototype for decoding and posting to Azure mobile services - v1
  • 19. New challenge: a greenhouse to manage!
  • 21. v2
  • 22. What to do with the generated data? 101010100110001101010101110100110101010101001 101011101001110101010101101001101010101010100
  • 23. Let insert a record in a table! POST /tables/nomdelatable/ HTTP/1.1 X-ZUMO-APPLICATION: 123456789abcdef123456789abcdef12 Host: nomduservice.azure-mobile.net Content-Length: 88 Connection: close {"sensorID":22, "channel":5, "instSpeed":12,"averSpeed":5,"direction":2,"batterylife ":90} HTTP/1.1 201 Created Cache-Control: no-cache Content-Length: 133 Content-Type: application/json Location: https://nomduservice.azure- mobile.net/tables/weather//931CFDDE-AB7F- 4480-BA28-F1D5C611398B Server: Microsoft-IIS/8.0 x-zumo-version: Zumo.master.0.1.6.3803.Runtime X-Powered-By: ASP.NET Set-Cookie: ARRAffinity=da4a9f7437a690e3c1a799d3a6c3ddf3e e0cbb9f5a67008d3c919f0149f34ee3;Path=/;Domain = nomduservice.azure-mobile.net Date: Sun, 31 Aug 2014 15:40:12 GMT Connection: close {"sensorID":22,"channel":5,"instSpeed":12,"av erSpeed":5,"direction":2,"batterylife":90,"id ":"931CFDDE-AB7F-4480-BA28-F1D5C611398B"} Sent using POST on socket port 80 Received from the server
  • 24. Arduino code to post in Azure Mobile Services yes, it’s that simple! TCPClient client; byte AzureServer[] = { 12, 34, 56, 78 }; String writeJsonWind(struct wind wd) { // Create a simple JSON; String datastring = "{"sensorID":"; datastring += String(wd.ID); datastring += ","channel":"; datastring += String(wd.channel); datastring += ","instSpeed":"; datastring += String(wd.instantSpeed); datastring += ","averSpeed":"; datastring += String(wd.averageSpeed); datastring += ","direction":"; datastring += String(wd.direction); datastring += ","batterylife":"; datastring += String(wd.bat); datastring += "}"; return (datastring); } // Sending data is simple, create a JSON, and send it on port 80! String dataString = writeJsonWind(myWind); sendData(dataString); void sendData(String thisData) { // create a connection to port 80 on the server // IP is your Mobile Services address if (client.connect(AzureServer, 80)) { //Serial.println("Connected to Azure Server"); // create the REST request using POST // Nomdelatable is name of the table client.print("POST /tables/nomdelatable/"); client.println(" HTTP/1.1"); // use the application key client.println("X-ZUMO-APPLICATION: 123456789abcdef123456789abcdef12"); // host name is name of your Azure Mobile Service client.println("Host: nomdumobileservice.azure- mobile.net"); client.print("Content-Length: "); client.println(thisData.length()); client.println("Connection: close"); client.println(); // and finally data! client.println(thisData); } else { // in case of error, stop connection client.stop(); } }
  • 26. Using Azure Event Hubs - v2 http://azure.microsoft.com/en- us/services/event-hubs/
  • 29. RPI taking picture from greenhouse to Azure Azure IoT Hub • Device need to be registered • Node.js running on RPI • Azure IoT SDK available on Github: https://github.com/Az ure/azure-iot-sdks • C, C#, Java, node.js • Azure IoT Hub can receive data as well from devices • Manage devices key, allow access… Sending message HTTPS message Sending message HTTPS 1. Node.js app processing the message 2. taking picture 3. Uploading into Azure blob 4. Sending acknowledge Can send as well data stora ge Event hub… SQL Azure Blob storage
  • 30. Inside the greenhouse  https://portalvhdskb2vtjmyg3mg.blob.core.windows.net/webcam/picture Code available on https://github.com/Ellerbach/nodejs-webcam-azure-iot
  • 31. What to do with the data? 101010100110001101010101110100110101010101001101110111101110010101000011010 101011101001110101010101101001101010101010100110110001010111101001110101010
  • 32. Overall architecture of what I’ve build – v1 433MHz receiver Spark.io 433MHz emitter ATmega328 sensors SQL Azure Azure Mobile Services HTTP REST Azure Web site (Web App) ASP.NET + MVC + Entity Framework + jquery Browser sprinkler Netduino running .NET Microframework HTTP Gateway
  • 33. Overall architecture – v2 (in progress) 433MHz receiver ATmega328 sensors SQL Azure Azure Event Hub + Stream Analytics Web App + Javascript Browser sprinkler Netduino running .NET Microframework Gateway App IaC – Azure Resource Manager json deployment Recommen- dation workflow Automation and Machine Learning APIs
  • 37. What about security? Access denied if not authenticated as administrators
  • 38. • Intake millions of events per second • Easy processing on continuous streams of data • Correlate streaming with reference data • Guaranteed events delivery • Elasticity of the cloud for scale up or scale down • Low startup costs
  • 39. Using Stream Analytics WITH mydata as ( SELECT CAST(WindSpeed as bigint) as speed, CAST(WindSpeedAverage as float) as average, CAST(WindDirection as bigint) as direction, CAST(SensorID as bigint) as sensorID, CAST(Temperature as float) as temperature, CAST(Humidity as float) as humidity, CAST(Luminosity as bigint) as liminosite, CAST(SoilHumidity as bigint) as soilhumid FROM arrosageinput) SELECT speed, average, direction, sensorID INTO arrosagewind FROM mydata SELECT temperature, humidity, liminosite, soilhumid, sensorID INTO arrosagehum FROM mydata
  • 41. Why API in v2? using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using Newtonsoft.Json; using System.IO; using System.Text; namespace WeatherAPI.Controllers { public class WeatherController : ApiController { // GET api/weather public ForecastData GetForecast(String location) { //Building parameter String baseURL = "https://query.yahooapis.com/v1/public/yql"; String yqlQuery = "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text='" + location + "')"; String format = "json"; String requestURL = baseURL + "?q=" + HttpUtility.UrlEncode(yqlQuery) + "&format=" + format; //Creating WebRequest and getting the response HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestURL); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //Response stream to string String responseString; using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); responseString = reader.ReadToEnd(); } //Deserialize response to object ForecastData forecastData = JsonConvert.DeserializeObject<ForecastData>(responseString); return forecastData; } } } xhr.open("GET", "https://microsoft- apiappccd711277be14956b169a7c59837294a.azurewebsi tes.net:443/api/Recommandation", true);
  • 42. What to do with the analytics? 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111
  • 44. A bit of Machine Learning – v2 Test + code + documentation auto generated Simple model to predict if necessary to sprinkle
  • 46. What about a bot?  https://dev.botframework.com/
  • 47. The bot architecture: example with email Raspberry PI running Linux and node.js Azure IoT Hub Message (picture) SQL Azure Blob storage Web App, Bot framework Bot providers
  • 48. Bot framework: example of Skype integration
  • 49. Deployment? A bit of DevOps in v2
  • 50. Exposing an API with humidity information
  • 53. What is in the garden + +
  • 54. The sprinkler architecture Netduino http 1 Page to manage programming 1 to manage sprinkler opening and closing Simple browser as a client 2 Pages to manage calendar and programming Timer to launch psrinkler and automated mode • Used in production for all summer • Fully REST API based • Can be accessed by apps, simple key security • Fully customizable with settings in SD card
  • 56. How does it looks like on the device
  • 57. Does it really work?
  • 58. My next steps with this project
  • 62. After
  • 63. How does it work?
  • 64. 0 1 2 3 4 5 6 30/12/2014 30/01/2015 28/02/2015 31/03/2015 30/04/2015 31/05/2015 30/06/2015 31/07/2015 31/08/2015 30/09/2015 31/10/2015 30/11/2015 31/12/2015 31/01/2016 29/02/2016 Some BI, 2014/12/30->2016/03/13 = 263 bottles 210 bottles in 2015
  • 65. Comprehensive IoT platform for developers InsightsData AnalyticsCloud & Infrastructure Devices & Assets 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111 1010101001100011010101011101001101010101010011011101111011100101010000110101010111010011010 1010111010011101010101011010011010101010101001101100010101111010011101010101011011110100111 Internet of Your Things Development
  • 67. @ITCAMPRO #ITCAMP16Community Conference for IT Professionals Q & A