Lately I’ve been spending a lot of time thinking about my career and where it’s going. I don’t want to give the impression that I have never thought about my career before, but now the thoughts are becoming constant.
The Internet of Things (IoT). It is a new and old concept. It was coined in 1999 by Kevin Ashton while at Auto-ID Labs. It is the idea of bringing hardware to the network. These can be any objects including: vehicles, sensors, TVs, Teddy Bears, etc. Pretty much anything that has embedded hardware can be considered an IoT device (as long as it is hooked up to the network). So how can we get into this "IoT" fad? We would need some embed-able device that we can program to suit our needs. In comes the Raspberry Pi! The Raspberry Pi has been around for a while now. It is basically a small form-factor computer that we can use to run software to control hardware to do anything we wish!! They are currently on their 3rd major iteration, The Raspberry Pi 3. I have the pleasure of operating the Model B version at home. With a cost of $75 you can get started with this beautiful device. Below is a link to purchase the Raspberry Pi 3 Starter Kit on Amazon:
The question then arises, what do we put on this lovely device? That's what the rest of this article will discuss! Let's get started!
There are a number of different operating systems that can be loaded on the Raspberry Pi including: Raspian (Official), UBuntu Mate, Snappy Ubuntu Core, Windows 10 IOT Core, OSMC, PINET, RISC OS, and more. Each of these has different benefits and drawbacks. Some of them are Linux Distributions and others are independent images (like RISC and Windows). How can we determine which to use? Since there are a million and one reasons to pick an OS, I based my decisions on the upcoming Home Automation project with Jarvis. Due to the nature of IoT and the fact that I have been programming in Microsoft Technologies for 15+ years, it seemed like the best choice for me to go with Windows 10 IoT. I asked the question, "what different types of things will I ultimately need for my project to succeed?" Cloud Computing? Yes. Windows Services? Yes. Python? Yes. Being that I'm versed in Microsoft Azure technologies and already have an account with them, it seemed suitable to work the Microsoft product. Of course, all these could be used in different ways among the other OS platforms. (I know, I know, these aren't really good arguments for using the Microsoft Technologies but hey, what are you gonna do?). It also allows me to use .NET or Python or C or whatever... So let's get Windows IoT on our new device!
The following are the steps that I followed to install Windows 10 IoT on my Raspberry Pi 3 Model B: Reference: https://ms-iot.github.io/content/en-US/win10/RPI.htmNote: For this to work, you should be working on a Windows 10 PC. It is pretty easy to upgrade, so go ahead and do this first!Note: Windows 10 IoT does not support onboard Wifi yet for the Raspberry Pi 3. If you wish to use this, buy a seperate USB Wifi Adapter. What you need:Windows 10 PCRaspberry Pi 3 Model BRaspberry Pi Power CablemicroSD Card (8 GB min)Ethernet CableMonitorHDMI CableUSB Keyboard/Mouse
The Core Dashboard is an easy way to image SD Cards for IoT Devices. Click the link below to download the Dashboard: http://go.microsoft.com/fwlink/?LinkID=708576
Using the Core Dashboard directly did not work for me when trying to flash the SD Card for the Pi 3. So instead, I had to download the Insider Preview. In order to get this you will need to sign up for the Windows Insider Program, as well as have a valid Microsoft account. It will be a fairly large ISO Image file that you retrieve. https://www.microsoft.com/en-us/software-download/windowsiot You will be prompted before getting to the download. Be sure to select a build (I used Build 14295) and the proper device. Click Confirm after each selection:
Once you have selected your device and clicked confirm a notice will be shown that indicates the download is valid for 24 hours. Click the Download button to get the ISO.
Windows 10 is wonderful in the fact that ISOs will now mount Auto-Magically when you double-click them. So mount the newly downloaded ISO. Open it up to see an MSI Installer called 'Windows_10_IoT_Core_RPi2.msi'. This will install a Raspberry Pi Image in the following directory on a 64-bit machine: C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2\flash.ffu Once this is complete, unmount the ISO by right-clicking the drive and selecting 'Eject'.
Insert the SD Card into your computer (directly or through a USB adapter).Open up the IoT Core downloaded earlier. (This can be done by going to the Windows Start Menu and typing 'Windows 10 IoT'. It should show up at this point).Once open click 'Setup New Device'. This will open up the device screen shown below.
Fill out the information as provided where the Flash.ffu is the image file provided in step 3. Then click 'install' (Accept the prompt override the SD Card). It will go through a few different steps but will end up with this screen once complete:
At this point your image is ready! Eject the SD Card (properly) by right-clicking the drive and selected Eject.
Insert the newly flashed SD Card into your Raspberry Pi 3. Connect a Display Monitor to the HDMI port.Connect the Pi to an internet connection via the Ethernet PortPlug in the Power Cable It may take a few minutes for the Pi to boot up for the first time. You may even notice the screen flickering from time to time. But once it is up you should see a screen similar to this:
(Except it will say Raspberry Pi 3 (Could not get a screen shot) If you do not see this screen, it may be because you have to setup the language first. If this is the case, plug in a USB Keyboard and Finish the prompts until this screen appears.
Now that your Pi is up and running, you should be able to start developing for it. If your pi is hooked up to the same network as your PC, you can connect to it via a web browser using it's IP address. So if IP address is 192.168.1.1 then type in 192.168.1.1:8080 to connect in any browser (except Edge, I had issues with Edge displaying properly). Something like the following will pop up:
Happy Developing! Any questions, shoot me an email or post in the comments (as they are available)
1. Download and Install Windows IoT Core Dashboard
2. Download and Install Windows IoT Core Insider Preview Image
3. Flash an SD Card with the FFU provided in step 2, via the Core Dashboard
4. Boot up the Raspberry Pi
5. Connect to the Utilities Page
Check out our thoughts here.
There is one, and only one, primary focus that any software developer acknowledge: the ability for software to be maintainable. Of course, correctness, functionality, and performance are all important, these will always be easier to address with maintainable software.