The complexity of IoT devices can be diverse. Generally speaking, IoT devices are nonstandard computing devices (objects, everyday items, appliances, sensors or actuators) connected to a wired or wirelessly network, that have the ability to transmit and/or receive data, receive instructions, and even take actions based on the data they gather. In some applications, the IoT device can be able to pre-process or process the data gathered from the real world before sending this information to a control unit that will take the appropriate decisions.
The gathered data can be processed on either the IoT device or a remote control unit. Thus, for IoT applications that involve data processing, a major challenge is to decide where the computation load should be done.
An IoT device is an embedded device which can be characterized by at least three basic blocks:
Figure 2 shows a general block diagram with the main components of an IoT device. It can have many other blocks but at least the RF component for the connectivity in common to all of them.
In fact, these blocks are common to many of the devices that exist today in the market. However, IoT devices must include, particularly remote ones, other features such as [9]: