Automated Bamboo Watering System

An innovative solution for maintaining optimal bamboo health through automated irrigation

Project Overview: Automated Bamboo Irrigation System


This engineering project involves the design and implementation of a microcontroller-based irrigation system tailored for bamboo plants.


It integrates soil moisture sensors, control algorithms, and actuated components to deliver water precisely.


The system aims to eliminate the inconsistencies of manual watering through automation and regular wattering.

Furthermore, this system needs to be reliable, as it must be able to water consistently while I'm away on holiday.


This isn’t the first iteration of the project. I had earlier versions that were less efficient and more troublesome. But I believe I’ve now addressed those issues with this version, keeping it both compact and functional.


Part 1: 3D Modeling (with Fusion 360)

 

Objective:

3D modeling helps visualize the components and system before building. It ensures that parts fit together, provides clarity on dimensions, and helps avoid issues in assembly.

 

Processes:
I already had some experience with the software, so it took me little time to model everything—about two days. Perfecting the design, creating additional parts, and 3D printing brought the total project time to about a week.


What this part covers:

  • Design of Key Components: Model the main components of the system
  • Assembly Design: Show how various parts interact.
  • Prototyping for Testing: 3D modeling allows me to simulate the design and prototype quickly without physical construction.

 

Part 2: 3D Printing (with Bambu Lab A1)

 

Printer and Material:

I use a Bambu lab A1 3D printer.


Unfortunately, it doesn’t have an enclosure, which limits the materials I can use to weaker alternatives. However, despite this setback, the parts I  produce (using PLA) are always strong and rigid.

 

What this part covers:

  • Printed parts
  • Printing process
  • 3D printer

Part 3: Coding (C++ / Arduino)


The Arduino Mega runs the logic behind the watering system, responding to sensors and triggering the pump.


Control Logic:
A servo-controlled arm directs water to target areas. Two servos manage vertical movement, and a third controls the tip for precision.

Challenges:

  • Preventing cable tangling by returning the base to a “home” position

  • Syncing paired servos to move in opposite directions


Error Handling:
Before watering, the arm activates a sensor to check for water and confirm it's not stuck.

Part 4: Control Box for Components and Motors


Objective:
The enclosure protects all electronic components from damage while offering a simple and safe interface for the user.


Access Points:
Cables for reprogramming the Arduino Mega are easy to reach, allowing for quick updates. A built-in number pad lets users adjust watering time and manually stop the arm if needed.


Power Management:
The system runs on a 12V, 1A power supply, ensuring it stays operational for long periods—perfect for when I’m away on vacation.

Next steps and other considerations

 

Sensor Calibration: 

I had to calibrate the water sensor and set a difference limit to avoid false readings.

 

Testing and Troubleshooting:

The latest version is still in testing.

I replaced the stepper motor with a servo due to issues with a faulty driver that caused twitching when other components were active. A 10k resistor to ground didn’t fix it, but the new servo setup seems stable so far and it is looking promissing.

 

Final prototype