A “Happy Path” to learn IoT development on Azure

Zhidi Shang

Learning how to develop an IoT (Internet of Things) application on Azure has never been easier! It is no longer a painful journey!


There is a “Happy Path” that, without requiring the developer to be well trained on both device and cloud ends, and anywhere in between, by following a few well-crafted tutorials, using some easy to acquire popular devices, and powerful cloud services on Azure, any developer can get an idea how to quickly convert their creativity into a prototype application, that runs on device but connects to the cloud!


As a product manager at Microsoft Developer Division for developing useful tools and guides for IoT developers, especially developers new to IoT development, I always encounter two large groups that need help when it comes to learn IoT application development or prototype IoT ideas:

  • Developers from device and hardware background, whose programming skill sets are heavy C/embedded C related, some with Lua, C++. They work comfortably with lower level of the hardware. Many came from the background of Electronic Engineering or Computer Engineering. They often call themselves “Makers” or “Hobbyists”, who develop fun products like small robotics, device controls appliances, and so on. They don’t have much experience working with (Internet) applications, on cloud or mobile, even though many of them have creative ideas on it.


  • Developers who are high level application developers. They fluently program multiple languages on cloud and mobile platforms, such as Node.js, Java, Python, etc. They often have background of Computer Science. They know how to handle business logic and process data and they can glue different open source projects together into a pipeline to solve a business problem. But they seldom work on the device or hardware layer. They never touched the core of device drivers or directly programed serial ports, or WiFi modules. They don’t have much experience playing with solders, bread board, wires, and sensor hardware. They know the features of sensors, but without the help of high level SDK wrappers, they seldom program with sensors directly.

Under the big trend of IoT, where it needs to bridge together the “I” and “T” from “IoT” for developing the e2e application, developers often find they need to learn lots of knowledge from “the other” side. The learning process is often not so “happy”, especially on how to bridge the two ends together.

My team found this pain point, and try to solve this problem by lowering the barrier for anyone who wants to learn the basics of IoT application development. We developed a series of “Happy Path” getting started tutorials, for some most popular hardware devices used by IoT developers around the globe, to connect to Azure IoT and Azure’s powerful cloud services for any innovative IoT idea!


Each of the tutorial is targeting a specific goal to achieve, with step-by-step instructions and tested sample codes published on github.com

If you know what device you have or you want to use, and what languages you want to learn for the device you choose, you can start by locating the right tutorial for the device-language combination.

You can use this table to help you quickly locate your interested lessons:

Devices Raspberry Pi Intel Edison Arduino IoT Gateway Starter Kit
Adafruit Feather HUZZAH ESP8266 Adafruit Feather M0 Sparkfun ESP8266 Thing Dev
Lessons Node.js | C Node.js | C Arduino Arduino Arduino Simulated device | SensorTag device


Each tutorial is typically consisted of 4 progressive lessons plus a troubleshoot guide:

Lesson 1: Configure your device:

Device side work – Get necessary tools; create and deploy your first application: Blinking the LED, the “Hello World” for device.

Lesson 2: Create your IoT Hub:

Cloud side work – Use python CLI to create IoT Hub and register the device

Lesson 3: Send device-to-cloud messages:

A sample application to send device-to-cloud message; store and read it.

Lesson 4: Send cloud-to-device messages:

Send cloud-to-device message to trigger the LED on device blinking.

For some devices, there are slightly adjusted lesson arrangement for the device.


When you encounter issues, or need to learn how to debug, after each lesson there is a troubleshoot section to help you out. Before each lesson, in order for you to better plan your time, an estimated time to go through all learning materials of that lesson is presented. After each lesson, you can leave your comment or questions.

Stay tuned and we are actively working on adding new lessons for developers with different background, skill level and purpose to the IoT development.

If you have read through the blog and reached this line, let’s check out the “Happy Path Tutorial” and start learning!


We want to listen to your feedback or suggestions: contact us by clicking the “Contact” on the right panel.


Discussion is closed.

Feedback usabilla icon