Introduction: Garden Guardian - an Automated Plant Waterer

I love plants ! I love having house plants to decorate a space, they make the room seem so alive. The upkeep doesn't bother me either, I like having to take care of something. However… Over winter break of my sophomore year of college, I was unable to water any of my plants for a whole month, and the consequence of that was brutal. Two of my Golden Pothos unfortunately wilted because I wasn't able to water them ! I vowed to never have something like that happen again, and a course I was taking while at CU Boulder gave me a perfect reason to start on a project right away ! I decided to make an automated plant watering system for when I'm away from my plants for long periods of time.


This device has a lot of working components so I'll break it down. It has two moisture sensors, the first is meant to go into the pot you favorite houseplant resides in, and the second which is meant to reside in your water reservoir of choice. The first water sensor sends a value to the Arduino which determines whether the pump is will turn on or not, while the second is intended to alert the owner when the water reservoir is running empty. Also found is a LCD screen which is meant to make use of the product easier by communicating whether or not the pump is on, or if the reservoir is empty. And finally there is the 5-6v water pump.

Supplies

  1. Arduino Uno R3
  2. 2 Moisture Sensors
  3. LCD 1602 Screen
  4. Potentiometer
  5. 5-6V Water Pump
  6. MOSFET Transistor
  7. 9V Battery and port to connect to an Arduino
  8. 4 AA Batteries and a battery pack able to be connected to your circuit
  9. Male to Female and Male to Male Wires

Step 1: Before You Begin

It is easy to get too excited about the project and try to set the final version up immediately, however before anything gets too serious you need to calibrate your moisture sensor ! All sensors could give you slightly different readings for the same soil, so it's paramount to set your parameters to your sensor.

You can see here before any soil or water is introduced, the moisture sensor is picking up the moisture in my hand and is giving a red light. When my thumb isn't on the sensor it will switch to green. I was skeptical at this point in my process so something as simple as that gave me so much excitement !

To try this on your own, recreate the circuit I've put above and use the code found here !

Step 2: Calibrating Your Sensors

There's no need to try to hook up both sensors at once while doing this, go ahead and just replicate this with each sensor.

 Run three tests on both wet and dry soil to measure the readings. You can set up your data findings in this fashion. 

Step 3: Putting Together the First Iteration

This is my first iteration of my project. Here I only have one moisture sensor, a water pump, and a couple of LED's to signal whats going on. This iteration of the project definitely works, however I knew I could do better. If this looks fine to you, feel free to replicate ! The code for this iteration is in the link I gave earlier. Don't forget to change your wet and dry variables to the values you found during calibration !

Pay special attention to the wires in relation to the MOSFET. Looking at the MOSFET, with the writing facing you, the pin on the far left is the gate of the device, and you need to ensure that the wire connecting to it is hooked up to your Arduino’s 11 pin. The middle pin on the MOSFET should be connected to the ground of your water pump. The far right MOSFET pin needs to be connected to the circuit’s ground.

Hooking up your water pump to the breadboard may be a little tricky. I had to solder the wires onto the device, and I then covered them with some heat shrink to ensure nothing affected the connection. Before putting on the heat shrink, it might be a good idea to test if the water pump could create a closed circuit by using an oscillometer.


And please don't make fun of me for my solder skills, it was my first time. :)

Step 4: What I Could Have Done Better

I loved every step of making this project, and was very proud I managed to even get it to work at all. It was my first time making anything like this, but I feel like that's clear to see. I knew I could do better, and after getting some much needed feedback from my peers, I knew what to do. I knew I needed to build an enclosure for the system, there needed to be an external battery for the battery and wall plug in capability, and and LCD for system interaction was necessary.

So I got to work.

Step 5: Prepping for the Final Product

Here you can see I've added a few things. First there is now a second moisture sensor, then I added a LCD screen, and then in the Tinkercad screenshot you can see an external battery. Something that didn't go as well with the first iteration is that the water pump wasn't getting enough power, and with the additions of the extra sensor and LCD screen it definitely wasn't getting enough power. Now the LCD and two sensors are now isolated from the water pump which is powered by 4 AA batteries.

The images could be a little confusing so I'll break it down. The two moisture sensors are connected to the Arduino's analog input pins, its digital pins for power, and then straight to the circuits ground. The LCD is definitely the trickiest part, but the code found here should help you figure out where all the wires go. The water pump is set up on the other side of the breadboard and its power is run through a MOSFET. That part of the breadboard is powered by the external battery source, though it still shares a common ground so be careful of that.

Now that I that I had ensured the circuit was working, I needed to make a case for my project !

Step 6: Making the Enclosure

To make the enclosure for my device, I measured out roughly the the dimensions I wanted and then went to a website called makercase. If you haven't heard of makercase, it's an amazing tool for those that want to make a simple enclosure and aren't that comfortable designing ! There are plenty of customizable options, so check it out if you haven't. I downloaded the .svg file and opened it in Adobe Illustrator, after I made sure all of my lines were set to a stroke of .001 and made red. This was done to prep for Rhino 7 which is the program I used to laser cut. From there I just cleaned up all my edges and glued everything together !

Step 7: The Final Product

Here's a video of me presenting my project during class. You can see me put the first moisture sensor in the pot of dry soil, and the second in my water reservoir (red solo cup). The device then turns on the water pump according to the moisture levels read from sensor one, while also displaying "Watering" on the LCD screen. If sensor two was detecting a dry water reservoir, the pump would turn off and a message "Tank Empty" would display on the LCD screen. When the soil is wet enough, the moisture sensor will send a message to my Arduino signaling the water pump to turn off.

And that's my project ! If you're interested in making your own version of my project feel free, and I'd love to see any changes you make ! All the code can be found in the "Final Circuit" step, and a case can be easily generated in Makercase.

For the Home Contest

This is an entry in the
For the Home Contest