Inspiration
We love bringing nature into our living spaces. However, despite our best effort . . . out cacti and succulents often struggle to survive. As many other urban gardeners, we lack the knowledge necessary to notice all the clues a plant might give when they are under stress. Therefore, we start to wonder if our AI friend could help us with this, given their wide knowledge and huge memory. And this idea, inspires us to create a system that helps our plants do their own self-care routines!
What it does
The whole system acts as an automated greenhouse. When any plant is placed on the base, it automatically identifies the plant species and morphs into its ideal habitat.
Specifically, our "greenhouse" maintains soil moisture within a suggested range tailored to each species. If the humidity is not up to standard when checked, the system autonomously triggers the water pump. Furthermore, the base also features a LED light that automatically cycle on and off, ensuring that the plant receives its exact daily light hours requirement.
Beyond basic automation, the system is capable of performing a health diagnostic for the plant everyday. Based on the daily captured images of the stems and leaves, it will check if there are any early signs of stress or disease. And if there are issues, it will send an instant diagnosis with explanations directly to your phone, allowing you to intervene before the problem grows bigger.
Manual controls are also enabled for convenience!
How we built it
We used our redundant Lego pieces at home to build the base combined with all these following components:
- ESP32 to connect sensors with our webserver.
- ESP32-Camera to capture images of the plant (for identification and health analysis).
- Soil Humidity Sensor to track current soil moisture.
- Ultrasonic Sensor to track the water level in the tank and gives alerts when a refill is required.
- Water Pump to water based on the plant's needs.
- NeoPixel LED to provide lighting for the plant. After completing our base, we developed a Java Spring Boot backend that utilizes WebSocket to manage the bidirectional data flow between the hardware base and the mobile interface. Our mobile interface, built using Kotlin and Jetpack Compose, is our primary command center with both manual override options and a real-time dashboard that keeps track of all the automated activities.
Challenges we ran into
- We encountered quite a few obstacles since this is also our first time building an entire ecosystem within 48 hours. But we believe our biggest hardship was managing and integrating different platforms to work together as one single piece.
- Testing the logic flow was also very heavy, complex and time-consuming.
- Nevertheless, we also encountered great difficulty with assembling the electronic parts since they were all so small and delicate.
Accomplishments that we're proud of
We all have a basket full of 3 AM ideas and half-finished repos. Today, we finally out-grown that. We are super proud to announce that one of our most ambitious projects finally made the leap from a "what if" to a fully functional product! This also marks our first ever journey of building a system with both hardware and software together.
What we learned
This project has been a great learning experience to us. We learned a lot on how to build an ecosystem from scratch, managing bidirectional data flow between our physical hardware, a backend server, and a mobile client. Additionally, the strict time constraints also taught us a critical lesson in software architecture: the importance of simplifying our implementation and resisting the urge to over-engineer (we really did try!).
What's next for Planty Nanny
In our next chapter, we aim to drastically improve the physical aesthetics of Planty Nanny base. We will also focus on enhancing real-time synchronization across platforms and, most importantly, upgrading to a high-resolution camera to ensure Gemini AI receives the clearest data for its health diagnostics and plant identifications.
Log in or sign up for Devpost to join the conversation.