Over the course of 12 months, the Expanice team has written a handful of articles on IoT software development.
We’ve told you about wired and wireless IoT communication protocols, IoT challenges you need to avoid in your projects, the Internet of Things security issues, IoT architecture design, and potent IoT monetization strategies. These insights are summarized in a handy IoT product development guide.
What we have not covered on our blog yet is key IoT technologies — i.e., cloud computing, firmware, hardware, end-user applications, and other solutions that give voice (and brains!) to connected products.
However, we realized that not all members of our target audience, particularly the Internet of Things startups led by software engineers or individuals with programming backgrounds, possess comprehensive knowledge of IoT technology.
So, we’re going to bridge the knowledge gap with this article explaining what technologies are used in IoT.
A Rundown of IoT-Enabling Technologies
First, a bit of a prologue.
Various vendors have their own views on key IoT technologies. Hence the profound differences in articles in Google search results.
What exactly are IoT-enabling technologies, anyway?
Here at Expanice, we single out the following critical components of a cyber-physical system:
IoT Platforms
The Internet of Things platforms are the backbone of cyber-physical systems. Operating in the cloud, they offer a scalable server infrastructure and pre-configured components for application development.
With an IoT platform, you can orchestrate data ingestion processes, securely store and analyze sensor data, and manage your device fleet. Modern cloud computing solutions like IBM Watson IoT, AWS IoT Core, Microsoft Azure IoT Hub, and PTC ThingWorx support over-the-air firmware updates, feature effective mechanisms for vertical and horizontal application scaling, and even allow you to train and run custom machine learning models, all in the cloud.
When selecting among IoT-enabling platform technologies, it is important to consider the desired level of customization and the availability of pre-built cloud modules and services.
Based on these criteria, we can divide all IoT platforms into:
- Plug-and-play PaaS offerings like PTC ThingWorx
- Fully customizable cloud solutions, such as Azure and AWS
The former category features cloud solutions with pre-configured modules and industry-specific functionality. This makes PaaS offerings a good choice for businesses that need a quick and easy-to-implement solution to a well-known problem, such as asset tracking in warehouses or on the factory floor.
The downside? PaaS products can be tricky to customize and fairly expensive if you have a large device park or a rapidly growing user base.
When it comes to IoT-enabling platform technologies, the Expanice team recommends our clients take the custom route from the onset, opting for AWS IoT Core or Azure IoT Hub.
Why do we think they’re a better option?
Such platforms are more flexible and scalable and can be tailored to your specific needs.
When configured properly, they will be more cost-effective as well. In one of our projects, for instance, we programmed a smart curtains management system to cache device status data and send it to the cloud at longer intervals, optimizing AWS infrastructure expenses by 66%.
However, the true power lies in leveraging the diverse range of cloud services offered by dedicated Amazon and Azure solutions for the Internet of Things.
In AWS IoT, for instance, such services include:
- AWS IoT Analytics, which provides tools for building IoT analytics pipelines, running complex queries on sensor data, and generating real-time insights
- AWS IoT Device Management, a service with features like device provisioning, remote management, and status and activity tracking, as well as over-the-air (OTA) firmware updates
- AWS IoT Events that detects and responds to events from IoT devices and applications in real time, allowing you to define rules and triggers based on incoming data
- AWS IoT Greengrass, an edge computing service that extends AWS capabilities to edge devices, enables local processing of sensor data, offline operation in environments with limited or intermittent connectivity, and seamless integration with other AWS services
- AWS IoT SiteWise, which supports monitoring, visualization, and analysis of industrial data for increased operational efficiency and predictive maintenance
- AWS IoT Device Defender, a security service that monitors device behavior and detects abnormal activities, vulnerabilities, and potential threats
- AWS IoT 1-Click, a handy cloud service that takes the complexity out of connected device integration with the AWS infrastructure
- AWS IoT Things Shadow, which allows you to create a "shadow" representation of your devices in the cloud, providing synchronized and consistent access to the current state of a device, even when the device in question is offline. Check out our recent article about IoT implementation challenges for more information about device shadows’ practical applications
- AWS IoT Fleet Provisioning, a tool for the automatic provisioning of a large number of connected devices with unique identities and certificates
The list above is by no means complete — and, besides cloud services from the AWS IoT family, you can utilize other IoT-enabling AWS technologies to get your product up and running. Such technologies include Amazon S3 for secure data storage, Amazon Kinesis for advanced data analytics, and Amazon SageMaker for custom machine learning model training and deployment.
While this sounds convenient, the Expanice team has to warn you about the so-called vendor lock-in — i.e., situations when your company might become too reliant on an IoT technology stack provided by a single vendor, either Amazon or Microsoft.
While the tech giants are unlikely to go out of business or set the prices for their services prohibitively high, choosing a healthy mix of open-source and proprietary IoT-enabling technologies is the best way to create a fail-proof connected solution that delivers value to end users and ensures a steady revenue stream for your startup.
To conclude this section, we’d like to stress the importance of cloud platforms in IoT development. They top our list of key IoT technologies, and it’s hardly a coincidence. You can make do without a data analytics module for a smart lightbulb, but there’s no way your customers will be able to configure, control, and integrate the solution with other products without a reliable back-end infrastructure.
Connectivity Technologies
When discussing IoT-enabling connectivity technologies, it’s important to distinguish between networking protocols, which connect sensing devices to the Internet, and data protocols, which securely route device status data and sensor readings to a gateway and, ultimately, to the cloud for storage and further analysis.
The former category spans various wired and wireless connectivity technologies, from Ethernet and DeviceNet to Bluetooth, Wi-Fi, and cellular telecommunication networks like 5G. The latter protocol family includes Message Queuing Telemetry Transport (MQTT), Constrained Application Protocol (CoAP), Advanced Message Queuing Protocol (AMQP), and WebSockets, among others.
For more information about key IoT communication technologies, please refer to this blog post.
In the meantime, we’d like to give you a few practical tips for choosing the right connectivity tech stack for your Internet of Things project:
- If you’re looking to deploy a cyber-physical system in industrial settings (think a smart factory solution), reliability and security will take center stage. Therefore, we recommend you opt for a wired communication technology. However, you must consider some common issues undermining wired systems’ performance, such as connector durability. Regular Ethernet cables, for instance, have a signal distance limitation of approximately 100 meters. If you need to cover a larger area, think of using repeaters or switching to fiber optics. All in all, it’s a topic worth a dedicated article; if you have questions about wired connectivity technologies used in IoT, we’re only one email away!
- In smart home solutions, where smaller network coverage would normally suffice, you can opt for Wi-Fi coupled with Bluetooth/BLE for direct device-to-device/device-to-app communications.
- Cellular connectivity makes the most sense in cases where device mobility is prioritized. Delivery and inspection drones, as well as agriculture IoT solutions and safety monitoring wearables used by field workers, rely solely on cellular technologies. The same goes for the Internet of Things systems installed in remote, hard-to-access locations, such as oil rigs and wind turbines.
Last but not least, device interoperability and data exchange standards play a crucial role as IoT-enabling technologies in heavily regulated industries. In healthcare, for example, these standards span Digital Imaging and Communications in Medicine (DICOM), Health Level 7 (HL7), and Fast Healthcare Interoperability Resources (FHIR), to name a few.
The necessity to comply with one or several of such standards specific to the industry you’re targeting will largely determine the choice of your IoT-enabling connectivity technologies.
For example, some popular Ethernet protocols like Modbus and Profinet do not support data encryption by default, failing to secure communications between connected devices, gateways, and cloud infrastructure. So, your development team will have to address the lack of encryption at the transport layer of the Internet of Things architecture or augment your cyber-physical system with intermediary devices like firewalls and secure gateways.
Hardware
In the realm of IoT-enabling technologies, the term "things" often conjures images of electronic devices or sophisticated gadgets. In reality, the scope of IoT is far broader, encompassing a vast array of objects, equipment, and even everyday non-electronic items that can be transformed into intelligent entities.
There are several types of IoT hardware technologies you should be aware of:
- Sensors, which scavenge environmental data — i.e., temperature, humidity, pressure, light, air quality, the movement of objects in their proximity, etc.
- Programmable logic controllers (PLCs) and actuators that help orchestrate connected objects based on their status data, environmental conditions, or a schedule enforced by end users
- Computational components, such as microcontrollers, microcomputers, systems-on-a-chip (SoCs), and edge gateways. Depending on their processing power, these devices might be responsible for input/output operations, data storage, and data analytics. Some examples of computational technologies used in IoT include Arduino and Raspberry Pi boards, which are best suited for the Internet of Things prototyping, and custom-designed printed circuit boards (PCBs).
IoT hardware serves a multitude of essential functions that underpin the operation and effectiveness of IoT solutions.
Firstly, it facilitates connectivity by providing the means to establish communication channels between devices, sensors, and the cloud. This connectivity enables seamless data exchange, allowing IoT systems to function cohesively.
Secondly, IoT hardware performs the critical task of collecting data from sensors and devices, acting as an interface between these sensors and the IoT ecosystem, and capturing and transmitting the data to cloud platforms or local gateways for further processing.
Furthermore, IoT hardware enables automation and control, empowering users to remotely monitor and manage connected devices and systems. By integrating actuators, such as motors or relays, IoT hardware can execute commands based on data inputs. This capability enables automated responses, making IoT systems adaptable, efficient, and responsive to real-time conditions.
All of this makes hardware solutions one of the key IoT technologies, but their complexity may vary depending on your project’s objectives.
If you’re working on a home automation product — say, a Next-like thermostat that automatically adjusts its settings based on user preferences and the presence of a human in the room — be prepared to invest a tidy sum into custom hardware design. But if you’re looking to transform supply chain management with the help of an IoT-based asset tracking solution, you may as well opt for smart tags that use flexible printed electronics.
Embedded Software
In the context of IoT-enabling technologies, the “embedded software” term is often used interchangeably with another moniker — i.e., embedded systems. This brings about confusion since the two concepts, while deeply intertwined, still mean different things.
An embedded system is a combination of hardware and software components that help capture and process sensor data. In some cases, they may also feature embedded interfaces, such as industrial control panels with data visualization capabilities or voice assistants that allow end users to operate IoT devices. On the hardware side, the key IoT technologies of an embedded system feature sensor nodes, actuators, and computational units.
Embedded software, on the other hand, denotes computer programs or code that runs on embedded systems. It is the software component that controls the behavior, functionality, and interactions of the embedded system with its environment, as well as the operation of its internal components.
There are several types of embedded software technologies in IoT you could use in your project:
- Firmware. This category spans device bare-metal firmware for sensors, real-time operating systems (RTOSs), and general-purpose operating systems, which can be customized for low-power, low-memory devices.
- Middleware. In this category, we could single out device drivers interconnecting the components of a hardware solution, software development kits (SDKs) that allow third parties to develop apps for your IoT product, and context-aware and data integration middleware, which merges your device with other components of a cyber-physical system.
- Proximity and connectivity technologies. As part of embedded software development, you’ll have to configure connectivity modules so that your gadgets could go online and interface with the back-end infrastructure and user applications. Some of the commonly used embedded proximity and connectivity technologies include the Bluetooth Generic Attribute Profile (GATT), MQTT client library, and WLAN modules, among others.
The choice of an embedded solution for your project depends on device-specific requirements, such as where data analytics will be performed (on the device vs. in the cloud), the desired connectivity range, and connection stability and availability.
By choosing an off-the-shelf IoT development board that comes with pre-installed embedded software, including connectivity modules and standardized interfaces for accessing the board's peripherals, you can greatly expedite the development process. When your project moves past the prototype and minimum viable product (MVP) stage, however, the need might arise to go fully custom, so you’ll have to address an IoT company with solid expertise in embedded systems development.
User Interfaces
User interfaces in IoT systems provide the means for a person to access, monitor, and manage connected devices. Through user interfaces, individuals can interact with the Internet of Things solutions in multiple ways — for instance, configure connected door locks in their homes, monitor electricity consumption, or set up automated routines for their smart home ecosystem.
There are several types of user interface technologies commonly used in IoT projects:
- Mobile applications.Smartphone and tablet apps are one of the most popular user interface options in IoT solutions. Apps provide a convenient and familiar interface for end users to access and control their connected devices from anywhere, at any time. The apps can be designed for various platforms, such as iOS, Android, or both.
- Web portals. Web-based interfaces accessible through standard web browsers offer a flexible and platform-agnostic way for users to interact with their IoT systems. Web portals can be optimized for various devices, from desktops to mobile phones, providing a consistent experience across different screens.
- Voice interfaces. With the rise of voice-activated virtual assistants like Amazon Alexa, Google Assistant, and Apple's Siri, voice interfaces have become a popular choice for IoT systems. Users can interact with their devices and control the IoT ecosystem using natural language commands, making the experience more intuitive and convenient.
- Touchscreen interfaces. Devices with built-in touchscreens can offer a direct and tactile way for users to interact with IoT systems. This is common in smart home hubs and control panels.
When designing user interfaces for IoT solutions, it is crucial to prioritize ease of use, simplicity, and responsiveness. A well-designed user interface can significantly enhance the user experience and increase the adoption and satisfaction of your IoT product.
In addition to traditional user interfaces, the rise of augmented reality (AR) and virtual reality (VR) technologies is opening up new possibilities for user interactions with IoT systems. These technologies can create immersive and engaging experiences, enabling users to interact with IoT devices in entirely new ways.
Remember that the choice of user interface technology will depend on your target audience, the specific use cases of your IoT solution, and the devices through which users will interact with your product.
In Conclusion
As you can see, IoT-enabling technologies form a complex ecosystem of interconnected components, each serving a specific purpose in bringing IoT systems to life. Understanding these key IoT technologies is essential for designing, developing, and deploying successful IoT solutions.
Whether you are building a smart home solution, an industrial IoT platform, a connected healthcare device, or any other IoT application, the selection and integration of the right IoT-enabling technologies will be critical to the success of your project.
Remember that each project is unique, and the right mix of IoT technologies will depend on your project's specific requirements, constraints, and objectives. Working with an experienced IoT development partner can help you navigate the complexities of IoT-enabling technologies and bring your vision to life.