Organizations that are embracing the Internet of Things (IoT) face several challenges. For example, an organization must have a clear understanding of its infrastructure and how best to configure it to support new sensors and other edge devices. Beyond the physical hardware, the organization’s development team must be familiar with the necessary software that plays a critical role in successfully establishing an IoT program. This Trending Topic focuses on identifying existing opportunities for the IoT and illustrates ways in which the Windows® 10 operating system can work in conjunction with an Intel® Galileo or Intel® Edison board and Intel IoT Gateway Technology.
Identify Existing Resources
Depending on the situation, an organization may have a significant investment in remote sensors (e.g., motion detectors, entrance and exit monitors, automated light dimmers, temperature sensors). For these businesses, a critical first step is to create an inventory of all available sensors and monitors. This inventory should include interface details such as Arduino*-compatible devices, power needs, and mechanisms for data collection.
Transmit Sensor Data for Collection
Collecting data from remote sensors is the first step in using IoT data. Transferring, analyzing, and taking action based on collected sensor data require a highly available, reliable means of data transport.
The Intel® Galileo and Intel® Edison boards (see Figure 1) provide a wide range of wired and wireless data-collection capabilities, and many online resources detail how to configure a basic IoT sensor board. For example, the Windows* IoT with Intel® Galileo Getting Started Guide presents a demonstration program on an Intel® Galileo Gen 2 board running the Windows® 10 IoT Core operating system. In this example, the most common Windows development platform (Microsoft* Visual Studio* 2013) was used to create a simple C++ console application. Development teams familiar with Windows programming should have little difficulty adapting the approach to their needs.
Figure 1. Intel® Galileo and Intel® Edison integration boards
A common mechanism for moving IoT data from machine to machine (M2M) is the Message Queuing Telemetry Transport (MQTT) protocol from OASIS. This lightweight protocol was created using a reliable “publish/subscribe” model, where clients are notified when data updates are published and can recover those data by using one of three reliability standards: deliver once, deliver at most once, or deliver at least once. Several implementations are available for setting up an MQTT client; for example, the Windows Dev Center provides example resources for implementing the M2Mqtt for .NET client with Visual Studio.
For the client to register interest in M2M messages, such as a sensor measurement update, it’s helpful to establish an MQTT broker or gateway so that more than one Galileo or Edison board can generate update messages. This approach uses the board’s preprocessing power to temporarily collect, store, and process raw sensor data from the sensor arrays into a more compact format (such as a compressed time series or fast Fourier transform).
Gateway Functionality
In an IoT implementation, a gateway acts as a data router to interested clients. Publishing data from the Intel® Galileo and Intel® Edison boards to the gateway (for example, by Ethernet, USB, Wi-Fi, or Bluetooth*) establishes a notification event that’s then sent to all registered clients. Using MQTT publish/subscribe in a network that has an IoT gateway that supports Intel® Galileo or Edison® data publishers (see Figure 2) requires that the IoT gateway act as an MQTT broker.
Figure 2. Internet of Things with a gateway
When each Intel® Galileo and Intel® Edison board configured with an MQTT client is publishing data to a Intel® IoT Gateway Technology with Windows® 10 IoT*, other network hosts can use a compatible MQTT client (for example, Mosquitto) to subscribe to the data. This technique allows for distributed data collection across a wide geographic region with many sensor devices. As an example of this large-scale data aggregation, a regional traffic sensor suite could have thousands of vehicle vibration sensors monitoring roadway degradation and reporting to hundreds of Intel® Galileo and Intel® Edison boards, which then preprocess the data and forward them to a central MQTT broker. Downstream systems receive the update notification and retrieve the data packet for further analysis and reporting. In this way, data-transmission bottlenecks are reduced, allowing rapid scaling of prototypes to full solutions.
Analytics and Cloud
The true power of IoT solutions lies with deep data analytics. Given thousands of sensors reporting millions of values, the usefulness of the Intel® Galileo and Intel® Edison board preprocessing step becomes clear. Instead of an analytical system dealing with a data overload, the data stream that the MQTT broker provides can be regulated and fed into an appropriate data store, such as Apache Hadoop*. Pattern analysis can then be conducted “offline,” looking for patterns or anomalies in the data.
The Intel® Cloud Technology Analytic site offers an open processing platform to introduce IoT implementers to the idea of cloud-based data collection and analysis. This site offers tools and frameworks for implementing web services–based calls to a cloud-hosted data analytics engine and alerting system. Visit the Intel® Developer Zone for an overview of the site.
Conclusion
By using hardware (for example, Intel® Galileo and Intel® Edison boards and custom IoT gateways), software (Mosquitto, Windows Configuration Software for Intel® IoT Gateway), and tools (Visual Studio, Windows PowerShell*, Microsoft* Office, and IBM* SPSS), an organization can effectively leverage an existing Microsoft-based infrastructure to facilitate IoT deployment. Challenges remain, especially when integrating with pre-existing sensor and monitoring equipment, but the distributed signal-processing capabilities of the Intel® Galileo and Intel® Edison boards combined with an MQTT-enabled broker offer great flexibility for a wide range of applications. Manufacturing, government, commercial, and other organization types can benefit directly from the approaches outlined here: The only limit is your imagination.
Additional Reading:
- Visit the Intel® Edison board web site to learn more
- Visit the Intel® Galileo web site to learn more
- Visit the Intel® IoT Gateway web site to learn more.
- Explore the IoT gateway offerings to compare features and necessities.
- Visit the Wind River* Linux* web site to learn more.
Login to leave a comment below. If you are not registered go to the Intel® Developer Zone to sign up.