//build: Hands-on-lab WeatherStation

The new Windows.Devices namespace from the Universal Windows Platform (UWP) APIs in Windows 10, enable developers to leverage the power of Windows while interacting with the real world via sensors and actuators.

This project uses the I2C bus and general purpose input/output (GPIO) ports available on the Raspberry Pi 2, to create an internet connected weather station using the SparkFun weather shield.

The instructions provided will give a developer first-hand experience setting up the required hardware along with writing and debugging the newly available Windows 10, UWP Windows.Devices API's. This lab will also demonstrate how to aggregate your data in cloud using the Azure Event Hub, via the easy-to-use ConnectTheDots API.

Hands-on-lab WeatherStation schemetic


Raspberry Pi 2 to Sparkfun Weather Shield wiring

Pinout Diagram (Raspberry Pi 2 –> Sparkfun weather shield):

  • GND——-(black)——GND
  • 5V———-(red)———VIN
  • 3V3——-(brown)——5V (shield hack; not a typo)
  • GPIO2—–(yellow)—-SDA
  • GPIO3—-(orange)—-SCL
  • GPIO5—–(green)—–D8
  • GPIO6—–(blue)——-D7


Find the “//TODO:” list, when completing the lab yourself

Install the weather station application:

Clone the linked repository

  • select the “lab” branch (default), if you want to learn the new UWP Windows.Devices API's and complete the code yourself
  • select the “master” branch if you want the completed code

Open “WeatherStation\WeatherStation.sln” in Visual Studio 2015

Navigate to “WeatherShield.cs” in the “Solution Explorer” pane

If you chose the lab branch, Navigate to “View >> Other Windows >> Task List”, to view the remaining work (depicted above).

You will notice there is quite a bit of detail in the comment to help you complete the task. However, if you still need that extra nudge, there will be a “HINT” provided to remind you to look to nearby code for help (illustrated above).

Once the //TODO:'s have been completed, click the “Debug” menu item, and select “WeatherStation Properties…”

Hands-on-lab WeatherStation

Under the “Debug” tab, in the “Start options” section

  1. Select “Remote Device” as “Target device:”
  2. Enter the IP address of your Windows IoT Core device in the “Remote machine:” field

Deploy to the Windows IoT Core device

Interface with and/or debug the application:

  • Set a breakpoint in “WeatherStationTask.cs”, in the “PopulateWeatherData” function
  • Step through the individual I2C transactions as they occur


  • Ping the IP address of your Windows IoT Core device on port 50001 in an internet browser window (i.e. http://xxx.xxx.xxx.xxx:50001)

Integrating with ConnectTheDots:

Example of the UI on the website


Read more: //build: Hands-on-lab WeatherStation

About The Author

Ibrar Ayyub

I am an experienced technical writer with a Master's degree in computer science from BZU Multan University. I have written for various industries, mainly home automation, and engineering. I have a clear and simple writing style and am skilled in using infographics and diagrams. I am a great researcher and is able to present information in a well-organized and logical manner.

Scroll to Top