The Internet of Things (IoT) has emerged as a combination of multiple technologies with different applications. Different definitions of IoT have emerged with the objective of capturing the elements of IoT. One definition views IoT as a network infrastructure that connects virtual or physical items that have the capability to capture and communicate data. A second definition views IoT as an information system made up of sensors that are networked using the internet protocol.
From the available definitions the following key points can be noted
• There are sensors that capture data
• A wired or wireless network is used in communication
• The sensors can react upon human intervention or autonomously
Therefore the broad theme that emerges in IoT is the use of devices that are connected over a network to provide a specific functionality. The information gathered by the devices is fed into other systems that act on it. The devices could be commonly used or purpose built.
To further clarify the concept of IoT, some examples are discussed below:
• In health care, a sensor on a patient gathers critical cardiac indicators and sends the information to a physician without the need to visit a clinic. Another example is using a sensor to remotely monitor the safety of an old family member.
• At home, sensors help in reducing energy costs by switching off lights when there is nobody in the house or when instructed remotely. Another way sensors can save energy bills is by using home activity and weather data to optimize heating.
• In city management, sensors monitor trash bins and send alerts on when trash needs to be collected thereby saving time and money. Parking management is an area that can be optimized by using sensors and applications to help in finding a parking spot.
From the examples discussed above, it is evident there are similar approaches and challenges when implementing an IoT project. The critical components that make up an IoT project are devices, gateway and data processing. A device interacts with the environment and it consists of hardware and software. Devices can be configured to communicate among them or with a common application. The devices send their data to a central location and the data is enriched using data from other processes.
Devices handle varying information types therefore a data processing system needs to be selected based on data arrival speed, volume and API preference. When selecting hardware important considerations that need to be made are cost, device role, power source and networking.
There are five categories of information that frequently appear in IoT projects. Device metadata captures information about the data and it has a characteristic of not changing frequently. Examples include device ID, model and date of manufacture. State information captures device status not the device environment and the device status is updated frequently. Telemetry is the data about the environment that is gathered by sensors. Commands represent device actions. Operational information captures operational parameters such as CPU temperature that is useful for optimizing device operations instead of offering analytical value.
The range of available hardware to support IoT is wide. One common platform is single board such as Raspberry Pi. Another platform is microcontrollers such as Arduino. Use of these platforms enables connection of varying sensors and actuators. Interfaces available on IoT platforms include USB, GPIO, I2C, UART and SPI.
After the data has been captured by sensors it can be processed in different ways as shown below to reduce data size transmitted
• Format conversion
• Data quality checks
• Data aggregation
• Removing irrelevant detail
Device management is required in every IT project and it is not limited to IoT projects. Critical management activities concern provision, updates and operations. • The process of device set up is referred to as provisioning. Important activities in device provisioning are listed below:
• Adding minimum device information that contains device ID and elementary metadata
• Setting up credentials and authentication to enable secure communication over a network
• Adding necessary authorizations that will enable the device accomplish its role
• Networking the devices to enable communication and data movement
• Device and resource discovery setup
Operations are concerned with event logging and metric monitoring to ensure uninterrupted service.
In an IoT project a gateway enables connection and protocol translation. For devices that lack internet connectivity capability a gateway receives the data and transforms it for transport over TCP/IP. A gateway is relevant in the following scenarios.
• Internet connectivity is not available
• Electric power needed for network transmission is not available
• Processing features required for transport-layer-security (TLS) are unavailable.
A gateway is still an important element that can be used for value addition besides enabling communication. A gateway adds value in the ways listed below:
• Compressing data to increase data volume transmitted over a network
• Storing data locally for transmission when network connectivity is not consistent
• Translating between IPV4 and IPV6
• Ensuring timestamp consistency
After the IoT has been set and it starts producing data an efficient approach to store, process and manage data is required. Data processing begins with ingestion which involves moving data from the devices to storage platform. Data ingestion relies on HTTPS REST API or RPC frameworks such as gRPC.
After data has been ingested the next step is processing. Some of the tasks involved in data processing are listed below
• Data transformation to meet your objectives. For example, converting data to standardized units
• Data aggregation for example computing averages and percentages that communicate actionable insights
• Combining IoT data with other data to enrich the insights within the data
In this article, we introduced IoT and provided a definition. We discussed key elements that make up an IoT project. We provided some examples of IoT and discussed the types of data that are captured in an IoT project. We discussed available IoT hardware platforms, interfaces available and ways in which data can be processed.