Introduction: Water Bot - Never Forget to Water Your Plants Again!

About: 15 years old and likes to run. I am from Colorado and in 11th grade.

I made this simple robot to help me remember to water my plants. The robot will turn on when watered, and turn off when the plant needs more water, reminding you to keep your plant alive.

Supplies

Needed for this project:

  • Arduino Uno
  • Jumper Wires
  • 2 LEDs
  • 3D Printer
  • 9 Volt Battery
  • 9 Volt - Arduino Cable

Optional:

  • Breadboard
  • Button

Tools:

  • Soldering Iron
  • Hot Glue Gun
  • Pliers
  • X-Acto Knife

Step 1: Design and Print

First I designed the base, head, and body using simple shapes in Tinkercad. Then I printed them.

Here are the print settings:

  • Layer Height : 0.2mm
  • Printing Temperature : 200C
  • Base Temperature : 60C
  • Support Angle : 65 degrees
  • Build Plate Adhesion : None

Here are the files to 3D print:

Step 2: Test Electronics

Here is the wiring and the code. The first thing I did was set up the circuit in Tinkercad. Then, I used the breadboard to test the electronics then soldered later. I want the robot to stay on for a while, then turn off reminding me to water. That's why I set the delay for 10 seconds in the code, because I will change it to 2, 3, or 4 days after I am sure the code works. (It isn't recommended to have a delay for more than a few milliseconds, but my code is so simple that it doesn't really matter.) When you plug in the Arduino, the LED should be off until you press the button, then turn on and remain on for 10 seconds. The button will be replaced my the robots arms, which will connect when the plant is watered because water conducts electricity. The resistors I used were 220 Ohms.

Here is the code:

int LED = 12;

int BUTTON = 4;

void setup() {

// put your setup code here, to run once:

pinMode(BUTTON,INPUT);

pinMode(LED,OUTPUT);

}

void loop() {

// put your main code here, to run repeatedly:

if

(digitalRead(BUTTON) == HIGH){

digitalWrite(LED,HIGH);

}

else{

digitalWrite(LED,LOW);

}

if

(digitalRead(LED)==HIGH)

delay(259200000);

else

digitalWrite(LED,LOW);

}

Step 3: Soldering

Here is how I wired everything for the final build.

First, I plugged in the wires that connected to the Arduino and bent them to the underside of it.

Then, I placed the base on top.

Next, I twisted all of the components together and soldered.

To test the Arduino, I uploaded the code then plugged the circuit in to a 9 volt battery and connected the two loose wires, which made the LEDs turn on.

NOTE: The first time I wired this I did it wrong, and the LEDs were way to dim. Make sure to wire the LEDs in paralleland not series. I am pretty sure that was the problem, or I just wired it wrong some other way.

Step 4: Assembly

After getting all the wires soldered, its time to assemble the robot.

I stuck the 9 volt - Arduino cable through the whole in the base, and then plugged in the 9 volt.

Then, I put the body over all of the wires, and stuck the two loose wires (aka. the arms), through the arm holes in the body.

After that, I hot glued the LEDs into the eye holes in the head.

To finish the assembly, I hot glued the head onto the body.

NOTE: I didn't glue the body onto the base so that I could access the battery later.

Make sure to test if it is still working.

Step 5: How Often to Water?

Every plant needs to be watered a different amount, but the question is, how often? There are 4 different phylum levels in the plant kingdom (Kingdom Plantae), Phylum Filicinophyta, Phylum Coniferophyta, Phylum Angiospermophyta, and Phylum Cycadophyta. Most house plants are in Phylum Angiospermophyta (aka flowering plants), which includes plants such as cactuses, flowers and trees. All plants need to be watered a different ammount, even when they are in the same phylum. It is recommended to water enough to keep the soil moist. Since my plant is a cactus, I want to water it every 3 days. That means the delay in my code will have to be 3 days long.

Step 6: A Little Bit of Math

There is a small problem. Arduino measures delays in millisecond, which is 1/1000 of a second. I want to have a 3 day delay. We're going to have to use a bit of math.

First, I found how many milliseconds in a minute by multiplying 1000 by 60. Then, I multiplied that by 60 to find how many milliseconds are in an hour. Finally, I found out how many seconds in a day by multiplying that by 24.

After that, I found out how many milliseconds in 2,3, and 4 days, so that if you get different plant, you can change the code to water a different amount.

Step 7: Finished Water Bot!

Now the Water Bot is finished! Your plants will be much happier with this simple robot, and you won't feel guilty when they somehow, inexplicably die anymore.

The End!

Tinkercad Student Design Contest

First Prize in the
Tinkercad Student Design Contest