## Inspiration

\*\*\* SEE GITHUB LINK FOR BOTH DEMO VIDEOS (Devpost limits to only one video) \*\*\*

Taking care of plants is surprisingly hard. Let's be honest here - almost everybody we know has lost a plant or two (or many) due to poor maintenance. Appliances and tools within our homes are adopting the newest technologies and becoming increasingly automated - what if we apply these advancements to plant care? How far can we take it?

Our group is also interested in the artistic side of the project. Nature and technology are often at odds with one another; we are constantly reminded of the toll that industrialization has taken on our environment. But is it possible to create something where technology and nature coexist, in a symbiotic relationship?

## What it does

The iPot Lite is, at its core, an autonomous flower pot. The iPot Lite has two main functions: First, it is able to track and follow the location of brighter light sources (such as sun pouring in through a window) in order to give its plant maximum exposure. Secondly, when watering is required, the plant can seek out a fountain location using its camera system and drive over. We envision a system similar to a hand sanitizer dispenser, except filled with water.

## How we built it

The flower pot sits on a mobile base driven by two DC motors along with a caster wheel, which allow it to traverse a wide variety of surfaces. The majority of the prototype is built from wood. The processing is handled by an Arduino Uno (driving, edge detection, light detection) and a Raspberry Pi 4 (image recognition). Photoresistors mounted near the top of the pot allow for tracking light sources. Ultrasonic sensors (downwards and forward-facing) can track walls and the edges of surfaces (such as the side of a coffee table). A camera mounted on the front uses OpenCV to extract, isolate and recognize specific colors, which can be used to mark fountain locations.

## Challenges we ran into

We experienced major issues with camera implementation. The first camera we tried could not be powered by the Pi. The second camera was impractical to use, as it did not have a common interface. The third camera was found to be too slow (in terms of frame rate). The fourth camera was broken. We finally found a fully functional camera on our fifth attempt, after several hours of troubleshooting. Space limitations were also another concern - the footprint of the robot was quite small, and we realized that we didn't have time/resources to properly solder our circuits onto breakout boards. As such, we had to keep a breadboard which took up valuable space. Powering different components was also difficult because of a lack of cables and/or batteries. Finally, fabricating the physical robot was difficult since shop time was limited and our project contains a lot of hardware.

## Accomplishments that we're proud of

The two main functions of the iPot Lite as described are generally functional. We were quite pleased with how the computer vision system turned out, especially given the performance of a Raspberry Pi. We worked extremely hard to create control logic for tracking light sources (using estimated direction of light vectors), and the final implementation was very cool to see. The custom chassis and hardware were all built and integrated within the makeathon time - no earlier design work was performed at all. The final idea was only created on the morning of the event, so we are quite happy to have built a full robot in 24 hours.

## What we learned

Hardware selection is critical towards success. In our case, our choice to use a Raspberry Pi 4 as well as our specific set of chosen sensors greatly influenced the difficulties we faced. Since we chose to use a Raspberry Pi 4 with micro-HDMI output, we were not able to interface with the board without a headless SSH interface. The Raspberry Pi Camera worked remarkably well and without much difficulty after failing to integrate with all of IP webcams, USB Webcams, and the M5 Camera. We initially wanted to use the Huawei Atlas, but found that its power requirements were too high to even consider. We learned that every hardware choice greatly influenced the difficulties faced towards project completion, as well as the choice of other hardware components. As a result, integration and communication is incredibly important to discover incompatibilities where they exist in the initial designs, and the most successful strategy is to integrate early and iterate across all features simultaneously.

## What's next for iPot Lite

We really wanted to add wireless charging or solar panels for total self-sustainability, but unfortunately due to the limited parts selection we were unable to do so. We also wanted to create additional tools for things like data logging, reviewing and settings configuration. A mobile companion app would have been nice, but we didn't have time to implement it (could be used for tracking plant health). We toyed with additional ideas such as a security camera mode using motion detection, or neural-net based plant identification. Unfortunately due to time constraints we weren't able to fully explore these software features, but we were glad that we finished most of the hardware.
## Inspiration

Our inspiration for Smart Sprout came from our passion for both technology and gardening. We wanted to create a solution that not only makes plant care more convenient but also promotes sustainability by efficiently using water resources.

## What it does

Smart Sprout is an innovative self-watering plant system. It constantly monitors the moisture level in the soil and uses this data to intelligently dispense water to your plants. It ensures that your plants receive the right amount of water, preventing overwatering or underwatering. Additionally, it provides real-time moisture data, enabling you to track the health of your plants remotely.

## How we built it

We built Smart Sprout using a combination of hardware and software. The hardware includes sensors to measure soil moisture, an Arduino microcontroller to process data, and a motorized water dispenser to regulate watering. The software utilizes custom code to interface with the hardware, analyze moisture data, and provide a user-friendly interface for monitoring and control.

## Challenges we ran into

During the development of Smart Sprout, we encountered several challenges. One significant challenge was optimizing the water dispensing mechanism to ensure precise and efficient watering. The parts required by our team, such as a water pump, were not available. We also had to fine-tune the sensor calibration to provide accurate moisture readings, which took much more time than expected. Additionally, integrating the hardware with a user-friendly software interface posed its own set of challenges.

## Accomplishments that we're proud of

The rotating bottle, and mounting it. It has to be rotated such that the holes are on the top or bottom, as necessary, but the only motor we could find was barely powerful enough to turn it. We reduced friction on the other end by using a polygonal 3d-printed block, and mounted the motor opposite to it. Overall, finding an alternative to a water pump was something we are proud of.

## What we learned

As is often the case, moving parts are the most complicated, but we also are using the arduino for two things at the same time: driving the motor and writing to the display. Multitasking is a major component of modern operating systems, and it was interesting to work on it in this case here.

## What's next for Smart Sprout

The watering system could be improved. There exist valves that are meant to be electronically operated, or a human designed valve and a servo, which would allow us to link it to a municipal water system.
## Inspiration

Jeremy, one of our group members, always buys new house plants with excitement and confidence that he will take care of them this time.. He unfortunately disregards his plant every time, though, and lets it die within three weeks. We decided to give our plant a persona, and give him frequent reminders whenever the soil does not have enough moisture, and also through personalized conversations whenever Jeremy walks by.

## What it does

Using four Arduino sensors, including soil moisture, temperature, humidity, and light, users can see an up-to-date overview of how their plant is doing. This is shown on the display and bar graph with an animal of choice's emotions! Using the webcam which is built-in into the the device, your pet will have in-depth conversations with you using ChatGPT and image recognition.

For example, if you were holding a water bottle and the soil moisture levels were low, your sassy cat plant might ask if the water is for them since they haven't been watered in so long!

## How we built it

The project is comprised of Python and C++. The 4 sensors and 2 displays on the front are connected through an Arduino and monitor the stats of the plant and also send them to our Python code. The Python code utilizes chatGPT API, openCV, text-to-speech, speech-to-text, as well as data from the sensors to have a conversation with the user based on their mood.

## Challenges we ran into

Our project consisted of two very distinct parts. The software was challenging as it was difficult to tame an AI like chatGPT and get it to behave like we wanted. Figuring out the exact prompt to give it was a meticulous process. Additionally, the hardware posed a challenge as we were working with new IO parts. Another challenge was combining these two distinct but complex components to send and receive data in a smooth manner.

## Accomplishments that we're proud of

We're very proud of how sleek the final product looks as well as how smoothly the hardware and software connect. Most of all we're proud of how the plant really feels alive and responds to its environment.

## What we learned

Making this project, we definitely learned a lot about sending and receiving messages from chatGPT API, TTS, STT, configuring different Arduino IO methods, and communicating between the Arduino and Python code using serial.

## What's next for Botanical Bestie

We have many plans for the future of Botanical Bestie. We'd like to make the product more diverse and include different language options to be applicable to international markets. We'd also like to collab with big brands to include their characters as AI plant personalities (Batman plant? Spongebob plant?). On the hardware side, we'd obviously want to put speakers and microphones on the plant/plant pot itself, since we used the laptop speaker and phone microphone for this hackathon. We also have plans for the plant pot to detect what kind of plant is in it, and change its personality accordingly.