Building Connected Things with Windows 10 and Microsoft Azure
ThingLabs Thingy™ for Windows IoT Workshop (full day)
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.