We believe that the best way to help the environment starts at home. That is why we fully support local gardeners who want to add a positive light to our community by using plants. Many plants die every year because they do not have the knowledge that is required in terms of gardening. This product works to explicitly give gardeners the knowledge they need to make their gardens thrive and save our community.
What it does
Hundreds of thousands of plants die every year because of overwatering and underwatering. Recognizing this, our idea works to solve one aspect of the problem by explicitly telling gardeners how much to water their plants.
How we built it
Backend is designed using Flask (micro web framework written in Python). In the backend, the program calls on the weather station API to receive data on future forecasts (Temperature, Precipitation, Solar Radiation). The data is then applied to a uniquely designed algorithm that calculates the amount of water (in liters) that is required to fill the plant’s water capacity to 100%. The algorithm adjusts the output depending on the number of hours it has been since the user has last watered the plant. The Algorithm uses Hargreaves Model: ET0 = 0.0135 (Temperature + 17.78) * Solar Radiation/day. Conversions are required for specific units but the algorithm collects Temperature (degrees Celsius), Precipitation (mm/meter^2), and Solar Radiation (MegaWatts/sec). Once the backend completes its calculations, Flask sends this information to the front-end. Front-end is designed in HTML/CSS with many hours spent on color, formatting, text, etc. Front-end also includes a welcome page and applies the algorithm for specific plants.
Challenges we ran into
Since the whole team was comprised of beginners in coding (this was the first hackathon for 3 of us), there were many challenges faced.
- Using Flask: Flask was a challenging language to use in terms of its tedious installation process and importing the proper files. After 2-3 hours we finally got it to work where we used API code for getting data from the weather station.
- Algorithm: The algorithm was difficult to compose because of the many different units. The API returned values that were in completely different units than what the algorithm required. To solve this, we wrote in conversion factors in our code to properly calculate the algorithm (Took 2 hours).
- Calling Isolated Data from the API: In order to improve the program, our initial plan was to calculate the hourly rate that water is evaporating/transpiring from the plant. However, upon further experimentation of the data from the API, we had trouble taking the specific temperature for each hour because of the bad organization of the list that the API returned. To solve this, we calculated the average amount of water leaving the plant rather than the hourly rate (Took 5-6 hours).
- HTML/CSS Working: As most of us were beginners, we had almost no experience with HTML and CSS in terms of coding. After learning the language, we worked to improve the display to tailor it to our liking (Took 16-18 hours).
Accomplishments that we're proud of
- Learned HTML/CSS
- Learned Flask from Python
- Developed a working algorithm
What we learned
As a team that was fairly inexperienced in coding, we learned a lot. We learned:
- Flask (which uses Python) and how to use it to call API
- How to get an API key from openweathermap.org/api
- Parsing data returned from calling the API
- HTML/CSS advanced web design
What's next for Hydro Grown
To help in the efforts of gardening, water is not the only factor to keep in mind. This product can easily be expanded to advise the user on the types of soil, how much fertilizer to use, and the most optimal arrangement of plants. It would act as the gardener’s guide.