 Hey guys, this is Olivier Block. I'm a Program Manager in the Azure IoT team. I'm going to talk to you a little about the Azure IoT Suite and the IoT Hub service that we recently released for developers. I want really to take that stance from the developer's perspective. How are you going to connect your device to Azure through the Azure IoT Suite and the Azure IoT Hub? So I will do at first introduction a quick one on Internet of Things and explain how Microsoft and the Microsoft Azure team see the Internet of Things and what we are doing in that area. I will show you the Azure IoT Suite with a pre-configured solution that we call the remote monitoring one. And then I will show you other demos on how to connect these devices to Azure. So the Internet of Things, everyone has its own definition of what it is. And I won't give you mine because actually it will be certainly different to yours. But in a nutshell, what we're trying to do at Microsoft is to address these huge market that is actually upcoming or already here for some people. We're talking about trillions of dollars in market and we're talking even more interesting for us developers want to connect our devices. We're talking about billions of connected things by 2020 and this number is going up every week when we analyze that data. The idea here is to be able to capture and analyze data in order to for you as a customer improve the results across your business. So we'll go from capturing the data on devices, analyzing that data and doing the most out of the data insights that you're getting through analytics. So on the connection part of things, what we want to do in the Azure team is to offer something that scales. With efficiency, we want you to be able to connect any type of device, especially existing devices. And the platform these devices are running in terms of the OS, in terms of the languages, we want to be agnostic of that. So we are actually working on providing all the bits and pieces for you to be able to connect existing devices and future devices. On the analytics part of things, once again, we want to be able to not just ingest data from millions of devices, but we want to make it easy for developers to set up rules, take actions on that data, display data to users in the right way, in the right place, at the right moment. The visualizations, dashboards, things are very important as well to us. Last but not least, we want to go beyond just having people being able to see real-time data or to have basic analytics or actually advanced analytics with machine learning. But what we want to allow is for developers to integrate an IoT solution into a line of business application, into a process. Imagine you have a device on the factory floor that is doing something, sending its telemetry data. Your very smart machine learning algorithms will do analytics on that data coming from the devices, determining that there is, for example, a maintenance that needs to happen in the near future. Then you'll be able, from that IoT solution, to trigger some maintenance tickets or processes into your business application. And this is what we want to integrate into a comprehensive solution. And we have an example in the Azure IoT Suite of a comprehensive solution. It will have several of them in the future. That example is about remote monitoring. What you're seeing right now is the overall architecture of that remote monitoring solution that I will show you shortly how to deploy and how to connect devices to. The idea here is to provide all these services configured to connect to one another and provide that experience of a device sending data, you're analyzing data setting simple rules and taking action by sending a command back or by calling in into a line of business application. You will see IoT Hub, which is that service that allows you to ingest data from millions of devices at the same time. We're using Stream Analytics to do near real-time analytics on the streams of data from the devices. We're storing data into blobs. We're passing it over to other services like web jobs or web apps through Event Hub. We're storing metadata for the devices in DocumentDB. We are displaying telemetry data averages, maxes, means of the data using Power BI controls on the dashboard you'll see in a second. And last but not least, we have that interaction with logic apps to integrate into the business processes. All of that, obviously, in a very secure way. We want to make sure that from devices all the way to your business application, data secure, processes secure, and so forth. So let me show you real quick how Azure IoT Suite looks like with that remote monitoring solution. The first thing you're going to have to do in order to deploy your first IoT Suite pre-configured solution is to visit the azureiotesuite.com website. You will be asked if you don't have one to create an azure account. It works with a trial subscription or to log into your existing one. And the creation of that new solution is as simple as clicking on Create New, selecting, in that case, remote monitoring. We have a couple of new ones that will come soon. Predictive Maintenance is one, Asset Management is one. So if I want to create a remote monitoring solution, I'm going to put here the name of that solution. I'm going to select a region. And here I'm going to select ECUS and I'm going to select one of my subscriptions. And once I've selected a subscription, I'm going to hit Create Solution. I have one pre-configured here. What you're going to get when you deploy that pre-configured solution is that nice dashboard. In the back, there are tons of services that have been deployed for you. But in nutshell, this is what you want your customer or your technician or whatnot to interact with. I can see here several devices and their data is coming up into my dashboard. I can see alarm history. I can see some computation has been done, some analytics has been done on the data in the form of average, mean, max of that data. And the real-time data actually is coming from an actual device for this one. You can monitor and manage the list of your devices. I have all these devices here. You can set up the rules. You can configure actions. And so as a developer from here, what you want to do is, when it comes to the actual dashboard and the remote binary solution, what you want to do is customize all of that. When the suite was deployed onto your subscription, it created a resource group containing all the services that are used in this IoT solution suite. I can see here the IoT Hub. I can see a DocDB instance. I can see the Stream Analytics jobs. I can see my website, et cetera, et cetera. And the idea from here is to add services, change the settings on the portal, use the APIs for Azure in order to change some settings to modify the way the various services interact with each other. And as a matter of fact, all the remote-marrowing preconfigured solution is offered as an open-source project. If you visit the Azure-IoT-remote-marrowing project in the Azure projects list in GitHub, you will find all the code for the website. You will find also the ARM template to deploy all the services at once. That means you can reproduce that preconfigured solution at will with your own settings. If you want to do that fleet management solution that we talked about, up to you. So back to my suite and list of devices here. If I want as a developer to add a new device, what I will do is click Add Device here. And I'm going to get some specific information about a device identity, a connection string that it will need for provisioning my device. So I'm going to choose here Node Sample. And I'll be able to check if that ID already exists in there. That device ID is available, and I will create that device ID. And this is what I'm going to give as the manager of that IoT solution to my device developer for him to provision the device. We have device management features that are coming to the Azure IoT Hub service. For now you have to do that manually. Another thing I want to show you real quick is the way you can from that IoT suite control a device. So that device here is sending temperature and humidity data. One thing I want to do is send a command back to that device from my IoT solution that has been deployed. I'm going to select that device here, and I'm going to see the list of commands. And the device is actually a free-scale embed board that I have here. I'm going to select the commands that this device supports, and the trigger alarm is what I'm interested in. I'm going to type Hello Connect, and I'm going to send a command back to the device. And you'll see the device receiving that command starting flashing that red LED and displaying the message on its screen. Here you go. The alert is started, and you'll see the device little LED blipping right here, and the text has been displayed on the screen. The idea is that from this interface you're able to interact with the devices. Obviously, when you want to scale to millions of devices you'll have to go to APIs and develop your own web apps and worker roles and so on that will automate all these calls back to devices based on rules that you've defined. This remote monitoring solution you've just seen as part of the Azure IoT Suite is just a starting point. You will need to customize it. It's what I would call a boilerplate for you to build your actual IoT solution at the end of the day. Here you can see on that slide there's an example of a fleet management solution built from the remote monitoring Azure IoT Suite sample. And the idea is for you to be able to get started fast in minutes. And all, as I showed you, all the services are available for you to customize, to adapt, to change, to remove, and to extend. The next question for you is like, hey, I had that nice backend set of services. I've seen these simulated devices. Now, how about connecting a real device? I will show you right now how to connect an actual hardware device to IoT Hub, which is that service for data ingestion that allows you to then use the data from the device into your Azure IoT Suite solution. Here I am on my Azure portal and I have several things that I pinned in there. One of them is the Olivier demo resource group. And that resource group contains one instance of an IoT Hub. And this one is just vanilla. I just wanted to save you the plus, create a new Internet of Things object or service IoT Hub. It takes a couple of minutes. So here I have this Olivier demo IoT Hub. What I want to do is show you how to simply connect a device. So we actually have plenty of samples for the various libraries we are shipping in the Azure IoT SDKs for C, for Java, for C sharp, and for Node. And in the Node folder, not only is it the library itself that we publish as an NPM package, but there is also some neat little samples. And the main sample I'm going to use today is a simple sample HTTP, uses HTTP to send five messages up to Azure IoT Hub and receive a command back from it. And we also have a remote monitoring sample, which is one that will allow you to connect a Node device to the Azure IoT Suite remote monitoring preconfigured solution that I just demoed before. But back to my IoT Hub. I need to gather a piece of information for me to interact with that IoT Hub. At the end of the day, we will allow developers to go into the portal and add new device identities and manage their devices and so forth. However, for now, this functionality is not in there. And anyways, when you want to scale to millions of devices, this is not sustainable. This doesn't scale doing manually this kind of operation. So we have APIs for the service for C sharp application, but also for Java and for Node application. I want to use a Node application called IoT Hub Explorer and IoT Hub Explorer is something you can get by doing NPM install IoT Hub Explorer. And it has several types of commands, some for adding a new device identity, some for reading, some for deleting them. Also, we have a command for monitoring events. What I want to do here is actually add a new device identity. So I'm going to call IoT Hub Explorer, paste the connection string for the IoT Hub Explorer owner and then do a create. And I will call that Node sample app as my name of device. And what I will also do is ask for the connection string to be output. Sending the command, it created that instance of a device identity into my IoT Hub and I'm able to go and get that connection string for the device. Into my samples, because I'm in that folder, I can see several files. The one I'm interested in as I showed you on GitHub is a simple sample HTTP. So let me go to Visual Studio Code and edit these files. The simple sample HTTP file actually has a variable for the connection string. And the only thing I need to do to provision my device with the right information to connect to that IoT Hub instance is to paste the connection string. I will just make sure that my package JSON is pointing to that JavaScript file. If I wanted to use a remote monitoring sample, I could just like change that setting in here. One thing you need to do obviously is to get the various dependencies. So doing an NPM install or update would work on your project folder in order to get all the NPM packages that you need. And in this case, you are seeing Azure IoT device and Azure IoT common, which are the packages that we ship into NPM. And there's also dependency on crypto because as I mentioned, we're going to encrypt all the data to secure the connection between the device and the IoT Hub. What I want to do here is then monitor the IoT Hub because I'm going to start the node application from Visual Studio Code in debug. And what I want to do here is just do a monitor events in my node application, my node controller in order to make sure that my device is actually sending data. So let me type here monitor-events for the node sample app. So my node application will connect to the IoT Hub and will ask for events coming from the node sample app device. Now I'm listening. I can go back to code and do a start debug and launch. So my simulated device is starting to send events and my listener, which is my management application is receiving these events. So actually we are in the perfect state. I have devices sent on one side and received on the other one. So you've seen how simple it is in that case to connect a node application running on a device to Azure IoT Hub. As I mentioned earlier, we have plenty of other samples in the Azure IoT SDK's repository. We also have a couple of other samples for now that we're going to add more to. And if you go to aka.ms slash Azure IoT samples. This is one of the places where you can get plenty of samples for connecting a device to Azure IoT Hub and doing the most out of the data from these devices. So whether it's your favorite, you know, maker project or it's a proof of concept for proving to your boss that using Azure IoT is a good solution. Go test these few samples, add your own one, contribute to the SDK and get going. Now you've seen the basics of how to connect a device into Azure IoT Suite and Azure IoT Hub. I think now it's up to you to connect your own device, your own simulator or your own, you know, web app. And so you can find a lot of resources for developers on aka.ms slash Azure IoT Dev. And you can see some samples, end-to-end samples on Azure IoT samples. And the idea there is for you to have an idea of cool things you can do or interesting things you can do with the Azure IoT services. Hope to see you soon. Bye.