We wanted to link our interest in plants with our other interests, electronics and programming. Programming and electrical skills are becoming more and more necessary with technological advancements. With one of our teammates having bought an Arduino last year, we wanted to see how we could utilize the equipment we had on hand. An Arduino is a microcontroller that can be used for many different things such as automation and artificial intelligence. For the past year, we wanted to build a project the newly bought Arudino and the Turner Hacks Hackathon gave us a perfect opportunity.
One of the main issues that incited us to create this automatic watering system was plants dying when we were away from home. Going on vacations and not being able to water plants is one of the problems that we wanted to solve using our watering system.
What it does
The automatic watering system waters the plants based on the soil moisture level.
How we built it
First of all, the Arduino is used to power and program the entire circuit. The soil moisture sensor is used to pick up values depending on the soil moisture. The relay module is used to turn the circuit on and off. It is basically a switch that we can control using the Arduino. The breadboard is used to connect the positive and negative wires of the components. The 5V DC Motor is used to pump water into the plant, thus completing the automatic watering system.
After completing the circuit, we had to program the code for it. The code is written in the Arduino language which is based on C and C++. We had to use trial and error in order to find the perfect threshold for when the watering system will activate. The first 2 lines of the code initialize the variables and the void setup function makes the pin either an input or output. The void loop function checks the soil moisture sensor values every few seconds. Based on the readings, the Arduino will tell the 5V DC motor water pump to turn on. After a few seconds, the watering will stop and the code will return to the start and loop over again.
Challenges we ran into
Essentially, we came across a lot of complications during the actual making of this project. One issue was us facing trouble connecting the laptop with the Arduino since sometimes it could not detect the laptop and this made it a very tedious process to actually test the stages of the programming. Over the course of this 22 hour period, we had to change the code multiple times so that the project would successfully work since a lot of errors occurred in the previous models of the project restricting it from working at times. Out of everything we have done so far, it has to be said that the hardest part of this project was probably effectively collaborating, especially with our current times and us creating a tangible object. As a result of this, we looked towards the strategy of dividing and then conquering so that we could successfully offer a program that worked effectively and gave a complete solution to the problem we were exploring.
Accomplishments that we're proud of
We are proud that we finished our first hackathon as a team. We created a project that we are truly passionate about and we were able to program it in under 22 hours.
What we learned
During our journey, we learned a lot about how water systems in the actual world work. During our research phase, we had to first understand how exactly each element and language worked. Having no prior knowledge about most of the components and how exactly c++ is written, we watched a lot of tutorials and other similar projects to get a better understanding of all the parts. About 40% of the researching phase was us figuring out how each of the components can be connected to one another and do small tasks to achieve the bigger picture of the project.
What's next for AutoWater
We will take this to next level by implementing an LCD display that can provide information for not just the soil moisture but also humidity level and temperature near the plant.