This post discusses IoT, Intel Galileo, Windows Developer Program for IoT and related Azure Cloud services

I enter my house at the end of the day tired. My door ‘senses’ my entry, switches on the dim lights, plays some pleasing jazz while the air conditioner adjusts to an optimal temperature. As I relax and rejuvenate, I check my blood pressure, heart rate and activity for the day on my health monitoring wearable app. Reaching my oven, I enter my choice of cuisine on my mobile app and download the recipe while the oven adjusts the combination of the settings. After a sumptuous meal, as I prepare for bed, I check my sleep cycles through the sensors on my mattress and adjust for a comfortable and much needed sleep. All these ‘things’ I manage through apps on my mobile device. Welcome to my Connected World! 

The Connected World: A world where Smart Devices and M2M (machine to machine) communication is a de-facto which helps and makes our meandering existence easier and simpler. The buzz around Internet of Things (IoT) is palpable and contagious. Gartner predicts 26 billion devices connected to the web and will generate an incremental revenue exceeding $300 billion by 2020. These facts are hard to ignore. IoT is no longer futuristic and aspirational. The opportunity is big and the time to act is now.

With Arduino certified Intel Galileo  development boards readily available and Windows Developer Program for IoT providing the support, the development of prototypes for consumer applications has been made easier for hobbyists, developers and garage tinkerers to enable the Connected World. Below is a high level overview of some services available in Microsoft Azure that can help develop and design your IoT application on the Cloud.

  • Azure Storage Services: Data is the key ingredient to any IoT application. Considering the small memory on the Arduino board, it is essential to read and store data in the cloud. Azure Storage services give applications the storage they need through blob, file, tables, queue and SQL services.

  • Azure Service Bus allows for a scalable messaging system that can be used for Device-to-Cloud Communication using queues, topics and relays. The Windows Azure Service Bus and the Internet of Things clearly explains how the Azure Service Bus overcomes challenges and delivers for an efficient scalable IoT application.

  • Azure Cloud Services using web roles and worker roles is an efficient way to design an application. Worker roles can be designed to directly interact with the controllers and sensors relaying messages and commands to and from the end points (sensors, devices or the cloud). Web roles can be designed to provide the interface for users or administrators. The asynchronous communication between the two can be accomplished using Azure Service Bus as described above.  

  • Azure Mobile Services can be used for user and administrator interaction. Services such as authenticating a user, pushing notifications, scheduling jobs can be useful in any IoT application.

  • Azure HDInsight is the Apache Hadoop based service on the Cloud. As already mentioned, the key ingredient to any IoT application is data. Hadoop and HDInsight: Big Data in Windows Azure explains how HDInsight can be used to derive such key insights.

Microsoft Azure is capable of providing end-to-end backend technology for any IoT application. Intel has made the latest UEFI firmware available along with the instructions to install the new Windows image. We encourage you to experiment with Intel Galileo and develop your app using tools such as Python, Java on Visual Studio or any tool of your choice. Also, you could get started with an Azure Free Trial which gives you $220 to try out Azure.

We are committed to support your endeavor to contribute to the Connected World through the Windows Developer Program for IoT. Sign up here and share with us your experience using the Galileo boards. Let us know how we can help build the Internet of Your Things. Everyone is invited to the BYOB (Bring Your Own Board) party.

To learn more, you could refer the following: