Virtual Developer Workshop: Containerized Development with Docker
The Internet of Things (IoT) is the newest buzzword in tech. Unless you have been living under a rock, you would have already heard the phrase and even know a thing or two about IoT.
IoT's recent rise in popularity can be tracked to the following factors:
- Hardware is cheaper than ever
- Internet connectivity is prevalent
- Development is easier than ever
- Huge potential benefits fuel demand
It is expected that, by 2020, there will be 25 billion connected things, with a $7.2 trillion market value.
Microsoft provides comprehensive solutions from device to cloud.
To get started, one needs to choose Windows-compatible hardware development boards. There are a few options available for developers today, such as the following:
- Raspberry Pi 2
- MinnowBoard MAX
- Sharks Cove
- Qualcomm DragonBoard 410C
- Intel Galileo (1st generation)
You can get your hardware from a variety of vendors. Make sure to read the specifications to ensure compatibility with Windows.
Setting Up Raspberry Pi 2
To get started developing IoT apps on Raspberry Pi 2, we need the following items:
- A Windows PC running the latest insider preview version of Windows 10
- A 5V microUSB power supply with 1.0A current (use a higher current power supply if you plan to use more USB ports)
- A 8GB Class 10 micro SD Card
- Ethernet cable
- Raspberry Pi 2 hardware
Once you have the hardware, we need to install a Windows 10 IoT Core Insider Preview image on the microSD card. You will need to sign up for the Microsoft Connect program at https://connect.microsoft.com/windowsembeddediot/SelfNomination.aspx?ProgramID=8558.
Once you have signed up, you can go to the Downloads page https://connect.microsoft.com/windowsembeddedIoT/Downloads and download the package titled "Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2."
Make a local copy of the flash.ffu file contained in the downloaded package. Next, we need to copy the image to the microSD Card. Insert your microSD card in your SD card reader, and follow the following steps.
- Use the "list disk" command under "diskpart" to identify the disk number for the microSD card.
- Next, install the image on the microSD card using the following command line (you will need to run this from an elevated prompt).
Dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDriveN /SkipPlatformCheck
- Use the drive number you get from the "list disk" command earlier.
- Next, we need to use the Windows functionality to safely remove hardware.
- Now that we have installed the image, we need to insert the microSD card on the Raspberry Pi 2 board. Connect the network cable, HDMI cable (optional), and the power supply to the microUSB port. Upon connecting to the power supply, the Windows 10 IoT Core insider preview will boot up.
- We now can use PowerShell to connect to the running device. A remote debugger will launch automatically when Raspberry Pi 2 boots.
- Next, we will configure our PC. If you have not already installed Windows 10, install a version from https://dev.windows.com/en-US/downloads/windows-10-developer-tools.
- Next, install Visual Studio 2015 Preview (download from https://dev.windows.com/en-US/downloads/install-dev-tools-visual-studio-2015). Whhen installing VS 2015, make sure to choose the custom option and select "Universal Windows App Development Tools". Ensure that "Emulators for Windows Mobile" is selected.
- We need to set up our device for development mode by following the instructions listed at https://msdn.microsoft.com/library/windows/apps/xaml/dn706236.aspx.
- For the last step, we need to install WindowsDeveloperProgramForIoT.msi found inside the Windows 10 IoT Core Preview Image file.
We are now ready to develop apps for Windows IoT.
In this article, we learned how to get started developing for Internet of Things applications for Windows.
About the Author
Vipul Patel is a technology geek based in Seattle. He can be reached at email@example.com. You can visit his LinkedIn profile at https://www.linkedin.com/pub/vipul-patel/6/675/508.