One of the long time frustrations with Raspberry Pi development is that you needed a physical device and hardware (sensors, buttons, etc) to fully develop and test your Internet of Things (IoT) solutions. Many haven’t really seen this as an issue since deploying code to the device isn’t really that difficult. However, this presents yet another hurtle when first learning how to develop IoT solutions. This can especially be a hurtle when you need to purchase hardware in order to start learning how to develop IoT solution using Microsoft Azure IoT Suite. For this reason Microsoft has created the Raspberry Pi Azure IoT Online Simulator. This simulator does just what it sounds; it simulates the Raspberry Pi hardware so you can easily get coding IoT solutions with ease. Read More
A couple months ago Microsoft announced the availability of the new Azure IoT Developer Kit Board. This is a board that has integrated sensors, buttons, OLED screen and a few other features. This board makes it even easier to get started developing Azure IoT based solutions without the need to solder, connect wires, or even really have any low level electronics knowledge. Recently, Microsoft started shipping out the first set of Azure IoT Developer Kit Preview version boards for application requests that were submitted over the last couple months. While it’s been stated there’s limited quantity, it’s unclear how many of these Preview version boards will be made available. Read More
Building out an IoT (Internet of Things) solution can be a difficult problem to solve. It sounds easy at first, you just connect a bunch of devices, sensors and such to the cloud. You write software to run on the IoT hardware and in the cloud, then connect the two to gather data / telemetry, communicate, and interoperate. Sounds easy, right? Well, it’s actually not as simple as it sounds. There are many things that can be difficult to implement correctly. The biggest problem area is Security, as it is in most other systems types as well. Then you can device management, cloud vs edge analytics, and many other aspects to a full IoT solution.
Traditionally you would need to build all this out yourself, however, with offerings from Microsoft there are a few options available for building out IoT solutions. The Azure IoT Suite offers PaaS (Platform as a Service) capabilities that are flexible for any scenario, while the newer Microsoft IoT Central is offering more managed SaaS (Software as a Service) capabilities to further assist in easing development, deployment and management.
PaaS IoT with Azure IoT Suite
There are many Microsoft Azure cloud services that can be used to build out an IoT solution. In order to more easily choose which services, Microsoft has created a marketing umbrella called the “Azure IoT Suite” that includes the following core services:
- Azure IoT Hub provides 2-way device messaging to the cloud with full device management and security integration among other IoT features.
- Azure Notification Hubs enables the ability to implement mobile push notification easily within the cloud that supports all major mobile platforms from iOS to Android and Windows.
- Azure Machine Learning provides the ability to build powerful cloud-based predictive analytics tools using pre-built machine learning algorithms that greatly lower the barrier to embracing machine learning for your solutions.
- PowerBI allows for rich visuals to be displayed providing easier analysis and reporting on your data.
- Azure Stream Analytics is a Real-Time event stream processing pipeline in the cloud thats built for high scale and ease of integration.
In addition to the listed services, you could really use any other Azure service that fits your particular solution. For example you may integrate Azure Storage, Azure CosmosDB, Azure Functions, among many others to build out the full capabilities of your own IoT solutions. It’s really up to you to choose what Azure services fit your scenario best and build out the best solution for your needs.
The Azure IoT Suite is based on using Azure PaaS (Platform as a Service) offerings to build out your solutions in a manner where you don’t need to manage any of the underlying Virtual Machine, Operating System updates / patches, and so on. These underlying VM in the PaaS services are fully managed for you within Microsoft Azure. This allows you to focus on your solution, your business, and your data; essentials you only focus on what matters to your core business in building out your IoT solutions.
SaaS IoT with Microsoft IoT Central
With the announcement of Microsoft IoT Central, Microsoft is entering into an area of offering a SaaS (Software as a Service) offering for building out and managing IoT (Internet of Things) solutions. This mean that not only do you benefit from the managed VMs and other aspects of the Azure IoT Suite PaaS offering, but you will also benefit from a great level of abstraction and managed services built / designed specifically for IoT form the ground up.
I speculate that Microsoft IoT Central is in fact running on top of Azure IoT Suite at it’s core; this is the pattern Microsoft operates with when adding higher levels of abstract in the Azure cloud. Similarly, Azure Functions provides serverless compute and execution of method of code in the cloud, and is built as an abstraction layer on top of the Azure Web Jobs PaaS feature of Azure App Service.
The further abstraction of Microsoft IoT Central creates a SaaS (Software as a Service) offering from Microsoft for more easily implementing and managing IoT solutions using a SaaS model. This is great for organizations that do not have much cloud solution and device expertise. It also helps those organizations build IoT solutions that offer more predictable pricing without the necessity to completely build the entire IoT solution themselves.
Choosing PaaS or SaaS for Your IoT Solution
Choosing PaaS (Platform as a Service) or SaaS (Software as a Service) is a choice that’s similar to the options of hosting a traditional application using either IaaS or PaaS. It’s really a comparable analogy. When deciding which of them to choose, here are some highlights of each option that you can use to help decide between a SaaS-based IoT solution or a PaaS-based IoT solution:
SaaS-based IoT Solution
- Fully managed solution
- Less flexibility – you will need to use the pre-built or builtin features to build out your IoT solution
- More features builtin – You don’t have to build everything yourself, as there are more features builtin that you can “automatically” take advantage of
- Lower barrier to entry
PaaS-based IoT Solution
- Fully customizable solution
- More flexible – you can implement pretty much any IoT solution you need
- Implement more yourself – With more flexibility, comes an increased responsibility to implement more of the various features of your IoT solutions yourself
- More expertise required
Looking at the previous highlights of PaaS vs SaaS based IoT solutions, it really does appear that SaaS is the better option. This really may be the case. Coming back to the IaaS vs PaaS analogy for hosting application, you want to start with the more managed service and then go more customizable if you need the flexibility. The same thing goes for IoT solutions as well. You’ll want to evaluate the SaaS based services that Microsoft IoT Central offer you before starting to build out your IoT solution. If SaaS offers you everything, then the more managed system will likely be best for you to use. However, if there is anything you require than SaaS (via Microsoft IoT Central) doesn’t support, and you really truly do require that feature in your solution, then you’ll likely want to go the PaaS route with Azure IoT Suite to build your own custom implementation.
I hope the outline provided in this article helps you decide whether SaaS-based or PaaS-based framework and services are the most appropriate choice for your organizations next IoT solution.
Windows 10 IoT Core is Microsoft’s version of the Windows 10 operating system being built to run Internet of Things (IoT) devices. There are a few hardware IoT devices that Windows 10 IoT Core supports and can run on. One of these devices is the Raspberry Pi; specifically the Raspberry Pi 2 and Raspberry Pi 3. This article lists out the steps necessary to load Windows 10 IoT Core onto a MicroSD Card that can be inserted into a Raspberry Pi to run Windows 10 IoT Core as the operating system.
Flash Windows 10 IoT Core to MicroSD Card
In order to boot Windows 10 IoT Core from a Raspberry Pi, you must first flash the Windows 10 IoT Core operating system to an SD Card that can be used to boot the Raspberry Pi from. To do this you need to use a Windows PC and the IoT Dashboard utility.
Step 1: Using a Windows PC, download and install the Windows 10 IoT Core Dashboard.
Step 2: Insert your Micro SD Card into your PC.
Note: Before you start, you’ll want to make sure you have an MicroSD Card that is supported by Windows 10 IoT Core. It’s important to be aware that NOT all MicroSD Cards are supported, with the primary restriction that they are at minimum a Class 10 SD Card.
Step 3: Run the IoT Dashboard app, and click on the “Set up a new device” button.
Step 4: Select the “Raspberry Pi 2 & 3” device type, and fill in the necessary configuration values, then accept the software license terms and click the “Download and install” button.
Something to note on the Wi-Fi Network Connection setting is that it will pull from the Wifi Profiles on your local PC. This means that you will be able to easily configure your device to connect to the same Wifi network your Windows PC is connected to once it boots up from the SD Card. You won’t need to plugin a display, keyboard, or mouse in order to configure anything, so long as you select the correct Wifi network.
Step 5: When prompted to erase the SD Card, you need to click Continue. Just make sure you are aware that this will essentially format the SD Card before copying the Windows 10 IoT Core image, so you will lose any data that’s existing on the SD Card.
Step 6: The tool will continue by downloading the latest release of Windows 10 IoT Core. This ensures that you always have the latest version that you’re flashing.
Step 7: After the download completes, the dism.exe command-line tool will then automatically kick off to flash the downloaded Windows 10 IoT Core image to the SD Card.
Step 8: Once the flashing is completed, the IoT Dashboard will show a message stating that “Your SD card is ready.”
Step 9: You can now safely remove the SD Card from your PC and plug it into the Raspberry Pi and power it on.
Connect to the Windows 10 Device Portal
One of the features of Windows 10 IoT Core that makes it easier to manage, especially with headless devices, is the Windows Device Portal. This is a web interface that is hosted on the Windows 10 IoT Core device by default. This interface allows you to perform some remote monitoring, configuration, and deployment options for Windows 10 IoT Core.
Step 1: Once you’ve booted up a device with Windows 10 IoT Core you can then use the “My devices” option of the IoT Dashboard to easily discover what Windows 10 IoT Core devices are connected to the network that your PC is connected to. To view some details about the specific device, you can double-click on the device in the list.
Step 10: On the info for the specific Windows 10 IoT Core device, you can click on the “Open Windows Device Portal in browser” link to open up a new browser window navigating to the Windows Device Portal for that device.
Step 11: When the browser opens up and connects to the Windows Device Portal, it’ll prompt you to login. The Username you need to use will be Administrator, and the Password will be the password you configured when you flashed Windows 10 IoT Core to the SD Card.
Step 12: Once authenticated, you will be logged in and able to access the Windows Device Portal.
Overall the tools from Microsoft, including the IoT Dashboard, are extremely easy to use. You don’t need to use any command-line tools or open any configuration files to install Windows 10 IoT Core to an SD Card. You can then simply insert the SD Card into your device and boot it up to get it running.
There have been a number of Azure IoT Starter Kits available for some time now. I’ve written about the Starter Kits in the past. Some of these like the Raspberry Pi Azure IoT Starter Kit from Adafruit require you to wire up sensors and things, while the GrovePi+ is similar to a Lego Mindstorm but for prototyping Internet of Things devices. It seems that Microsoft is finally consolidating onto a specific “Azure IoT Developer Kit”, and they’ve already made early previews available upon application. This new Azure IoT “DevKit” is a single board packed with sensors, buttons, OLED screen, and more! Plus, it’s Arduino compatible! Read More
Many software systems can become fairly complex with many different interconnected and communicating components. Internet of Things (IoT) solutions can especially become complex. Instead of individual tiers for each piece of the software system, an IoT solution can be composed of thousands or even millions of IoT hardware devices in addition to the backend tiers for processing data, predicting analytics, reporting, business intelligence, and on, and on. Internet of Things solutions are becoming some of the most complex solutions on the planet.
The newly announced Microsoft IoT Central is a Software as a Service (SaaS) solution in the Microsoft Azure cloud that will help build, use, and maintain Internet of Things solutions. It provides an easier way to create connected products, and takes away much of the work necessary to build IoT solutions. Microsoft IoT Central reduces the complexity of IoT, thus enabling businesses to better utilize IoT to propel their business forward in the newly emerging age of IoT. Read More
Many developers are interesting in building Internet of Things solutions; whether it’s as a side project or something for Enterprise use. With all the Consumer and Industrial IoT products out today and being worked on, it’s certainly an interesting space to work in. However, it can be a bit challenging, and possibly daunting, for developers to get started with building IoT solutions with Microsoft Azure. As a result, many developers have had to do research in many areas and figure out their own learning path. Today, as part of the Build 2017 conference, Microsoft has announced the availability of a number of technical trainings available from Microsoft and other third-parties.
As a means of simplifying your journey to learning how to develop Internet of Things solutions with the Microsoft Azure cloud, the technical training announced provide structured paths to follow. This structured Azure IoT training will guide you through navigating all the different Azure IoT Suite services (Azure IoT Hub, Azure Stream Analytics, Azure Service Bus, Event Hubs, Azure Functions, Cosmos DB / DocumentDB, Azure Machine Learning and more) in the affect of how to design and build full IoT solutions. You no longer need to piece together documentation articles in order to learn how to build IoT solutions with Azure. Read More
The all new Microsoft Azure IoT Edge brings down the power and capabilities of Azure IoT down to run natively on individual Internet of Things devices. This will enable scenarios that require much lower latencies to be built with real-time analytics and intelligence on running on the IoT devices (at the edge). Also, the devices supported include a broad range of IoT hardware which includes much more than just Raspberry Pi with the inclusion of lower powered devices as well.
Azure IoT Edge enabled you to build Hybrid IoT Solutions the bridge the gap and merge the Cloud IoT and local, device IoT capabilities into a single cohesive mesh. This allows you to easily orchestrate IoT cloud services in Azure to run on your IoT devices at the edge. This allows you to get the best of both Cloud and On-Premises worlds in your IoT solutions providing intelligence and analysis on the edge closer to your devices with up to 20x reduction in decision latency!
Here are some of the benefits and advantages of using Azure IoT Edge:
- Run artificial intelligence at the edge
- Perform edge analytics
- Deploy IoT solutions from cloud to edge
- Manage devices centrally from the cloud
- Operate with offline and intermittent connectivity
- Enable real-time decisions
- Connect new and legacy devices
- Reduce bandwidth costs
The Azure IoT Edge was just announced today at Build 2017, and promises to be a truly great advancement in building IoT solutions. Microsoft even showed a really great demonstration of implementing it in Industrial IoT that resulted in 20x reduction in decision latency and emergency response in a factory.
Azure IoT Edge looks really awesome, and I look forward to learning more about it!
The Grove IoT Commercial Gateway Kit from Seeed is the result of a partnership between Microsoft and Intel to create a starter kit for rapidly prototyping commercial IoT gateways. This kit finally makes it easy to setup and create Azure IoT Gateways with the Gateway SDK on a physical device. And, it’s powered by an Intel NUC and Wind River Linux. Read More
There are a number of Microsoft Certified for IoT Starter Kits available. These are tailors mostly to prototyping solutions, as they come with a number of sensors and things necessary to get started building. However, if you know what platforms you want to target, or are looking for a number of platforms to choose from, then you’ll want to look through the catalog of Microsoft Certified for IoT devices.
Rather than just having a documentation page or PDF that lists out what all the Certified for IoT Devices are, Microsoft has created a catalog website that’s easily searchable and filterable. Using the official Azure Certified for IoT device catalog can really help you find the perfect IoT hardware for your next IoT project; especially industrial or commercial projects.
The Azure Certified for IoT device catalog is located at: https://catalog.azureiotsuite.com