IoT Device Configuration and Communication: C Edition

Enrollment in this course is by invitation only

About This Course

Are you ready to begin developing IoT device applications? Now is your chance. This course will lead you through a series of labs that teach you how to program IoT devices for secure communication with the cloud. You will learn how to create and configure a cloud gateway (IoT hub), how to register, provision, and manage IoT devices, and how to develop and deploy real-world IoT applications. Throughout this course, the activities are framed within the context of a real-world scenario, however, the lab scenarios are simplified just enough to eliminate some of the complexities that often prevent us from grasping the most important concepts.

The course begins with a quick walkthrough of the cloud gateway options available today and where Azure and the Azure IoT Hub fit in. Next, you create your own IoT Hub and explore features of the IoT Hub Service. You will then learn how to configure the development environment for an MXChip device, register your device with the IoT Hub, and deploy a pre-configured solution that demonstrates how communication between a device and the cloud is implemented.

You will then take a closer look at the Azure IoT SDKs and how to implement secure 2-way communication between devices and the cloud. You will provision a Raspberry Pi device and walk your way through the process of developing a solution as you dig deeper into the code that leverages the SDKs to implement secure communication with the hub. You will also learn how to provision simulated devices using client tools such as Azure CLI and how to preform management tasks while examining aspects of device security.

Next, you will learn about the Device Provisioning Service and how to provision devices at scale. You will also use automated processes to configure device identities and properties at scale. After that, you will examine device management tasks using both device twins and direct methods, and learn why using device twins is the recommended approach. Shifting focus briefly to managing IoT Hub operations, you will learn more about IoT Hub endpoints and message routing.

To finish up this course, you will be tasked with implementing a real-world project scenario. You will evaluate project documentation to determine requirements, develop your project hardware and software, and then apply what you learned during the course to implement the client-side and server-side portions of the solution. You will even look into including Azure IoT Edge in your solution.

Please Note: Learners who successfully complete this course can earn a CloudSwyft digital certificate and skill badge - these are detailed, secure and blockchain authenticated credentials that profile the knowledge and skills you’ve acquired in this course.


Before starting this course, students should understand the following:

  • IoT terminology and business goals
  • Embedded device programming
  • C programming
  • Modern software development tools

What you'll learn

  • Create and manage a cloud gateway
  • Provision a device
  • Implement a simple device to a cloud communication example
  • Examine the IoT Device and Service SDKs
  • Develop a device application that sends telemetry messages to your cloud gateway
  • Configure the local admin tools for Azure IoT
  • Configure and secure IoT devices
  • Describe device management and how to use device twins and device properties
  • Provision devices using the Device Provisioning Service
  • Automate device configuration and management
  • Manage IoT Hub operations
  • Evaluate solution design goals
  • Implement telemetry data aggregation and batch communications
  • Archive data for cold path analytics
  • Implement a simple IoT edge device

Course Syllabus

    This course is completely lab-based. There are no lectures or required reading sections. All of the learning content that you will need is embedded directly into the labs, right where and when you need it. Introductions to tools and technologies, references to additional content, video demonstrations, and code explanations are all built into the labs.

    Some assessment questions will be presented during the labs. These questions will help you to prepare for the final assessment.

    The course includes four modules, each of which contains three or more lab activities. The lab outline is provided below.

    Module 1:Configure a Cloud Gateway and Devices

  • Lab 1:Creating Your Cloud Gateway
  • Lab 2:Getting Started with Your MXChip AZ3166 Device
  • Lab 3: Implementing Simple Device-to-Cloud Communication

  • Module 2:Implement Device Communications

  • Lab 1:Exploring the IoT SDKs
  • Lab 2:Developing a Raspberry Pi Device Application
  • Lab 3:Configuring and Securing IoT Hub Devices

  • Module 3:Manage Your Devices

  • Lab 1:Provisioning Devices
  • Lab 2:Automating Device Configuration and Management
  • Lab 3:Managing IoT Hub Operations

  • Module 4:Develop Real-World Device Applications

  • Lab 1:Evaluating Solution Design Goals
  • Lab 2:Implementing Device Hardware and Software
  • Lab 3:Archive Data for Cold Path Analytics
  • Lab 4:Getting Started with IoT Edge

Course Staff

Course Staff Chris Howd

Chris Howd

Engineer and Software Developer


Chris is an engineer and software developer who has been working at Microsoft in various roles for the past 15 years. Before coming to Microsoft, Chris worked for the U.S. Department of Defense designing and developing computer controlled instrumentation and robotic systems, and was a self-employed contractor doing engineering research with NASA and select engineering start-ups.

Course Staff Matt Dixon

Matt Dixon

Owner and Founder

Front Range Systems

Matt is owner and founder of Front Range Systems, a software consulting company focusing on custom software solutions for its clients. Matt has over 16 years of professional development experience, and loves solving complex problems with simple solutions. He has helped organizations through mentorship and training and specializes in professional and enterprise solutions with various technologies including HTML5, AngularJS, ASP.Net, WPF and C#.

Frequently Asked Questions

Who can take this course?

Unfortunately, learners from one or more of the following countries or regions will not be able to register for this course: Iran, Cuba and the Crimea region of Ukraine. While edX has sought licenses from the U.S. Office of Foreign Assets Control (OFAC) to offer our courses to learners in these countries and regions, the licenses we have received are not broad enough to allow us to offer this course in all locations. EdX truly regrets that U.S. sanctions prevent us from offering all of our courses to everyone, no matter where they live.

  1. Course Number

  2. Classes Start

  3. Classes End

  4. Estimated Effort

    Total 8 to 12 hours