In the previous tutorials, we discussed Internet of Things (IoT) platforms, including AWS IoT Core. Any IoT solution of considerable size or complexity typically requires a platform. An IoT platform simplifies device fleet management, accelerates application development, facilitates data handling and analysis, and facilitates integration with other services.
What’s more is that the selected platform has a significant impact on software development from the start. Device firmware must be programmed with the credentials and certificates specific to the platform. The features and services offered by the platform also influence both the application development and on-device software capabilities.
Since the IoT platform serves as the software foundation of the solution, it plays a significant role in shaping the software aspect of the system.
However, it’s not just the software. The chosen IoT platform also affects the hardware selection for the solution. Selecting the ideal hardware for an IoT application, particularly one of moderate to high complexity, requires several careful considerations. The hardware choice is closely tied to the capabilities of the IoT platform.
In this article, we’ll explore the key factors to consider when selecting hardware for a cloud-based IoT solution.
Design flow
In an IoT project, the hardware and software are developed together. The development process typically follows a standard flow, as follows:
- Identifying requirements
- Determining specifications
- Creating a conceptual design
- Prototyping
- Testing
- Deployment
A project starts by clearly defining the purpose of the IoT solution and identifying the specific problems it aims to address. This includes understanding the target users and their particular needs. Project requirements should be divided into functional and non-functional categories.
The functional requirements include:
- Data acquisition
- Data transmission
- Device control
- User interface and interaction
- Data processing
- Analytics
- System integration
The non-functional requirements include aspects such as:
- Performance
- Security
- Reliability
- Availability
- Maintainability
- Cost
- Compliance
- Scalability
- Power consumption
At the hardware level, these requirements must be translated into the core functions of the IoT device, such as sensing, actuation, or tracking. It’s essential to consider the type of data the device will collect or generate, the volume of that data, and the purpose behind gathering it.
The type of data depends on the sensors used, such as temperature, humidity, light, motion, pressure, GPS, or acceleration. The sampling frequency and the nature of the data influence the data volume. Higher data volumes typically require more storage and greater processing capabilities.
The intended use of the data is also critical. For example, turn on a light when motion is detected, control a thermostat based on temperature thresholds, or track location using GPS data. Some applications may require real-time processing, while others can tolerate delays. This affects the choice of connectivity and the processing power needed.
The first and most important step is to clearly define both the functional and non-functional requirements for the device-level hardware.
Data acquisition
A cloud-based IoT solution differs from a typical IoT project. In a cloud-managed setup, the priorities shift toward data acquisition, secure communication, connectivity, and power management. In contrast, a standalone IoT project that’s not connected to a cloud platform tends to emphasize local data storage and processing.
In a cloud-based solution, data storage, processing, and analytics are handled on the cloud side. This allows the device itself to focus on its core functions.
Data acquisition is one of the most critical tasks in any IoT device. It depends on the types of sensors integrated into the device. These sensors may monitor environmental parameters such as temperature, humidity, light, pressure, or shock. They may also be used to measure the internal state of the device, such as battery voltage, speed, force, or orientation.
Additionally, the sensors can support user interaction through components like buttons, touchscreens, or infrared receivers.
Selecting sensors for an IoT device involves several considerations. First, the required functionality must be clearly defined. If temperature monitoring is needed, for instance, a temperature sensor is required. After identifying the sensor type, suitable models must be shortlisted and compared based on specifications such as accuracy, precision, resolution, and operating range. Often, tradeoffs exist between accuracy and precision or between resolution and range.
In cloud-based applications, it’s important to assess these specifications in terms of how useful the resulting data will be for remote processing. Some applications may benefit more from precise but less accurate data, while others may require high accuracy even if the precision is lower. Likewise, one application may prioritize high resolution, while another may need a wider operating range.
Sensors can be digital or analog. Digital sensors are generally easier to integrate, using common interfaces such as UART, I2C, or SPI. Analog sensors require analog-to-digital converters (ADCs), which may be built into the processor or added externally. Plus, the data resolution depends not only on the sensor itself but also on the resolution of the ADC.
Another key factor in data acquisition is the sampling rate, which is the frequency at which data is collected from the sensors. The nature of the application drives the required sampling rate. Devices that require real-time responses typically need higher sampling rates.
In some cases, a higher sampling rate improves measurement accuracy. In cloud-based applications, higher sampling rates result in more data being transmitted, which in turn increases bandwidth and power demands.
Data processing and memory
The data collected from sensors may be processed locally on the device, at a gateway, or in the cloud. Often, the same data can serve multiple purposes and be processed at different levels of the IoT architecture, depending on its intended use.
On-device processing is typically required for real-time tasks that necessitate low latency. If some delay is acceptable, data can be processed at the gateway. Cloud-based processing is usually reserved for tasks that involve advanced analysis, long-term storage, or machine learning.
Several factors influence whether data can be processed on the device. One of the most important is the power source. Battery-powered devices have limited processing capacity and typically delegate computation to a gateway. Devices with a constant power supply, such as industrial machines or smart meters, can often support on-device storage and processing.
Connectivity also plays a key role. In environments with unreliable or intermittent internet access, local processing becomes necessary to ensure consistent operation. Devices that are part of fully cloud-managed solutions, typically operating on stable network connections and powered by batteries, often use microcontrollers such as the ESP8266, ESP32, STM32, or other Arduino-compatible platforms. IoT systems that require local data processing are more likely to use single-board computers like the Raspberry Pi, BeagleBone, NVIDIA Jetson Nano, or similar microcomputers.
For local data processing, the selected microcontroller or microcomputer must have sufficient memory. This includes space for the firmware, sensor data buffers, and the communication stack. It should also include enough flash memory to support over-the-air firmware updates.
Connectivity
Connectivity is one of the most critical components of any IoT solution. It becomes especially important in cloud-based IoT applications, where consistent and reliable communication is essential.
IoT devices may operate over short, medium, or long ranges, using either wired or wireless connections. Communication can be serial or parallel, depending on the application. For short-range communication, common options include Bluetooth, Zigbee, Wi-Fi, and Ethernet. Stationary devices, such as those used in home automation or smart buildings, are typically connected via Ethernet or Wi-Fi. Industrial applications often use Zigbee, while mobile devices usually rely on Bluetooth or Wi-Fi.
For medium-range applications, devices may connect via Wi-Fi on a local network or through cellular networks like 4G or 5G for broader coverage. Long-range, low-power devices are commonly connected through NB-IoT or LoRaWAN. The selected connectivity option must offer adequate coverage in the deployment area. For wireless communication, the choice and placement of antennas is also important for maintaining reliable data transmission.
The hardware chosen for an IoT device must support the physical communication method and the data protocol used by the selected IoT platform. Common IoT communication protocols include MQTT, CoAP, and HTTPS. MQTT is the most widely used due to its lightweight design and efficiency, making it ideal for battery-powered or low-power devices.
Communication may be serial or parallel. In serial communication, data is transmitted one bit at a time over a single communication line. It is typically used for long-range communication and has lower data rates. Serial communication uses physical layer standards such as RS-232 or RS-422.
Parallel communication involves transmitting multiple bits simultaneously across multiple lines. It is suitable for short-range applications that require higher data rates, such as communication between a computer and a printer. Parallel communication uses protocols like IEEE 1284 or PCI.
Several factors must be considered when selecting a connectivity solution and protocol, including required data rate, power consumption, network availability and reliability, modem type, certifications, and interoperability with other systems.
Power efficiency
Power management is another most crucial factor in IoT design. Most of the IoT devices are wireless and battery-powered. The microcontroller, sensors and the wireless modem are the main components in an IoT device that draws power. The power consumption in IoT devices need to be carefully managed. For IoT devices, low-power microcontrollers are preferred.
However, these microcontrollers go along with a performance trade off. So, a microcontroller for an IoT device must be carefully chosen. Ideally, the sleep modes of the microcontrollers are used to minimize the power consumption.
Cloud-run IoT solutions have an advantage in terms of power management compared to typical IoT networks. In cloud-run solutions, a lot of data storage and processing tasks can be relegated to the cloud. The microcontroller may only be used to stream sensor data and/or do some minimal calculations.
One other method for optimal power management in IoT devices is using power management integrated circuits (PMICs). These chips regulate power supply to various components of the device, so only the power required for the component’s operation is supplied to it.
Apart from battery, the IoT devices can be powered by solar cells or the mains supply. Only the stationary devices can typically use mains power. Mobile or remotely deployed devices must rely on batteries or solar energy. Solar panels can be a cost-effective option, but their effectiveness depends heavily on the device’s environment. Even when solar panels are used, the device still operates on battery power, with the solar panel serving to recharge the battery. Since solar energy harvesting depends on environmental conditions, it may not always provide a reliable power source.
Data storage
Cloud-based IoT solutions typically store data in the cloud, where it can be used for long-term storage, analysis, and advanced processing. However, in some cases, data also needs to be stored locally on the device or at the edge. This is especially important when the device performs real-time functions that cannot tolerate delays or latency. If the solution requires edge computing or local data processing, the device or its gateway must have sufficient memory resources, including RAM and flash storage.
Environmental conditions and durability
When selecting sensors and microcontrollers for an IoT device, it’s critical to consider the environmental conditions in which the device will operate. This is particularly important for devices deployed in outdoor or industrial environments. The selected components must support an appropriate temperature range and be capable of withstanding the conditions of the deployment site. In some cases, devices may also need to be waterproof, dustproof, or shock-resistant. Additionally, the design may need to meet constraints related to size and shape.
Security
Cloud-connected IoT solutions require reliable security measures, starting at the hardware level. Engineers should consider hardware-based security features such as secure boot, secure key storage, hardware cryptographic accelerators, and physically unclonable functions (PUFs) for unique device identification. Encryption and authentication must be applied in accordance with the capabilities and requirements of the IoT platform. Devices and platforms should also support secure over-the-air updates to address future security vulnerabilities.
Scalability and future-proofing
Scalability is an essential consideration when selecting hardware for IoT devices. The microcontroller and other components should be capable of handling increased data volume or complexity as the solution evolves. Devices should follow a modular design that allows new components to be added or upgraded to support future features or technologies.
Hardware should comply with industry standards and widely adopted protocols to ensure interoperability and long-term flexibility. Selecting components that avoid vendor lock-in is also important. If a migration to a different IoT platform becomes necessary, the existing devices should remain compatible or be easily adaptable.
Cost-effectiveness
While high performance and future readiness are essential, they must be balanced against budget constraints. Trade-offs may be necessary, such as power versus performance, data rate versus communication range, or security versus speed. In addition to the upfront cost of hardware, the total cost of ownership should include development costs and long-term operational expenses.
Ease of development and support
Selecting the ideal IoT platform can significantly simplify the development process. The microcontroller chosen should be supported by well-documented IDEs, SDKs, APIs, and libraries within the platform’s ecosystem. An active developer community is a significant advantage, offering shared knowledge, tools, and troubleshooting support.
Vendor support is also critical. The microcontroller should facilitate prototyping and testing without introducing unnecessary complexity. However, some microcontrollers are optimized for prototyping but may not perform well in production. It’s vital to select a microcontroller that can support development and deployment reliably.
Conclusion
Selecting hardware for cloud-based IoT applications involves multiple considerations. Key factors include data acquisition, processing, storage, power management, security, connectivity, scalability, cost, and ease of development. A thoughtful hardware selection, aligned with the application’s needs and the IoT platform’s capabilities, lays the foundation for a robust and future-ready IoT solution.
You may also like:
Filed Under: Tutorials
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.