2018-12-22 - By Thishone Wijayakumar, Jin Taek Lee, Ajo Cherian Thomas, Robert Elder
This article is a review of a capstone project completed by Thishone Wijayakumar, Jin Taek Lee and Ajo Cherian Thomas. The goal of the project was to create a hardware and software product that would automatically detect when the soil around a plant was dry and then use an Arduino to automatically control a relay which would turn on a small water pump. The source code for the project can be found on GitHub.
The final outcome of the project was a solution that fulfils the requirement of automatically watering the plants, but also monitors various other environmental parameters. The students also used an ultrasound sensor to detect the water level of the water source in order to provide empirical measurements of how much water was available or dispensed.
This project also builds on a similar one done previously that only focused on sensing data not reacting to it: Monitoring of Plant Growth on a Budget With Arduino.
The students also implemented a user interface using 'EzScrn' to display various values read from the sensors on a web page:
The system reads values from various sensors and updates them in real time in the UI above. Metrics that are monitored include air humidity, soil humidity, temperature, light levels and the current water level in the tank (using an ultrasonic sensor).
The system also includes several other features that are aimed at improving the practicality of the final solution. For example, the system also includes a learning feature that attempts to learn how much water will cause the plant to become adequately watered. There is also a mechanism that can detect if the water overflows from the container (due to a possible error condition) so that appropriate action can be taken to disable the system.
Below is a closeup of some of the most important parts of the system:
In the above picture, the module furthest from the camera with the blue cube on it is a relay that is used to turn on or off the water pump. The sensor in the middle monitors air humidity levels. The sensor closest to the camera is the ultrasonic sensor. It is difficult to see from the picture, but it sits on top of a hole cut into the container which contains the water that will be pumped to the plant. As the water level decreases from being pumped to the plant, the ultrasonic sensor can provide feedback information to know when the tank needs to be filled again, or possibly detect anomalies like accidental flooding conditions if the pump were to become stuck in the on state.
Materials and Circuit Diagram
The bill of materials for this project includes:
- A cheap Arduino from eBay ~$5.00 CAD.
- A capacitive moisture sensor purchased from eBay that had the title 'Soil Hygrometer Detection Module Moisture ESP32 DHT11 Sensor for Arduino CP2104' from eBay user alice1101983. ~$3.50CAD
- An air humidity and temperature sensor purchased from eBay that had the title 'DHT11 Temperature and Relative Humidity Sensor Module for arduino' from eBay user survy2014. ~$1.50 CAD
- A photoresistor from eBay that had the title '10 pcs Photo Light Sensitive Resistor Photoresistor Optoresistor 12mm GL12528' from eBay user umisky*2014. ~$1.00 CAD per unit.
- A 5V DC water pump purchased from eBay that had the title 'Ultra-quiet Mini DC 3-6V 120L/H Brushless Motor Submersible Water Pump New' from eBay user alice1101983 ~$2.00 CAD.
- A 5V relay purchased from eBay that had the title '5V 1/2/4/6/8 Channel Relay Board Module Optocoupler LED for Arduino PiC ARM AVR' from eBay user alice1101983 ~$1.50 CAD.
- A HC SR04 ultrasonic sensor purchased from an unknown location.
In this project it was decided to use a capacitive moisture sensor module since they should be less susceptible to corrosion than resistive moisture sensors.
Below is a circuit diagram for this project that the students created:
If you found this post interesting checkout the details in the source code on GitHub.