Inspiration

In the midst of life's hustle, we all face the challenge of caring for our plants. Plant Butler, our brainchild, was born from the collective experience of busy schedules and a shared love for greenery. Tailored for everyone, not just students, Plant Butler is a smart system that harmonizes seamlessly with any hectic lifestyle. Using advanced technology to monitor soil moisture, light, and more, Plant Butler acts as a reliable green companion for those who are too busy to tend to their plants constantly. It's a realistic solution, not about laziness, but about simplifying plant care for all busy individuals. Plant Butler allows you to nurture your leafy friends effortlessly, providing a guilt-free approach to plant parenting. Whether you're a student, a white-collar professional, or anyone with a bustling schedule, Plant Butler is your ally in bringing nature into your life, making plant care a breeze for all kinds of busy people.

What it does and how we built it

Plant Butler optimizes plant care through a blend of soil moisture, light, air temperature and humidity sensors, ensuring a holistic approach to monitoring plant health. The system communicates sensor data to a Microcontroller Unit (MCU) via ADC, I2C, and two-line transmission. This processed data is then wirelessly transmitted to the user interface through an ESP32 WiFi module by the app Blynk. Additionally, a camera module through ESP32 captures real-time footage of the plant, providing a visual journey of its growth.

Actuators, including a servo motor for light sensor adjustment (controlled by PWM signals) and a pump for automated watering, are implemented for precise environmental control. For the motor, we have designed a transparent small box to secure it onto the baseboard, preventing any potential hazards caused by its rotation. When using the pump, in cases of insufficient water storage, a buzzer for low water level alerts, enhancing its capabilities to notify users promptly.

Covering a spectrum of engineering topics such as Timers, Interrupts, ADC, and Serial/Wireless Communication, this project embodies sophistication and precision in the realm of smart plant care systems. Plant Butler seamlessly integrates technology to simplify plant care for individuals with diverse lifestyles, embodying a comprehensive and innovative solution for green enthusiasts.

Challenges we ran into

During the development phase of coding, we faced a significant challenge: the variable readings from various task functions were conflicting, primarily due to the use of interrupts for ADC (Analog-to-Digital Converter) readings. To mitigate this, we initially set up an ADC interrupt that activates upon ADC conversion events. This interrupt routine was designed to systematically gather ADC readings from two photoresistors and a soil moisture sensor. However, in the context of bare-metal programming, the frequent employment of interrupts can inadvertently disrupt the main function's flow, thus affecting the execution of subsequent tasks. This issue becomes particularly pronounced when introducing an additional task that involves reading data from other sensors using a different communication method, as it risks compromising the integrity of these readings.

Moreover, when transferring data readings from the Atmega328P board to the ESP32 Wi-Fi board, we observed discrepancies between the data sent by the Atmega328P and the data received by the ESP32. A thorough examination of the code structure revealed that these inconsistencies were primarily due to the delays implemented in the main function.This delay in the main function likely led to timing mismatches between the two boards. The Atmega328P, while waiting during the delay periods, may not transmit data synchronously with the ESP32’s reception window. This asynchrony can result in data loss or misalignment, as the ESP32 might miss the transmission window or receive incomplete data packets. To address the data transmission inconsistencies between the Atmega328P and ESP32 boards, we focused on minimizing delay times in the main function. This involved eliminating unnecessary delays while retaining essential ones, such as those required for activating the relay to start the water pump and for operating the buzzer. This selective reduction of delays is a strategic compromise that enhances data transmission efficiency without compromising the critical functionalities of our system. By doing so, we aim to improve synchronization between the boards, ensuring more accurate and reliable communication

Accomplishments that we're proud of

Our system embodies essential comprehensiveness. It not only considers dynamic monitoring of plant growth through a camera but also provides users with real-time data updates on soil humidity, light, air temperature and humidity, and the operational status of the water pump via a web interface. This results in the creation of a cutting-edge and user-centric smart plant care system, addressing various aspects of plant health monitoring and care.

The design of the water pump alarm system is particularly notable, significantly assisting users in avoiding the issue of forgetting to timely replace water in the tank. Additionally, the design of a separate button-style switch effectively prevents the possibility of pump malfunction leading to potential system flooding. Both of these features contribute to a safer and more reliable plant care experience for users. Furthermore, our designed automatic light tracking function maximizes the effective absorption of sunlight by plants, promoting robust and healthy growth.

What we learned

In navigating the intricacies of real-time systems, our project underscored the critical importance of judiciously managing interrupt usage. The challenge of conflicting variable readings highlighted the delicate balance required to avoid disruptions to the main function's execution. We discovered that while interrupts are valuable for timely data acquisition, an excess can introduce unintended disturbances. This experience enhanced our understanding of interrupt-driven systems and the need for strategic implementation to maintain system stability.

The data transfer challenges between the Atmega328P and ESP32 boards provided valuable insights into synchronization complexities. Recognizing the impact of delays in the main function on data transmission accuracy, we learned to prioritize minimizing unnecessary delays while preserving those crucial for critical system functions. This aspect of the project deepened our comprehension of the importance of synchronization in multi-board communication systems and informed our strategies for achieving more accurate and reliable data exchange.

The experience of addressing discrepancies in data transmission prompted us to make strategic compromises to enhance overall system efficiency. By selectively reducing delays in the main function, we aimed to optimize data transmission without compromising essential functionalities, such as activating the water pump and buzzer. This decision-making process illuminated the nuanced trade-offs inherent in system optimization, teaching us to strike a balance between efficiency and core operational requirements in our plant care system.

In essence, this course has provided us with a comprehensive understanding of the entire lifecycle of IoT application development. It has been an immersive experience where theory met practice, and the resulting synthesis has equipped us with the knowledge and skills necessary to navigate the ever-evolving intersection of design theory and real-world application.

What's next for Plant Butler

If there are future opportunities to advance this project, we aspire to implement a comprehensive upgrade to our user interface. The enhanced interface will not only display real-time data but also generate monthly average reports for each data parameter. Additionally, the captured images from the camera will be utilized to create a unique growth journal for each plant, generating a photo every 12 hours to chronicle the distinctive journey of each individual plant.

Built With

  • atmega328p
  • atmel
  • blynk
  • esp32
  • solidworks
Share this project:

Updates