Building Connected Things with Windows 10 and Microsoft Azure

ThingLabs Thingy™ for Windows IoT Workshop (full day)

In these IoT labs, you will begin by learning the basics of working with Windows 10 IoT Core connected to sensors and actuators. You will move on to connecting the Thing to the Cloud. You will learn how to leverage Microsoft Azure services to collect data and control devices. Finally, you'll use advanced services like analytics and machine learning to discover insights using your Things.

Table of Contents

Workshop Goals

The goals of this workshop are:

  • Educate developers on the IoT stack offered by Microsoft
  • Educate developers on the Universal Windows Platform (UWP)
  • Educate developers on the Azure services related to IoT

By the end of the workshop you will be able to:

  • Build an IoT device using the Raspberry Pi 2
  • Build a UWP app for Windows IoT Core to run on the Raspberry Pi 2
  • Use Windows IoT Core and the Raspberry Pi 2 to both capture input and present output
  • Create and configure an Azure IoT Hub to manage device-to-cloud and cloud-to-device messaging
  • Connect a UWP application running on the Raspberry Pi 2 to an Azure IoT Hub
  • Build a data pipeline that captures and stores data coming into an IoT Hub
  • Build a visualization of IoT data
  • Build a client application that can send a command to the IoT device via Azure

Prep Work

Getting Started

This is a step-by-step guide to preparing your computer for the Thingy for Windows IoT Workshop

Estimated time to complete: 60-minutes. Go to ‘Getting Started’ ›

Setting Up Your Raspberry Pi 2

The Raspberry Pi 2 is a low cost credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse.

In this section, you will install Windows 10 IoT Core on your Raspberry Pi 2.

Estimated time to complete: 30-minutes. Go to ‘Setting Up Your Raspberry Pi 2’ ›

The GrovePi

The GrovePi is a shield stacked on top of the Raspberry Pi 2 without the need for any other connections. Communication between the GrovePi and the Raspberry Pi 2 occurs over the I2C interface. All Grove modules connect to the universal Grove connectors on the GrovePi shield via the universal 4 pin connector cable. This section provides a description of the GrovePi shield and how it interfaces with the Raspberry Pi 2.

Estimated time to complete: 10-minutes. Go to ‘The GrovePi’ ›

Lab Guides

Lab 01: Hello, Windows IoT!

In this lab, you will build a simple single-circuit device that blinks an LED on and off. (This is the ‘Hello, World! of the IoT space.)

Estimated time to complete: 30-minutes. Go to ‘Lab 01: Hello, Windows IoT!’ ›

Lab 02: Nightlight

In this lab, you will capture analog input using a light-dependent resistor (photocell) and turn on or off an LED based on the amount of light detected.

Estimated time to complete: 30-minutes. Go to ‘Lab 02: Nightlight’ ›

Lab 03: ThingLabs Thingy™

In this lab, you will build a device with multiple sensors and actuators. The device will:

  • Capture the amount of ambient light
  • Increase the brightness intensity of an LED inversely to the amount of ambient light measured.
  • Display the ambient light and sound measurements on an LCD display.
  • The display will adjust its backlight brightness according to the amount of ambient light in the area.
  • Enable a button to turn on and off an LED and trigger sound.

Estimated time to complete: 30-minutes. Go to ‘Lab 03: Thinglabs Thingy’ ›

Lab 04: Setting Up an Azure IoT Hub

In this lab you will provision a new Azure IoT Hub. Once you have the IoT Hub created, you will be able to create a new Azure IoT device that you will use to send telemetry to Azure. Azure IoT devices are software references to physical devices.

Estimated time to complete: 30-minutes. Go to ‘Lab 04: Setting Up Azure IoT Hub’ ›

Lab 05: Sending Device-to-Cloud (D2C) Messages

In this lab, you will use the ThingLabs Thingy™ device that you built to capture and send messages to an Azure IoT Hub.

Estimated time to complete: 30-minutes. Go to ‘Lab 05: Sending Device-to-Cloud (D2C) Messages’ ›

Lab 06: Storing and Displaying IoT Data

In this lab, you will build a data pipeline that captures the data coming into an IoT Hub. The pipeline will then process the data with Azure Stream Analytics, and then route it to downstream services. You will also create one of those downstream services. Your service will consume the data and present it through an Azure Web App where it will be rendered as a real-time graph.

Estimated time to complete: 30-minutes. Go to ‘Lab 06: Storing & Displaying IoT Data’ ›

Lab 07: Sending Cloud-to-Device (C2D) Messages

In this lab, you will use the Azure Web App to control the ThingLabs Thingy™ remotely. The Web App will send messages to the Thingy via Azure, which the Thingy will receive, procees, and act on.

Estimated time to complete: 20-minutes. Go to ‘Lab 07: Sending Cloud to Device (C2D) Messages’ ›

Workshop Source Files

If you want access to the completed projects used in the labs, you can copy or clone the Thingy4Windows Github repo here.

Thingy 4 Windows Labs