The "Leaf it Alone"

An automatic plant watering and monitoring device.

Similar projects worth following
My project is an automatic plant watering and monitoring system called the “Leaf it Alone”. It has two inputs: a sensor which delivers data on soil moisture content and a button which the user can press to get an update as to the state of their plant. I use a soil water concentration of 40% as a benchmark to determine if a plant needs water or not since this concentration is acceptable for many plants. This drives one of my outputs, a positional servo motor. The positional servo is attached to the cap of a water bottle such that it can rotate the cap. When the servo motor is in the ‘open’ position, a hole in the water bottle lines up with the slot in the cap so water drips out onto the soil. When soil moisture concentration is high enough(above 40%), the servo motor moves into the ‘closed position’, and the cap is rotated such that the hole in the bottle does not line up with the slot in the cap to prevent water from leaving

Design Considerations

If I could redo the project over again with the same constraints, one thing I would focus more on would be the mechanical structure of my device. For example, my cardboard housing makes it difficult to remove any of my electrical components after gluing it closed. This way, it’s very difficult to edit or fix a loose wire after the project is fully assembled. 

Another thing that I would do if I could redo the project with the same constraints would be to purchase an OLED LCD display that could connect to my Arduino and display the current soil water concentration of the plant for the user, rather than using my current LED system. This would provide the user with more specific information, and a quick survey of Amazon showed me one that would fit within the required budget. 

If I had more time and money to focus on this project, there are a number of ways that I would potentially improve my project. One thing that I think could be beneficial to my device would be to include a way for the user of the device to set the ideal water concentration for their plant. This would be useful because a succulent doesn’t need as high a soil water concentration as a tropical plant, for example. One way that I could’ve implemented this if I had more time would be to use the linear potentiometer from my kit, or to purchase a separate dial online that the user could use to set this concentration.

Operation Instructions

Before using the device, it is important that you calibrate the soil moisture sensor. 

code for calibration is linked and more information can be found at the following link: .

The calibration process is as follows: connect the sensor to the arduino (black to ground, red to 5V, orange to analog pin 0), upload the linked codeto the Arduino and open the serial monitor to view the sensor output. Hold the sensor in air and record the highest value delivered by the sensor- this will be substituted as the variable AirValue in my code in Appendix D.2. Then submerge the sensor in a cup of over and record the lowest value outputted by the sensor- this will be substituted as the variable WaterValue in my code.

Once the sensor is calibrated and the device is fully assembled, use the usb A to B cable to plug the Arduino into the usb port on your laptop to upload the code from to the Arduino and make sure the battery holder pack is set to on. The device should be placed in soil, such that the stake as well as the soil moisture sensor are submerged in the soil with the main housing of the device exposed to the air. Water can be added to the water bottle through the opening on the bottom of the bottle. Now, the device will automatically water or not water the plant depending on the soil moisture concentration. In order to receive feedback about the soil moisture content, press the button on the open portion of the device. If the green LED lights up, the moisture is low(below 40%), if the red LED lights up then the moisture is high(above 40%), and if neither lights up then it is in an optimal range. 


This code is used to calibrate the soil moisture sensor.

ino - 536.00 bytes - 12/03/2021 at 17:34



This code is the main code that controls the device.

ino - 2.64 kB - 12/03/2021 at 17:32


  • 1
    Cardboard Stake

    Cut out the two pieces that make up the stake with scissors from a piece of cardboard. Be sure to cut along the dotted lines. The dimensions of these parts can be found in the attached image. 

    Then, assemble the stake together by sliding each of the pieces together to form a cross. Use the assembled stake drawing below (Figure 2)

    as a guide. I found that securing the two pieces together with glue helped with stability.

  • 2

    Cut out the cardboard pieces (Labelled A,B,C,D,E) that make up the housing with scissors. The dimensions of these parts can be found in Figure 3. 

  • 3

    Attach Arduino, breadboard, and the battery to the cardboard piece labelled part A. I attached them with a few dots of glue so as to not damage the components(can easily be peeled off later). 

    Assemble circuit as in the circuit diagram above..

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates