Getting to know IoT on the Windows Stack–Part 1

Abstract

This series of posts will detail my somewhat bumbling ordeal of becoming more informed when it comes to electronics, and things IoT. I must put a disclaimer in place. I am NOT an electronic engineer, I studied Computer Science and Psychology at University and am the first to admit that electronics is the equivalent of unicorns and magic to me at this point.

Join me on this journey and I hope I can show you somethings not to do and something new through what looks to be a very long series of complete mess ups. In this part I am going to look at IoT and Microsoft.

Keywords: Internet of Things, Raspberry Pi, Arduino, Microsoft, Windows Universal Platform.

Introduction

In this session I will be investigating the various options we have with regards to using the Windows IoT Core OS and getting setup. I will go into the various devices and programming options we have with regards to IoT on Windows and how we go about setting up our device for the series going forward.

Discussion

Internet of Things (IoT) has a been a major buzz word over the last year and a bit. What the heck is IoT? What is a thing of the internet? Is it anything that connects to the internet?

The one true source of a things true Wikipedia defines IoT as:

“The Internet of Things (IoT) is the network of physical objects, devices, vehicles, buildings and other items which are embedded with electronics , software , sensors , and network connectivity , which enables these objects to collect and exchange data”

While this definitely holds true I think something else is missing from the definition. This ability for items to communicate and exchange data also allows us to gain insight into how things work and improve on how they function. This exchange data enables us to control these items and build up models of how they interact and affect various aspects of the real world. This opens a world of opportunities for automation of various areas of life from making coffee in the morning (which is critically important) to manufacturing of cars, and sanitation. When we combine this world of millions if not billions of devices with the cloud we start seeing an amazing platform to gain information and to make our lives easier.

Microsoft has been making some pushes into IoT through two paths. The paths are:

  • Operating system or IoT Clients
  • Cloud or IoT Services

Figure 1.0 – IoT Base Structure shows a basic structure of an IoT Solution. Basically the information from sensors is passed and handled by the IoT Device. In some instances the device will process the information and do what it needs to without forwarding the information on to services. This is useful in offline scenarios where the IoT device does not have access the internet. In this scenario there is a wealth of information available which could be useful.

Picture2

Figure 1.0 – IoT Base Structure

Lets look at this with the Microsoft Technologies this is seen by Figure 1.1 IoT with the Microsoft Stack.

Picture3

Figure 1.1 IoT with the Microsoft Stack.

As you can see there is quite an extensive set of component that form part of Microsoft’s set IoT stack. If we take a look at Figure 1.2 Azure IoT Reference Architecture Diagram we can see that the components that the Azure Stack provide covers all the various areas required to build a pretty great solution.

Azure Ref Architecture

Figure 1.2 Azure IoT Reference Architecture Diagram

I now have a basic understanding of IoT what are my options if I am looking at Microsoft. What is this Windows IoT Core thing? It is a build of Windows 10 that is engineered for devices which may not have a display and leverage different CPU architecture which focuses on low power. To sum up Windows IoT Core is an operating system design for IoT Scenarios. It is an edition of Windows 10 optimized for small footprint, low cost IoT devices.  It supports universal apps, but does not include the Windows shell for first party apps, making it ideal for single purpose devices. IoT Core comes in a number of different flavors but we will be focusing on the basic Windows IoT Core version which is royalty free.

What devices are supported by Windows IoT at this point in time (2016/01)?

  • Raspberry Pi 2
  • MinnowBoard Max
  • DragonBoard

Picture1

All of these low power devices that are supported are about 1000 times faster than my first computer and they a 10th of the size. I love how far we have come. There are tons of IoT devices that don't support Windows IoT but Microsoft is working with various partners and the number of supported devices is increasing all the time.

If you want to follow this series its probably a good time to get your hands on the following for the next installment:

  • 1x Raspberry Pi 2
  • 1x Network Cable
  • 1x MicroSD card
  • 1x LED 
  • Some wires
  • Some resistors

There are a tons of kits available on the internet which are great to start with and can be shipped in fairly short times.

Conclusion

IoT is an exciting area to venture into, so far I feel like I am going to have to learn something about electronics but lets wing it for now. In the next installment of the series is to look deeper at the application options on Windows IoT Core and Universal Windows Platform and Node.js and build our first burnt out circuit board. I can't personally can’t wait to blow up some electronics.

I for one welcome our new robot overlords.

References

https://en.wikipedia.org/wiki/Internet_of_Things

https://ms-iot.github.io/content/en-US/IoTCore.htm

https://www.windowsondevices.com

Originally posted at https://blogs.msdn.com/hemipteran