Yesterday I followed an interesting session about Azure IoT and I was impressed. In the following you can find some notes that I took …
The speaker was Daniele Colonna, one of the Microsoft guy of the team that in Monaco is working on this topic: in particular, if I took it right, now he is involved in the developing of a specific connector following the standard protocol (possibly OPCUA??) in order it can be used whenever a gateway or device is using it.
After the presentation I asked for his slides and he kindly shared them: you can download from this link on my OneDrive or from the Milan CloudRoadShow site at this link. The slides he presented I found are the same of a nice (less than one hour long) lesson available in the Microsoft Virtual Accademy site (Developing Apps for the Internet of Things) … so, if you are interested, you can follow that lesson: even though the speaker is another, the content should not be so different 😉
Moreover you can download from here the SW device example he did, even thought he said that on the Azure IoT site there are links to much more complex examples!
I saw that Daniele is also the owner of some GitHub projects related to IoT … and it could be useful to get an eye on them 😉
The full Azure IoT system allows to connect and scale with efficiency the data coming from – for example – little sensors, analyzes and acts on new data, integrates them and transform business processes.
He showed the Azure IoT Suite that is a set of tools and services that easily can help you to provide an even custom solution. Going to https://www.azureiotsuite.com you can, in a few steps, create a real working solution on your own Azure account space. Obviously the data coming from the devices are simulated, but you can even run some code that send and receive messages, creating the SW that should run on a real device.
There are in particular two solution types you can choose: a predictive maintenance one and a remote monitoring one. After running the creation of one of that solutions on your Azure account, going into your dashboard you will see that an IoT HUB has been created, some storage and three stream analytics jobs (Device Info to extract date, Rules to handle thresholds, Telemetry to get max, min media) too.
There are already 3 protocols native handled (e.g. http).
The IoT HUB works as a cloud gateway or you can have one nearby devices.
All the security topic is taken into account by the system solution (each device can have its own access key using tokens): in fact there is a forecast of 10% of hacker attacks on IoT systems in the near future .
In the Azure cloud there can be used several services like analytics, rules and actions and a proper dashboard and visualization.
All the code of both solutions are on GitHub and they can be personalized for your needs: as they are, they use a simulator of devices that connect directly to the IoT HUB. There are several streams: analytics, jobs to extrapolate data (e.g. thresholds, minimum, maximum and media), …
- Azure IoT Remote Monitoring preconfigured solution
- Azure IoT Predictive Maintenance preconfigured solution
We can not only receive data but also send commands: I can send a command to put in standby a device and then send another to start it sending, … so setting a time to live for devices that need to save power and that connect only periodically. When someone creates the SW for a new device (using the device SDK) he has to use a DeviceKey (obtained registering the device in the cloud), that has to be used by the device to connect and communicate in a secure way.
Moreover, APIs, SDKs and open source projects from Microsoft Azure on the GitHub Azure path (filtered with iot) are available for IoT too:
- Device SDK (for every platform and language) SDKs for a variety of languages and platforms that help connect devices to Microsoft Azure IoT services.
- Gateway SDK: the gateway is an object located near the sensors, in order to aggregate data, possibly make protocol adaptation and local filtering
- Visual Studio extension to ease the use of the Azure IoT client SDK
- Library of projects each with an npm package used across Azure IoT microservice repos.
- Azure IoT protocol gateway enables protocol translation for Azure IoT Hub
A useful tool, expecially during development, is the Device Explorer that allows to interact with all devices and see the exchanged data: it is a GitHub project and also for it all the source is available.
The home page for all the information related Microsoft IoT systems is http://www.internetofyourthings.com.
You can see also the page related to Windows IoT from developer.microsoft.com.
Connected Service for Azure IoT Hub allows developers to create and connect to Azure IoT Hub easily and with step-by-step guidance.
PS: another interesting session was Build and Deploy Applications with the Microsoft App Platform and here I found, always in the MVA site, the presentation. To find other Cloud Roadshow courses on MVA, search Cloud Roadshow.