Name | NetID | Section |
---|---|---|
Adnan Challawala | adnanmc2 | ECE 110 |
Aidan Rodgers | aidanfr2 | ECE 110 |
Statement of Purpose
To increase the convenience and efficiency of growing house plants. College students have little time and even less skill at keeping plants alive, so our invention will alleviate stress and increase the probability of survival for plants.
Background Research
Our group is simultaneously interested in the environment and learning about basic circuitry and electronics. Through this project, we hope to pursue both interests while gaining more experience in electrical and computer engineering. Taking care of most plants is normally quite difficult as they can be very particular about the levels of sun and water they need. With our design we hope to streamline the process to help busy college students. We understand that similar projects have been done before, but given our very limited knowledge we want to keep the project simple and possibly add features as time allows.
Block Diagram / Flow Chart
Provide a simple block diagram of your hardware design. A block diagram is a schematic graphic that shows the interactions between different components in a hardware or software system. If appropriate, please also include a flow chart showing the steps your design needs to go through to function. The online program draw.io is a great tool to create polished block diagrams and flow charts. Likewise Microsoft's visio is also a great program to create block diagrams and flow charts.
System Overview
Pump system: The pump circuit is controlled by a relay that is triggered through the Arduino. The pump is connected to the 12V adapter and the relay, and when the Arduino triggers the relay it completes the circuit, turning on the pump, and sending water to the plant.
Soil moisture sensor: A capacitive soil moisture sensor will be used. When the sensor is inserted into a soil sample, the soil acts as a dielectric between two electrodes. This is analogous to a parallel plate capacitor. The dielectric constant is the ability of the soil to conduct electricity, so it increases as the water content of the soil increases. By pairing the sensor with a timer circuit, we acquire an analog voltage that can be read with an arduino board (seeedstudio).
Light sensor: A photoresistor circuit will be used to detect light and possibly display using an LED when the plant is getting enough/too little light.
The whole system will be powered via the arduino which will be connected to a power supply plugged into the wall to ensure constant monitoring of the plant.
Parts
Vendor | Item Name | Unit Price | Quantity | URL / Item Number | Purpose |
---|---|---|---|---|---|
HL Inventory | Arduino Uno | $18.66 | 1 | 131 | Brain of operation |
Walmart | Pump | $8.07 | 1 | https://www.walmart.com/ip/USB-Powered-Micro-Submersible-Pump-Mini-Water-Pump-Fish-Tanks-Aquarium-Fountain-DC-5V-2-3L-Min/663747483?athbdg=L1700 | Pumps water |
Walmart | Tubing | $8.71 | 1 | https://www.walmart.com/ip/8mm-x-10mm-Food-Grade-Translucent-Silicone-Tube-Water-Air-Pump-Hose-2-5M-Length/136301411?athbdg=L1400 | Sends water pumped by pump to plant |
Digikey | Capacitive soil moisture sensor | $7.90 | 1 | https://www.digikey.com/en/products/detail/dfrobot/SEN0193/6588605 | Senses the moisture level of soil |
Walmart | Power Supply | $12.99 | 1 | https://www.walmart.com/ip/PKPOWER-6-6FT-Cable-9V-1A-DC-Charger-Power-Supply-Adapter-AC-100-240V-5-5mm-x2-1mm-for-Arduino-PSU/375560643 | Powers the Arduino and connected components |
Digikey | Wifi Module | $6.95 | 1 | https://www.digikey.com/en/products/detail/sparkfun-electronics/WRL-17146/13282842 | Connects the Arduino to the internet |
Possible Challenges
Given our limited experiences with electrical engineering, there will undoubtedly be challenges that come up as we create our project. Working with the Arduino will probably be the most difficult part, but given enough research and time with it we should be able to succeed. Calibration of the capacitive soil moisture sensor will also require several calculations and present many errors
Project Expansion
- Connect the system to the internet and have it send an notification when there is too little water or too little sun
- Connect the system to an external lighting system to turn on a light source when there is not enough light
- Connect the system to a speaker to play certain sounds when there is not enough light, too little water, or when it does anything
References
List all references you used in your proposal. This is important, you do not want to be blamed for plagiarism. IEEE citation format is highly recommended. You can use citethisforme.com's IEEE citation generator to painlessly generate your references in this style.
[1]"Arduino - Controls Pump | Arduino Tutorial", Arduino Getting Started, 2021. [Online]. Available: https://arduinogetstarted.com/tutorials/arduino-controls-pump. [Accessed: 16- Sep- 2021].
[2]"Soil Moisture Sensor - Getting Started with Arduino - Lastest Open Tech From Seeed", Lastest Open Tech From Seeed, 2019. [Online]. Available: https://www.seeedstudio.com/blog/2020/01/10/what-is-soil-moisture-sensor-and-simple-arduino-tutorial-to-get-started/. [Accessed: 19- Sep- 2021].
Final Video:
https://drive.google.com/file/d/1867f61ni2gFpyNTVkVVEyBuhfGj58ORB/view?usp=sharing
Final Report:
Statement of Purpose
Caring for a house plant is not always easy. It can be hard to tell how much water and sunlight is necessary for a plant to thrive. As some college students, or people in general, can be neglectful or can have little time to focus on caring for plants, there should be a way to improve the chances of a plant’s survival through automation. The goal of this project is to automatically water a plant once it is detected that it is lacking water and to alert the user if the level of light is too low.
Features and Benefits
This project uses a moisture sensor connected to an Arduino in order to determine the moisture level of the soil in a potted plant. If the sensor detects the moisture level is below a certain threshold, which can be adjusted based on the type of plant, it automatically pumps water into the pot so that the plant will have enough water. This project also uses a photoresistor to light an LED, alerting the user, if the light level is below a certain threshold. This threshold can be adjusted using a potentiometer.
System Overview
The external power supply powers the Arduino, which controls all elements of our project. The moisture sensor tells the Arduino the moisture level of the soil, which the Arduino uses to control the water pump. Additionally, the Arduino is used to power our light sensing circuit.
Design Details
Our sensor is able to measure moisture levels through capacitive sensing. Since water is conductive, the presence of water in the soil increases the dielectric constant of the soil, which is how the moisture sensor is able to detect moisture in the soil (1). The moisture sensor has three wires, one for ground, one for voltage supply, and one for reading the moisture level into the Arduino. Since the moisture sensor was designed to work with an Arduino, it was relatively easy to implement into the design. The voltage supply wire can be connected to the 3.3 V pin of the Arduino, the ground wire can be connected to the ground pin of the Arduino, and the third wire can be connected to analog pin A0. After connecting the sensor to the Arduino, we calibrated it by measuring an approximate range of values read by the sensor under dry soil, moist soil, and in water. We found that the sensor read values between 480 and 550 under completely dry soil, between 240 and 290 in water, and 350 and 410 in moist soil. Based on these values, we decided to set our threshold for when the pump should turn on to 480.
To power the pump, we decided to use the digital output pins of the Arduino so that the pump could be turned on and off based on the sensor. We initially ran into an issue, as the digital output pins are designed to supply a maximum current of 40 mA, which is well below the 170 mA required to operate the pump. To fix this, we decided to implement a common emitter switch using a npn bipolar-junction transistor. Since the Arduino has a 5 V pin that is capable of supplying a maximum of 1 A while connected to the power supply, we can use this pin to power the pump while digital output pin 4 toggles the common emitter switch.
For the light sensing portion of the design, we decided to use a simple circuit to alert the user of low light levels by lighting an LED. This circuit uses a photoresistor and an inverter along with a potentiometer to adjust the threshold. When there are low light levels, the high resistance causes a low voltage to be input to the inverter, which outputs a low voltage, turning off the LED. The opposite occurs under high light levels. There are many ways to expand on this, which we discuss in the future plans section.
Finally, for the software portion of the design, we needed to write a program for the Arduino that would briefly turn on the pump when the moisture sensor senses the soil is more dry than the threshold that we determined earlier. Our program reads the value from the moisture sensor into port A0 every 5 seconds and prints this value to the serial monitor. If this value is greater than our threshold, 480, pin 4 will output a high voltage for 1.5 seconds, activating the pump. After this, pin 4 will be off for 5 minutes so that the pump does not continue to run while the water soaks into the soil. With this program uploaded to the Arduino through our USB cable, our design is able to work on its own through the external power supply.
Results
Our moisture sensor was able to clearly tell the difference between moist and dry soil, and we were able to choose a range of values that represent moist and dry soil. We tested the entire project, and the moisture sensor was able to respond to changes in soil moisture and activate the pump when the soil ended up becoming too dry. The LED turned on whenever the room turned dark. Based on this, the project is able to water the plant on its own and alert the user when the light level is too low.
Problems and Challenges
The first problem we came across was figuring out how to activate the pump using the Arduino, since the digital output pin was not able to supply enough current. We were able to solve this problem with a common emitter switch using a bipolar junction transistor. Another problem we had was choosing a proper threshold for the moisture sensor so that the plant would not be watered too often. The threshold we chose represented the moisture level of soil that had not been watered for a week, which is good for a lower maintenance plant. Depending on the plant, the threshold may need to be adjusted.
Future Plans
In the future, we plan to make the system of alerting the user if the light levels are too low more complex. Our goal is to use a wifi module connected to the Arduino in order to wirelessly alert the user through an email, which might be more effective than just an LED. Additionally, we want to run longer-term tests with our project on various species of plants in order to find what threshold may work for each species.
References
[1] "Soil Moisture Sensor - Getting Started with Arduino - Latest Open Tech From Seeed", Latest Open Tech From Seeed, 2019. [Online]. Available: https://www.seeedstudio.com/blog/2020/01/10/what-is-soil-moisture-sensor-and-simple-arduino-tutorial-to-get-started/. [Accessed: 19- Sep- 2021].