It is possible to observe an expressive increase of 278% in the number of published papers in 2017/2018. It’s also possible to observe a very similar number of published papers in 2019/2020, until the first semester of 2020. The amount of published papers in recent years evidences the increasing in discussion and the relevancy of the topic IoT applied to smart farming.
4.1. Application
Within the reviewed papers it was also identified that the most common applications of IoT solutions for smart farming are:
Chemical control (e.g., pesticides and fertilizers).
Crop monitoring.
Disease prevention.
Irrigation control.
Soil management.
Supply chain traceability
Vehicles and machinery control.
Table 2 presents the reviewed papers, grouped by agricultural environment and application of the IoT solution. It is worth mentioning that several IoT solutions presented on the reviewed papers could be applied to multiple environments (
Figure 4). Thus, such IoT solutions are classified as “Generic”. Additionally, the “Others” column in
Table 2 includes papers whose IoT solutions were developed for agricultural environments that were less mentioned, such as pots, crop beds, etc. It is possible noting a predominance in projects where the application is for crop monitoring, irrigation management, and disease prevention.
As shown in
Table 2, the most common application of IoT solutions for smart farming is crop monitoring. Moreover, as shown in
Table 2, these solutions have been developed for multiple agricultural environments, such as arable lands, orchards, greenhouses, etc. The fact that this type of application is so common in agriculture can be justified by the relevance that crop monitoring has for farmers. IoT solutions developed for monitoring crops focused on collecting environmental data of plantations (such as temperature, humidity, luminosity, etc.). Farmers can use these data to obtain a better insight of the plantations. For example, such data was used to determine the vigor of rice [
47,
58], alfalfa [
30] and maize [
57] crops and to control the environmental conditions of greenhouses [
99,
100,
102,
104]. Similarly, IoT solutions for irrigation control has also been developed for multiple agricultural environments, as demonstrated in
Table 2. Such IoT solutions aimed to optimize the use of water resources in agriculture in different ways, such as by simply using sensors for measuring the soil moisture and using these data for controlling the irrigation source [
34,
139] or in a more sophisticated way, by combining humidity data with datasets of weather to determine the amount of water required during the irrigation [
140]. IoT solutions for disease prevention aimed to identify and prevent diseases on plantations. For this purpose, these IoT solutions collected multiple environmental and plantation data, such as images of plants [
129,
132,
134], sounds [
135], temperature, humidity, etc. [
131,
137]. These data were processed with different approaches, such as image processing [
129,
134] or artificial intelligence [
132,
137]. For example, the IoT solution developed in [
129] processes images collected from a sugarcane crop and identifies diseases on the leaves of plants. In addition, [
135] developed an IoT-enabled device that captures sounds produced by larvae inside trees. IoT solutions for chemical control presented in
Table 2 aimed to optimize the application of fertilizers and pesticides on plantations. For this purpose, these IoT solutions collect data (such as nitrogen, salinity or PH) from the crops. Based on the collected data, such IoT solutions can identify crop areas that may require the application of fertilizers or pesticides. For example, in [
54] aerial images of crops are processed to determine the nitrogen concentration in a large plantation. These images are useful to determine the specific region that requires fertilizer. In addition, [
55] developed an automated robot that optimizes the application of pesticides in greenhouse cultivations. IoT solutions for soil management aimed to identify different soil attributes used for planting. For example, such IoT solutions are used to measure the soil moisture [
163], to identify the water consumption pattern [
159,
161] and to identify the nutrients of the soil [
158]. IoT solutions for vehicles and machinery control focused on collecting data of and managing agricultural equipment and machinery such as tractors, harvesters and trucks. For this purpose, IoT solutions had to deal with the characteristics inherent to agricultural equipment, such as mobility. Data from the equipment itself, such as implement status, engine performance, or speed are collected using sensors [
41] to optimize their maintenance cycle. Additionally, due to the mobility of agricultural equipment, opportunistic computing was used to collect data from remote crop areas by using sensors coupled to tractors [
174].
Each agricultural environment presented in
Table 2 brings its own challenges for the projects, which includes the environment impact on the communication between sensors, either by the distance between the sensor nodes [
25,
105,
180], by the lack of communication in the croplands [
98,
174] or even by the impact of vegetation in the signal propagation [
70,
175]. Furthermore, as indicated in [
28], climatic elements—such as rain, snow or solar radiation—have influence on both the planting and the sensor nodes.
To cover these scenarios commercial electronic sensors are used by 96% of the reviewed papers. This expressive usage can be justified by the fact that such sensors are affordable, certified, ready-to-market and meet the main monitoring needs in IoT solutions for smart farming. Such sensors are used for collecting real-time data about multiple agricultural parameters, such as climatic data, substrate information, luminosity, CO2 concentration and images through cameras and multispectral sensors, as shown in
Table 3. Moreover, several papers (4%) focused on developing custom-made sensors for monitoring specific agricultural aspects, such as soil nutrients (e.g., nitrate [
158]) and leaf evapotranspiration for measuring the hydric stress in tobacco crops [
81].
Different types of sensors are used in agriculture for collecting data from different aspects of agriculture such as crop monitoring, substrate monitoring and environment monitoring.
As presented in
Table 3, different types of sensors were used in IoT solutions for smart agriculture to collect data from multiple aspects of agriculture, such as the crop, substrate, environment and other. For this purpose, as shown in
Table 3, for environment monitoring electronic sensors were used in IoT solutions to collect environmental data, such as temperature, humidity and luminosity [
104,
109,
114]. In addition, for substrate monitoring electronic sensors were used to collect data from the substrate (e.g., soil and water), such as temperature, moisture and nitrogen. Likewise, pH sensors were used for measuring the acidity or the alkalinity of the water in hydroponics cultivations. For crop monitoring, cameras and multispectral sensors were used to collect images of crops. These sensors can be installed on an UAV to obtain aerial images of large plantations [
47,
57,
58] or used in robots to retrieve a detailed image of the leaf of a plant [
111].
4.2. Perception
The choice of hardware is a very important aspect of the IoT project development because it impacts the costs and the technologies that can be used. 60% of the reviewed papers mentioned the hardware used to support the IoT solution. Furthermore, SBCs were mentioned by 40% of the reviewed papers. The use of SBCs can be justified by the fact that these devices are affordable and versatile [
38], enabling the development of custom-made IoT devices. For example, some SBCs such as Arduino has an integrated development environment (IDE). This IDE enables the development of custom programs to be installed as firmware on the Arduino boards [
184]. Similarly, Raspberry Pi is compatible with several operating systems, such as Raspbian, Ubuntu Core or Mozilla Web Things [
185]. Some of these operating systems are open-source, which allow for the customization of its source-code. Besides, these operating systems support applications developed with programming languages such as Python [
26]. Furthermore, the capabilities of SBCs can be extended by associating them with other hardware components, such as sensors or transceivers. This characteristic makes SBCs able to work as gateways or sensor nodes in IoT solutions. Among the papers that mentioned SBCs, 82% mentioned the use of Arduino, Raspberry Pi and ESP boards (such as ESP8266, ESP12 and ESP32).
Table 4 presents the application of embedded system platforms and UAV devices in smart farming.
As shown in
Table 4, IoT-enabling devices are used for multiple applications on IoT solutions for smart farming. SBCs were used both as sensor nodes and gateways.
Table 4 reveals that Arduino was the most commonly used embedded system platform among the reviewed papers. The extensive use of Arduino can be justified by the fact that Arduino is open-source hardware that enables the development of different devices through the use of boards that extend their native functionality.
Table 4 also shows that embedded system platforms have been more widely used in IoT solutions for crop monitoring. As sensor nodes, for example, in [
124] sensors for collecting environmental data such as soil humidity, solar radiation and rain are connected to an Arduino Uno. The Arduino is, then, used to monitor the health of a vineyard. Likewise, in [
117] a Raspberry Pi is used to manage the temperature and air humidity of a greenhouse. IoT devices are also used as gateways to connect short-range WSN with the internet by using long-range communication protocols. For example, in [
127] a gateway is used to connect WSNs using 3 different protocols (ZigBee, Bluetooth and Wi-Fi) with a remote server by using 3G. In [
84] a LoRaWAN gateway obtains data from sensor nodes using LoRa and retransmits this data to a cloud-hosted platform by using 4G. 3G and 4G are cellular network technologies that, as discussed in
Section 2.3, enable communication in long distances and with a high data transmission rate. These technologies will be discussed with more details in
Section 4.3.
In addition,
Table 4 also reveals that UAV is widely used by IoT solutions for monitoring crops, disease prevention and chemical control. The use of UAV for crop monitoring is due to the fact that UAV has the potential to accelerate and reduce the cost of monitoring extensive crops. For this purpose, cameras and multispectral sensors are attached to UAV devices that are used to obtain aerial images from large crops. Such images are processed by the IoT solution to calculate agricultural parameters, such as the leaf area index (LAI). The LAI is a parameter used to determine the vegetation coverage within a specific area. LAI, combined with other parameters, can be used to evaluate the amount of nitrogen in rice crops [
58], determine the vigor of rice and maize [
47,
57] crops and detect diseases in sugarcane crops [
129]. Moreover, UAV devices are used in [
46] to optimize the application of pesticides and fertilizers in arable lands.
4.3. Network
Data obtained with sensor nodes are usually sent to the destination (e.g., database, server, IoT platform) through a wired or wireless network. Within the reviewed papers, 60% have mentioned the network protocol used in the IoT solution. Among the mentioned network protocols, CAN and Ethernet were the most used ones for wired networks. Likewise, LoRaWAN and protocols for cellular network (e.g., GPRS, 3G, etc.) were the most used protocols for long-range wireless networks. Analogously, ZigBee, Wi-Fi and Bluetooth were the most used protocols for short and mid-range wireless networks.
Table 5 shows network protocols used for the IoT solutions within the reviewed articles.
As shown in
Table 5, several network protocols are used in different environments of agriculture (e.g., arable land, greenhouse, orchard) to enable communication between IoT solution devices, such as sensor nodes and gateways. Such network protocols enable the creation of short or long-range networks.
Table 5 reveals that for short and middle-range communication, IoT solutions of the reviewed papers used different technologies, such as Wi-Fi, ZigBee and Bluetooth. Moreover, it is possible to observe in
Table 5 that Wi-Fi is the most common network technology for communication within the analyzed articles. This extensive use of Wi-Fi can be justified by the fact that Wi-Fi is a ubiquitous technology and, therefore, easy to implement. However, due to the higher energy consumption of Wi-Fi, low-energy consumption technologies, such as ZigBee or Bluetooth, are also extensively used. For example, [
62] used ZigBee to send images from a plantation to a remote server and [
188] developed a sensor node that uses Bluetooth to deliver monitoring information from the farm directly to an application installed on a smartphone.
Table 5 also demonstrates that IoT solutions of the reviewed papers used cellular networks, Sigfox, or LoRaWAN for long-range networks. Cellular networks are prevalent in IoT solutions for Smart Farming. This can be justified by the fact that cellular networks allow the communication of IoT devices in long distances and with a high data rate. For example, [
141] uses cellular network to send data collected from humidity sensors to a cloud-based platform and to control an irrigation system. Similarly, Sigfox and LoRaWAN enable communication in very long distances while requiring low energy to operate. Based on these characteristics, Sigfox and LoRaWAN were used for long-range communication, as an alternative to cellular networks or in regions where there was no cellular network coverage. Sigfox is used in [
34] as the network protocol of an IoT solution used to control the irrigation of a plantation. Likewise, in [
137] the LoRaWAN is used to send data from multiple sensors installed in a greenhouse to a remote platform.
Besides the distance between sensor nodes, gateways, and other network elements, the vegetation itself can be an obstacle for sensor communication, as demonstrated by [
175] and [
70] who analyzed the impacts on signal propagation on 433 MHz and 2.4 GHz frequencies in rice plantations and an orchard. An additional challenge for greenhouses arises from the high density of sensors, which can lead to interference in the wireless signal due to proximity [
105,
112,
180]. To mitigate this problem wired networks, such as CAN [
100] or Ethernet [
122], can be used. As shown in
Table 5, these technologies have been more used in greenhouses, because usually this type of agricultural environment is more appropriated for implementing wired networks. Moreover, [
112] investigated the path loss on wireless signals and concluded that the proper positioning of directional antennas can optimize the number of sensory nodes required for monitoring a greenhouse.
Network topology is another important aspect of an IoT solution. According to [
61] the topology of sensor networks can be star, tree (or cluster) or mesh. The network topology impacts the distance between the sensor nodes and the destination and, consequently, the number of sensor nodes in the WSN [
190]. For example, star networks are composed of a central node (coordinator) and several peripheral nodes. In such topology, peripheral nodes send data to the central node [
93]. Therefore, the maximum distance between the peripheral nodes and the central node is limited by the maximum distance allowed by the physical layer communication standard. On the other hand, as discussed in
Section 2.3, in mesh networks each node has routing capability, hence extending the network coverage by allowing multi-hop communications [
191]. Based on the architecture of the IoT solution and on the project description it was possible to identify the topology adopted by 61% of the reviewed papers. For example, a star topology is used in [
34] for connecting sensor nodes to a central node using the LoRa protocol. This central node acts as a gateway and retransmits messages to a cloud-based application that controls an irrigation system using Sigfox. Also, in [
107] the star topology is used to connect multiple sensors within a greenhouse. Such sensors use the ZigBee protocol to send messages to a central node, which acts as the network gateway. Mesh networks are considered more complex to be implemented but also more reliable due to the redundancy of communication between the sensor nodes [
105]. Such topology is used in [
105,
107] for monitoring a greenhouse. Tree (or cluster) networks combine multiple star networks. Both [
61] and [
178] implement a cluster network for monitoring crops. In [
61] sensor nodes collect information from a crop and send messages to a router node. This router node acts as the gateway of the cluster and retransmits the message to the main router node of the network. In [
178] several router nodes are deployed in the crop area in order to optimize the energy consumption of sensor nodes.
Furthermore, embedded system platforms have been used to support network topologies. The chart in
Figure 5 presents the distribution of embedded system platforms by network topology or device connection type. It is worth mentioning that although point to point is not a network topology, this type of device connection was used in several IoT solutions within the review articles. As shown in
Figure 5, Raspberry Pi is often used in IoT solutions implementing the star network topology. Arduino is the embedded system platform used in multiple types of network topology or device connections. Additionally, Arduino is the most frequently used embedded system platform to support star network topology and point-to-point communication. Finally, ESP-based devices include devices that use system-on-a-chip (SoC) modules such as ESP-32 and ESP8266 (Espressif Systems, Shanghai, China). ESP-based devices are often used in IoT solutions that implement star network topology or point-to-point communication.
As mentioned in
Section 4.2, embedded system platforms can be used to build gateways or sensor nodes. As shown in
Figure 5 the use of Raspberry Pi, Arduino and ESP stand out, probably because such embedded system platforms are cost-effective [
38] and enable different network protocols (e.g., ZigBee, Wi-Fi and Bluetooth) with the use of transceivers. This characteristic allows such embedded system platforms to act as sub-nodes and central nodes in a star network [
27,
30,
34] or as router nodes in mesh and cluster networks [
106,
178].
IoT devices transmit information to cloud-based platforms or applications through application protocols [
109]. Such protocols can follow the publisher/subscriber architecture which, as mentioned in
Section 2, are appropriate for devices with limited computing resources. Among the application protocols used in the reviewed papers HTTP, MQTT and CoAP stand out. Such application protocols are useful to enable compatibility between non-standardized IoT devices and IoT platforms. For example, SmarFarmNet developed in [
32] adopts the “bring your own IoT device” concept by implementing loosely coupled application protocols such as MQTT and CoAP. Furthermore, although HTTP is not a specific protocol for machine-to-machine (M2M) communication, its use associated with REST APIs enables low coupling between IoT devices and applications, analogous to MQTT, for example. However, as [
109] concludes, the MQTT protocol is preferable for smart farming applications due to its resiliency, interoperability across different network protocols and transmission rate.
Finally, although the power consumption is not an exclusive topic within the transport layer, according to [
178] the highest power consumption for IoT devices within a WSN occur during the transmission of data. This review identified several approaches for optimizing the power consumption in IoT solutions for smart farming. Among the identified solutions are the use of low energy protocols (e.g., BLE, ZigBee, Sigfox), reduction of data transmission in sensor nodes by an optimized duty cycle [
177,
178,
192] and the use of message routing approaches that are more energy-efficient [
72,
193].
4.4. Processing
Among the analyzed papers it was possible to observe that initially, the main objective of IoT solutions was to collect and store data from sensor nodes. However, in more recent years, it is possible to observe an increasing number of IoT solutions that used supplementary techniques and technologies to treat the collected data, such as cloud computing and big data. Likewise, it is possible to observe an increasing number of works that used simultaneously two or more techniques or technologies for processing data. As shown in
Figure 6, the most cited technologies within the reviewed papers are cloud computing (34%), machine learning (15%), big data (13%), and artificial intelligence (9%).
Table 6 presents IoT solutions that relied on cloud-based platforms for processing data and highlights the main data processing techniques (e.g., Artificial Intelligence, Big Data, etc.). The column “Other/Not identified” comprehends IoT solutions that have used cloud-based platforms but have either (i) used any of the data processing technologies identified by other columns on
Table 6 or (ii) not explicitly mentioned the type of data processing technology that was adopted.
Table 6 reveals that the most found cloud-based platforms in the reviewed papers are ThinkgSpeak, FIWARE, Ubidots, SmartFarmNet, AWS IoT and Thinger.io. In particular ThingSpeak is the most used cloud-based platform across all the reviewed papers, due to the fact that this platform is open-source with low infrastructure requirements [
34]. In addition,
Table 6 shows that AWS IoT was used with a higher number of data processing techniques. Not all cloud-based platforms offer the same set of functionalities, but in general, they have capabilities for data storage [
30,
94,
102,
122,
132], processing [
194] and visualization [
102] and action control on farms [
34]. Furthermore,
Table 6 also reveals that, even though there are multiple cloud-based platforms, several reviewed papers developed their own cloud-based platform for the IoT solution.
Cloud-based platforms provide scalability for IoT solutions by relying on cloud computing to process and data. For instance, some platforms shown in
Table 6, such as Thinger.io [
33], are built entirely on top of infrastructure services provided by cloud providers (e.g., Amazon AWS and Microsoft Azure). Also supported by such services, the platforms make available data analysis modules with graphics and panels that allow real-time monitoring of the information obtained or the creation of customized panels from the integration of multiple data [
33].
Due to the scalability provided by these platforms, the large amount of data generated by the sensors is stored in databases to form the so-called big data, an unstructured set of information that is used to generate information about crops. According to [
197] big data demands the use of technologies to optimize the processing time due to the large volume of information. For example, Hadoop—a parallel database for big data applications—proved to be efficient when analyzing the rainfall index data from several meteorological stations [
197].
IoT solutions use different types of techniques and technologies for processing the collected data.
Table 7 presents commonly used technologies per applications as identified in the reviewed papers. Column “Other Technologies” encompasses all the technologies that are not identified by any of the other columns in
Table 7.
Table 7 reveals that the most commonly used technologies to support data processing are artificial intelligence, machine learning, and big data. The use of these technologies is related to their ability to process large amounts of information in a short time. In addition,
Table 7 also shows that crop monitoring is the most common type of application for IoT solutions that have used data processing technologies. Moreover, crop monitoring is also the type of application that used the most different technologies for data processing. This can be understood by the fact that usually IoT solutions for monitoring crops collect a bunch of data and rely on machine learning and big data to process such data.
As demonstrated in
Table 7, bigdata was used for different applications in IoT solutions, such as crop monitoring, soil management and irrigation control. For example, supported by big data, in [
142,
161,
194] the soil moisture data gathered by physical sensors were related to data made available in datasets, such as the NASA Prediction of Worldwide Energy Resources (POWER) [
198]—which contains meteorological data—purchase and sale values of crops, information from the user and government agencies to optimize the amount of water in irrigation cycles, support the farmer in the acquisition of agricultural inputs—such as seeds and fertilizers—and generate information and perspectives about other activities related to agriculture. Big data was also used by [
56] in the development of a decision support system to provide irrigation and monitoring advice to farmers from a knowledge base created with data obtained by physical sensors (e.g., temperature, soil moisture) and virtual sensors (e.g., soil type, season). Virtual sensor is a type of software that, given the available information, processes what a physical sensor otherwise would [
199].
In addition, automatic management with IoT depends on the manipulation of multiple variables. Initially, the simple observation of soil humidity and temperature can be used to trigger irrigation or cooling systems, as proposed by [
187]. Nevertheless, greenhouse management can be more complex. As shown in [
104,
107,
120], greenhouse parameters like temperature and humidity are closely tied and changing one of them can affect several others.
Fuzzy logic, as indicated in
Table 7, was used in IoT solutions applications that need to handle multiple variables, such as irrigation control and monitoring crops. For this purpose, [
120] uses fuzzy logic to handle multiple variables of temperature and humidity into a greenhouse and determine when a cooling system and an irrigation system should be started. Similarly, [
73] uses fuzzy logic to optimize the number of sensors for monitoring soil temperature and moisture. Machine learning was also used in data processing by [
46] to predict environmental conditions based on the forecast values of weather, humidity, temperature and water level and thus to control an irrigation system, by [
47] to combine multiple parameters obtained from images, such as color and texture indices and by [
48] to identify marks on the plants and, thus, to identify possible diseases. Similarly, in [
58,
125] it was used to detect diseases, identify growth stages and the health of plantations.
Similarly, as shown in
Table 7, IoT solutions used computer vision for applications that need to deal with image processing, such as crop monitoring and diseases prevention. It was also possible to observe in the reviewed papers the use of computer vision to identify and classify elements in images obtained by cameras, enabling the identification of fruit in an orchard [
200] or the existence of diseases and pests in plantations [
48,
129,
133]. Additionally, in [
133] computer vision was used as a monitoring tool to detect the presence of insects that can cause diseases in olive groves and in [
48] the same technique was employed to analyze diseases that cause morphological deformations in plants. Additionally, computer vision was used in crop management systems, for example in [
134] where it was implanted in a robot equipped with a camera and other sensors, being able to obtain images of vegetation and, through computer vision, detect weeds in plantations and eliminate them. Similarly, in [
111] a robot can identify a plant and interact with the environment to irrigate it, if necessary.
Finally, blockchain proved to be an opportune technology for systems that need to implement traceability of the supply chain, as shown in
Table 7. According to [
171] blockchain is a global public distributed ledger that records all transactions between users. In fact, this type of control is relevant for agriculture in several aspects, such as food safety, guarantee of origin or cost reduction. To ensure information security, this technology was proposed by [
30,
167,
171] for agricultural product traceability. For example, in [
171] an IoT solution uses blockchain to record information regarding the tea production based on 5 business processes: production plan, quality inspection, sales processing, product quality inspection and order delivery. In [
167] a production tracking system for agricultural cooperatives have been developed. In [
30] a similar system is being proposed but still in development stage.