In  , the authors developed an Arduino-based drip irrigation system using the Internet of Things (IoT). This system allows irrigation to take place more efficiently, based on soil humidity, temperature and pH values sent to the microcontroller (Arduino UNO) which drives the solenoid valve via the driver circuit transistor (BC547). Based on the sensor measurements, at pre-determined thresholds, automatic irrigation is accomplished. The buzzer comes on, based on sensor values and these values are updated on the web as well as on an Android mobile device. Using the temperature and pH level measurements, climatic and soil conditions from the field, the required fertilizers for the crops are suggested by the system. This improves the method of cultivation and leads to better productivity.
In  , a web-based automatic irrigation system using Raspberry-Pi processor on embedded Linux was developed. Using this system, the direction of the water flow in the pipes is automatically determined by means of a DC motor. It makes use of a soil moisture sensor, temperature sensor, humidity sensor, Raspberry Pi microcontroller and a DC motor. The temperature sensor monitors the temperature continuously and compares this with the set temperature pre-programmed in the microcontroller after it has been read and fed to the microcontroller. The humidity sensor is used to measure the amount of water vapour in the air. Finally the information about the motor operation and direction of water on the farm field are sent to the mobile message and Google mail account of the user.
In  , the authors designed a smart irrigation system using a PROTEUS software and implemented it using the Arduino microcontroller. The system programmed in C programming language operates automatically by sensing the moisture level of soil via the soil moisture sensor and turns ON/OFF the pump using a relay without the intervention of the farmer. In this way, it is made more convenient and water wastage is reduced. The sensing arrangement and the microcontroller are interfaced via an Op-Amp which acts as a comparator. When the microcontroller receives the signal, an output that drives the relay is produced and the water pump is operated. A Liquid Crystal Display (LCD) also interfaces with the microcontroller and it is used to display the soil moisture content as well as the status of the water pump.
In an attempt to develop a smart irrigation system, the authors use different types of controllers such as Programmable Logic Controller   and Raspberry Pi   , 16F877 PIC micro-controller  , Atmega 382 on the Arduino Uno   . There have been some attempt to address the issue of water management in irrigation system. For example, in  , the authors use 8052 microcontroller, ADC and sensors for irrigation purpose. The system is designed such that during operation, the wet zones are bye-passed while dry zones are irrigated. The zone detection is carried out using soil moisture content sensors. This is an attempt to ensure adequate water management. In many of the previous studies, the problem of water scarcity is not adequately addressed.
This paper therefore seeks to address this challenge by implementing a new approach that ensures prioritizing of irrigation pumps to ascertain that the crops are watered in line with their varying water needs and based on the amount of water in reservoir. This system also ensures the reuse (recycling) of water during irrigation and that the health of irrigation pumps is preserved.
2.1. Sensor and Data Acquisition
This stage consists of the moisture content sensor and the ultrasonic sensor as shown in Figure 1. The moisture content sensor measures the amount of water in the soil, converts this soil moisture content into electronic signal and sends the signal to the microcontroller. The ultrasonic sensor used is positioned on the reservoir. It functions as a transducer, converting water depth in the reservoir (distance of water surface from sensor) into electronic signals sent to the micro controller. It must be noted however that the electronic signals from the two sensors are analog signals.
The controller used in this study is an Atmega 382 microcontroller on Arduino Uno. Its work is to coordinate all the activities of the smart irrigation system. The micro-controller receives measured values from the two sensors in form of analog voltages and digitizes them. It then computes the appropriate control scheme meant to implement the irrigation based on the soil moisture content and level of water in the reservoir. The controller output is sent as a digital control to the irrigation pumps via the relays. The status of the system including the water level, moisture content and the pumps activated for irrigation are displayed on a Liquid Crystal Display (LCD) connected to the micro-controller. The controller derives its power from a 12 volts DC source. This is illustrated by the in Figure 2. In this work, algorithm was developed in the Arduino Integrated Development Environment (IDE) using the Arduino script programming language and uploaded to the microcontroller. The algorithm enables the system to automatically start/stop pumps when the moisture content reaches present thresholds; determine the number of pumps to be activated at any instant and prioritize the location to be irrigated based on water level in the reservoir.
2.3. Water Optimization
This stage ensures that water is adequately managed in the process of irrigation. It uses the ultrasonic sensor to measure the level of water in the reservoir and sends this to the microcontroller. Based on this the microcontroller decides which of the pumps to be deployed for irrigation at a particular time. As shown in Figure 1, it comprises of relays, pumps, sprinklers that release water on the irrigation site. Pumps 1, 2 and 3 are designed to be feed forward pumps while pump 4 is a feedback pump. This means pumps 1, 2 and 3 pump water through the sprinklers to the irrigation site comprising of farm A, farm B and farm C respectively. The feedback pump recycles excess water from farm A, farm B and farm C back to the reservoir. This is illustrated in Figure 1. This is a way of avoiding water wastage and maintaining continuous availability of water for irrigation purposes. The power for the relay and the pumps are derived from a 12 volts DC supply.
Figure 1. Block diagram of the smart irrigation system.
Figure 2. Component arrangement of the developed laboratory-scale model of smart irrigation system.
In order to implement the design, a laboratory-scale architectural model of a smart irrigation system was constructed as shown in Figure 3, while the flow chart of the developed algorithm is shown in Figure 4.
The model comprises of sensors, control unit, a farm house, reservoir, three feed forward pumps 1, 2, 3 and a feedback pump 4. The flow chart of the control algorithm is shown in Figure 4.
In order to test the developed system, it was tested with different soil samples (dry, moist, and wet) with a moisture content of 6%, 84% and 96% respectively.
Figure 3. Labelled diagram of the developed laboratory-scale model of smart irrigation system.
Figure 4. Flow chart of the developed irrigation system.
It was also tested at different water levels of between 5 cm and 7 cm, 8 cm and 10 cm and 11 cm and 15 cm. It should be noted that the laboratory scale reservoir used in this study has a depth of 15 cm at full capacity. When the moisture content sensor is inserted into dry soil, it senses the need to switch on the pumps but goes to first check the level of water in the reservoir. If the reservoir is empty or water is very low (0 and ≤5), none of the pumps is activated. This is illustrated in Table 1 row 1.
When the water level was increased but still low, between 5 cm and 7 cm (≥5 and ≤7) pump 1 and the feedback pump 4 are ON. When the water level is medium, between 8 cm and 10 cm (>7 and ≤10) pump 1, 2 and the feedback pump 4 are ON. When water level is high, between 11 cm and 15 cm (>10 and ≤15) pump 1, 2, 3 and the feedback pump 4 are ON.
These cases are outlined as shown in Table 1.
It could be observed that the developed algorithm bears into consideration the health of irrigation pumps by deactivating all pumps when there is no water to pump thereby saving cost and downtime due to pump damages. It could also be seen that operation of the pumps are prioritized in relation to water availability.
For instance, pump 1 is highest in priority (3) as shown in Table 1. It is ON most of the time and so farm A would be best suitable for crops requiring large amount of water. Pump 2 is started not so often. It has medium priority (2) and so would be best located in farm B where crops requiring medium amount of water would be planted. Pump 3 is rarely started, only when the reservoir is at high level or full. It has low priority (1). As such, it would be best located in parts of the irrigation site known as farm C where crops requiring very low amount of water are planted.
The feedback pump used for recycling water back to the water reservoir is another merit of this work. Water collected through rain water harvesting or excess water from the irrigation site that would have been wasted as run-off are harvested and feedback into the system. The developed system would be useful in settings where water scarcity is a challenge to the practice of irrigation.
Table 1. Prioritization of pumps based on the level of water inreservoir.
A, B and C represent different farm sections on the laboratory scale architectural model. Pump status: 0 = pump is OFF. 1 = pump is ON.
A smart irrigation system that optimises water usage is developed. This system guarantees the longevity of irrigation pumps; prevents water wastage through water recycling and prioritizes pump operations based on the level of water in reservoir. This way, it ensures that different plants are irrigated in relation to their varying water needs for effective growth. It would be useful in places where water scarcity is a challenge to the practice of irrigation.
 Parameswaran, G. and Sivaprasath, K. (2016) Arduino Based Smart Drip Irrigation System Using Internet of Things. International Journal of Engineering Science and Computing, 6, 5518-5521.
 Prasanna, G., Parvatham, S. and Krishna, S. (2016) Web Based Automatic Irrigation System Using Raspberry Pi Processor on Embedded Linux. International Journal and Magazine of Engineering, Technology, Management and Research, 3, 1036-1039.
 Tyagi, A., Gupta, N., Navani, J.P., Tiwari, M.R. and Gupta, M.A. (2017) Smart Irrigation System. International Journal for Innovative Research in Science & Technology, 3, 9-12.
 Subalakshmi, R., Amal, A.A. and Arthireena, S. (2016) GSM Based Automated Irrigation Using Sensors. International Journal of Trend in Research and Development, 4-6.
 Roy, D.K. and Ansari, M.H. (2014) Smart Irrigation Control System. International Journal of Environmental Research and Development, 4, 371-374.
 Akubattin, V.L., Bansode, A.P., Ambre, T., Kachroo, A. and SaiPrasad, P. (2016) Smart Irrigation System. International Journal of Scientific Research in Science and Technology, 2, 343-345.
 Kakade, K.R., Pisal, A.R., Chavanss, A.V. and Khedkar, S.B. (2017) Smart Irrigation and Crop Suggestion Using Raspberry-Pi. International Journal of Scientific Research in Science and Technology, 4, 235-241.
 Rajpal, A., Jain, S., Khare, N. and Shukla, A.K. (2011) Microcontroller-Based Automatic Irrigation System with Moisture Sensors. Proceedings of the International Conference on Science and Engineering, 94-96.