Crafting experience...
3/29/2026
A Project Made By
Submitted for
Built At
Hardware Hack
Hosted By
What is the problem you are trying to solve? Who does it affect? What is your idea? How does it fix the problem?
The problem is finding the optimal plant that fits the environment the user lives in. Thus, comes along the PlantWise, focusing on providing a quick, yet informative check! This check fixes the problem by providing the user a score that shows how well a specific plant can thrive in their location. In other words, this project focuses on reducing the death of plant life that comes with planting wildlife that are not native to this land. To put it simplify, it ensures both the plants and the already ecosystem are symbiotic (or neutral) in nature!
How do all the pieces fit together? Does your frontend make requests to your backend? Where does your database fit in?
From the hardware aspect, the ESP32-S3 microcontroller serves as the brain of the device, running CircuitPython to coordinate all components. A DHT11 sensor collects temperature and humidity data while a photoresistor measures ambient light levels. The user scrolls through 200 plants using physical push buttons, with the plant name and suitability score displayed on a 16x2 LCD screen. An RGB LED provides instant visual feedback — green for suitable, yellow for moderate, and red for unsuitable conditions.
On the AI side, we trained a Decision Tree Regressor using scikit-learn on approximately 20,000 generated data points derived from real plant growing condition ranges. The trained model was exported as a pure Python function containing the learned decision logic, allowing it to run directly on the microcontroller with zero external dependencies. When the user selects a plant, the model takes the live sensor readings and the plant selection as inputs and predicts a suitability score from 0-90%. The plant condition dataset of 200 houseplants was compiled from horticultural guidelines covering ideal temperature, humidity, and light ranges.
What did you struggle with? How did you overcome it?
Oh my god, we're going to be completely honest: The entire project was a challenge. We first had trouble with the wiring of the different electrical components to the Arduino and then realized that we had to rewire the LCD again because we miswired one of the wires. Then, after rewiring, we realized that there was something wrong with the code, so we thought we fixed the code and decided to test both the code and the hardware again, and it still didn't work. Then we actually fixed the wiring and the code, and then realized that in order to have an actual live dataset inputted into the device itself, we needed to switch from an Arduino to an ESP32 microcontroller, which is only coded in Python, so we had to reprogram the datasets from the software side and rewire everything from the hardware side. On top of all that, we faced persistent file transfer issues when copying code to the ESP32-S3 — files would corrupt during USB transfer, showing 0 bytes despite appearing in the directory. We solved this by combining all our source files into a single code.py, which transferred successfully.
What did you learn? What did you accomplish?
We learned that failure is one of the best and funniest things that can happen as innovators. It is so funny to realize you spent all this time trying to make something correct the first time for hours, only to find out that you were moving in the complete opposite direction and now have to spend more time to get back on track to even be close to finishing the project. Amidst the very brief crashouts, failure is probably one of those moments where the best thing to do is just laugh about your failures (and your stupidity) before going back and giving it another go.
For most of our team, this is also our first hackathon, so we are learning so many things not only from the workshops that are being presented to us amidst our hacking sessions, but from figuring things out ourselves. We are also making new friends with one another, which is cool.
What are the next steps for your project? How can you improve it?
The next steps include designing a proper enclosure with larger, more accessible buttons for improved usability. We would also like to add a calibrated lux sensor for more accurate light readings, expand the plant database beyond 200 species, implement WiFi connectivity to pull real-time weather data for outdoor placement recommendations, and add a recommendation mode where instead of the user selecting a plant, the device suggests the top 5 plants best suited for the current environment.