Self Sustaining Plant

Introduction: Self Sustaining Plant

The Self-Sustaining Plant is a device which maintains a plant alive with minimal care from the user. Upon turning on the device, the user inputs the amount of time the plant should remain under maximum exposure to light before becoming damaged. The user also inputs the minimum moister level the plant can endure. After the plant settings have been entered, the device seeks the highest intensity of light while avoiding obstacles. Once the plant reaches the highest intensity of light, the device begins to record moister and temperature readings. If at any moment the minimum moister level is reached, a water valve is opened by a stepper motor in order to replenish the plant with water.

After being exposed to light for the amount of time specified by the user, the device travels to the lowest intensity of light while avoiding obstacles. Once the device reaches its destination, the device provides the user with an option to scroll through the temperature and moister history. The plant can then be programmed to be used again.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

ATMega1284p microcontroller

Arduino Nano L293DNE (DC Motor Driver)

CD74HC4051E (8 Channel Analog Multiplexer-Demultiplexer)

ULN2003AN (7 Darlington Arrays) 6 - Light Dependent Resistors(LDR)

TMP 36 (Temperature Sensor)

SEN-13322(Moister Sensor)

HC-SR04(Sonar Sensor)

4x4 keypad 1602A


2 - 1000:1 HPCB 6V DC Motors

28BYJ48 (Stepper Motor)

Poly Lactic Acid (3D printer material)

You can download the STL file to the chassis I design how hold your device together.

Step 2: Calibrate Your Light Dependent Resistors(LDR)

I used Telemetry Viewer in order to calibrate the LDR's

You can find the software in the following link:

Check out this video in order to see how you can implement Telemetry Viewer:

Select LDR's such that they all respond to no intensity light, low intensity light, and high intensity light similarly.

Step 3: Connect Your Circuit

Use the schematic to wire up your device. Make sure that the Stepper motor and DC motors have their own dedicated power supply. You might have to flip the polarities of the DC motors if the device is not turning as expected. I separated the top LDR from the rest in order to easily distinguish the direction from the light source.

Step 4: Load the Code!!! : )

I used Atmel studio and the AVR programmerto load the code onto the Atmega1284p. You can find the programmer here:

I used Arduino IDE to load the Arduino nano with its code. You can Download the IDE for free at:

The SSSStateDiagram shows the thought process I used to write the All.c code.

The code used on the arduino can be modified by changing the value next to the variable distance. Distance is measured in cm.

Be the First to Share


    • Backyard Contest

      Backyard Contest
    • Silly Hats Speed Challenge

      Silly Hats Speed Challenge
    • Arduino Contest 2020

      Arduino Contest 2020



    2 years ago

    I need to set up something like this for the plants on the window because I always forget to water them! XD This would be really useful. :)