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.
Step 1: Materials
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)
4x4 keypad 1602A
QAPASS (LCD Screen)
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: http://www.farrellf.com/TelemetryViewer/
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: https://www.mouser.com/ProductDetail/Microchip/ATA...
I used Arduino IDE to load the Arduino nano with its code. You can Download the IDE for free at: https://www.arduino.cc/en/Main/Software
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.