Group12: Monitoring your plants

Monitoring your plants

Group 12

Awais Amjad Noshad Boksh Jordan Chong

Final Image

Chosen Project Brief

You care about your plants, right? Then, why not try Arduino to help you monitor and water them? This project should include a soil humidity sensor that alerts (through some beeping sound or LCD display) when the humidity is too low or too high. It also has to include some automatic irrigation system (see some examples here: https://all3dp.com/2/arduino-watering-system-plant-irrigation-project/). You can also add a light sensor for the amount of light available and an indicator to the user (the carer) in case they need to change the position of the plant accordingly, among other sensors you think would help to keep your plant healthy. Design for providing long term behaviours like the plant thanking you if you have been treating them well (for example, by watering them the last couple of days) and then showing a “Thank you!” message in the display.

Project Plan

We have decided to design a water irrigation system that will be used to periodically water either a single normal-sized plant or multiple smaller plants. This system will be able to measure and display information about the sunlight and temperature in the room where the plants are located. The system will also be able to display the current moisture level of the soil, as well as alert the user if the water level is insufficient or inappropriate for the plants’ needs. The system will include sensors to measure the moisture level and water usage, as well as an automatic control feature that can adjust the water level based on the measured moisture levels. An alert will also be displayed to notify the user if the water level falls outside of the optimal range for the plants.

Target Audience

Our target audience for this water irrigation system is individuals who are interested in gardening and plant care, as well as people who work in professional gardening or horticulture. We also aim to reach people who want to grow plants indoors, such as in an office or apartment setting. Our system is designed to be useful and convenient for anyone who is interested in maintaining healthy plants and ensuring that they receive the optimal amount of water, sunlight, and temperature for their needs. We believe that our system will be particularly appealing to people who want to easily and accurately monitor and control the watering of their plants, and who want to avoid over- or under-watering, which can be harmful to plants. We are confident that our system will be a valuable tool for anyone who is interested in growing and caring for plants, whether for personal or professional purposes.

Instruction Manual

  1. Before placing the container on a solid, level plane, make sure that the container is clean and free of any debris or dirt. This will help to prevent the spread of diseases or pests that could harm your plant.
  2. Once the container is clean and ready to use, carefully position it on a solid, level plane that is higher than the plant. This will help to ensure that the plant has proper drainage and is not sitting in water, which can lead to root rot.
  3. Next, insert the corrosion-resistant moisture sensor and the end of the water pump pipe into the soil, making sure that they are properly positioned and securely in place. The moisture sensor will help you to monitor the moisture levels in the soil, while the water pump will automatically water the plant as needed.
  4. Once the moisture sensor and water pump are in place, fill up the container with water and insert the water sensor. The water sensor will help you to monitor the water level in the container and ensure that the plant has an adequate supply of water at all times.
  5. Finally, sit back and enjoy your plant! Be sure to regularly check the moisture levels in the soil and the water level in the container, and adjust the watering schedule as needed to keep your plant healthy and happy.

Ensuring product safety

  1. Make sure that the container is placed on a stable and level surface to prevent it from tipping over or becoming unstable.
  2. Regularly check the moisture levels in the soil to ensure that your plants are not being over- or under-watered.
  3. Follow the instructions provided with the product carefully to ensure proper setup and use.

By following these steps, you can help to ensure that your plants are well-cared for while using our product.

Circuit Drawing

Market Research

When we began working on our water irrigation system, we looked at various systems that are currently available online. We carefully studied the components that these systems used and how they worked in order to understand the features and capabilities of different irrigation systems. After reviewing many systems with different features and uses, we decided to focus on designing a system that would be useful for anyone who is interested in growing and caring for plants, whether for personal or professional purposes. Our system will provide important information about the temperature, light level, moisture level, and water level in the area where the plants are located, which will help users to maintain healthy plants and avoid over- or under-watering. We believe that our system will be a valuable tool and we are excited to share it with our target audience.

Goals

  • Include a water pump that will water the plant when the soil is dry​
  • Include a soil moisture sensor that can detect low moisture levels with accuracy​
  • When the water supply for the water pump is low, add a water sensor that notifies the user​
  • Include an LCD with a temperature, light, and moisture display​
  • Add a temperature sensor to monitor the environment around the plant’s temperature​
  • Include a photoresistor that gauges the amount of light surrounding the plant​
  • Create a container that is suitable for holding all the necessary components​
  • Make sure user is satisfied/safe with leaving the product to water the plants

Project Timeline

Meetings

21/11/2022 Brainstorming and Designing

To help us visualize our final product, we created hand-drawn and CAD sketches of our water irrigation system. These sketches allowed us to see what our system could potentially look like, and to determine its dimensions and the materials that would be suitable for its construction. By using these sketches, we were able to refine our design and make important decisions about the appearance and functionality of our system

Storyboard

Components

  • Arduino Uno​ X1
  • LCD display​ X1
  • Breadboards X 3
  • Water Pump​ X1
  • Corrosion resistance moisture detector​ X1
  • Water sensor​ X1
  • Plant​ X1
  • Photoresistor​ X1
  • Temperature sensor​ X1
  • Wires​ 30+
  • Resistors​ X2
  • Diode​ X1
  • Transistor​ X1

28/11/2022 Ordering Parts

After careful consideration, we selected the parts that will be used in our water irrigation system. These parts include sensors to measure moisture levels and water usage, an automatic control system to adjust the water level based on the measured moisture levels, and a user interface for control and monitoring.

5/12/2022 Water Pump

After receiving the water pump, we followed the instructions for attaching it to the system. However, we discovered that the attached relay was not adequate for the power source, so we were unable to use it. In order to fix this problem, we removed the relay and connected the pump directly to the Arduino. We then encountered another issue, where the water was not flowing uphill. To solve this problem, we elevated the pump so that the water would always flow downward, ensuring that it reaches the plants. By overcoming these challenges, we were able to successfully integrate the water pump into our system and move forward with testing and refinement.

8/12/2022 Moisture Sensor and LCD

We attached a moisture sensor to our system using an online tutorial. However, the sensor we ordered was not functioning properly, so we replaced it with a different one. We were able to display the measured moisture levels on the LCD screen, but the screen we initially planned to use was too small. We ordered a larger LCD screen, but it had a problem with brightness. After realizing that we had not correctly configured the LCD screen, we followed a tutorial to fix the problem. We also had to adjust the hole in our container for the LCD screen because it did not fit properly. By making these adjustments, we were able to ensure that our water irrigation system was fully functional and ready for use.

9/12/2022 Light and Temperature

We followed the instructions for circuit 10 that we learned in the lab in order to attach the temperature sensor to our water irrigation system. However, we encountered issues with the accuracy of the temperature readings, as they were consistently very high. After trying several different approaches to troubleshoot and fix the problem, we realized that the issue was with the sensor itself, and not with the code. Unfortunately, we ran out of time to order a replacement

For our light sensor, we followed circuit 9 that we learned in the lab, and we did not encounter any issues with it. We were able to successfully attach the light sensor to our system and to use it to monitor the light levels in the area where the plants are located.

Soldering parts for water pump, light sensor and temperature sensor

11/12/2022 Water Sensor

We followed an online tutorial to attach the water sensor to our water irrigation system. However, we encountered an issue with the accuracy of the sensor’s readings. After troubleshooting, we realized that the problem was with the way that the sensor’s raw results were being mapped to the system’s control settings. We were able to fix the problem by adjusting the variables in the map function, which allowed us to properly map the sensor’s raw results to the control settings. By following the tutorial and making the necessary adjustments, we were able to successfully integrate the water sensor into our water irrigation system and to use it to monitor and control the water levels in the plants’ containers. We then joined the components of the system to the container using tape and hot glue, and we were pleased with the final result.

Display when theres enough water
Display when theres not enough water

10/12/2022 Container

When we started designing our water irrigation system, we initially created a paper design for the container that would hold the components of the system. We considered using a 3D printer to create a container using a CAD design, but we decided to explore other options as well. We wrote down a list of potential materials that could be used to make the container, including wood, PET, HDPE, PVC, LDPE, PP, and PS. Each of these materials had unique properties that made it suitable for different applications. After considering the options, we decided to use wood for our container because we believed that it would be strong enough to support the weight of the components and the plants. We were able to find a suitable wooden container among the recycled materials that we had available, and we were able to modify it to meet our specific needs. The container has a 5 cm diameter hole in the center that allows the wires to pass through, and it also has two 2 cm holes on opposite sides of the container that are 7 cm apart from the center. The dimensions are 30 X 15 X 10 (cm) and joined through box joints

Video of product working

Code

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);

#define sensor A3

#define wet 239     //340 //210

#define dry 580  //650 //510

int const lightPin = A0;

int const tempPin = A1;

int const waterLvl = A2;

int const waterPump = 7;

void setup() {

  Serial.begin(9600);

  lcd.init();

  lcd.backlight();

  pinMode(waterPump, OUTPUT);

}

void loop() {

  digitalWrite(9, HIGH);

  lcd.clear();

  //moisture sensor

  int value = analogRead(sensor);

  lcd.setCursor(1, 0);

  lcd.print(“Moisture”);

  int moistPre = map(value, wet, dry, 100, 0);

  lcd.setCursor(11, 0);

  lcd.print(moistPre);

  lcd.setCursor(16, 0);

  lcd.print(“%”);

  // Serial.println(moistPre);

  //light sensor

  int lightLevel = analogRead(lightPin);

  int lightPer = map(lightLevel, 900, 0, 0, 100);

  lcd.setCursor(1, 1);

  lcd.print(“Light lvl”);

  lcd.setCursor(11, 1);

  lcd.print(lightPer);

  lcd.setCursor(16, 1);

  lcd.print(“%”);

  // Serial.println(lightPer);

  //temperature sensor

  int reading = analogRead(tempPin); 

  float voltage = reading * 5.0;    //gets reading in voltage

  voltage /= 1023.0;

  float temperatureC = (voltage – 0.5) * 100 ;    //converts voltage to degrees C

  int tempV = analogRead(lightPin);

  lcd.setCursor(1, 2);

  lcd.print(“Tempature”);

  lcd.setCursor(11, 2);

  lcd.print(temperatureC);

  lcd.setCursor(16, 2);

  lcd.print(“C”);

  // Serial.print(temperatureC -40); //display temperature

  // Serial.println(” degrees C”);

  //water level sensor

  digitalWrite(9,HIGH);

  int waterLevel = analogRead(waterLvl);

  waterLevel = map(waterLevel, 0, 540 , 0, 100);    //map(waterLevel, 415,40 , 100, 0)

  delay(10);

  digitalWrite(9,LOW);

  lcd.setCursor(1, 3);

  lcd.print(“Water”);

  lcd.setCursor(7, 3);

  if(waterLevel < 30){

    lcd.print(“pls refill”);

  }

  if(waterLevel>30){

    lcd.print(“enough water”);

  }

  // lcd.print(waterLevel);

  // irrigation system

    if( moistPre <= 20 ){ 

      lcd.clear();

      lcd.setCursor(1, 0);

      lcd.print(“Watering Plant”);

      digitalWrite(waterPump,HIGH);

      Serial.println(“on”);

      delay(5000);

      digitalWrite(waterPump,LOW);

    }

  delay(1000);

}

Makers Manual

Parts needed:

  • Arduino Uno​ X1
  • LCD display​ X1
  • Breadboards X 3
  • Water Pump​ X1
  • Corrosion resistance moisture detector​ X1
  • Water sensor​ X1
  • Plant​ X1
  • Photoresistor​ X1
  • Temperature sensor​ X1
  • Wires​ 30+
  • Resistors​ X2
  • Diode​ X1
  • Transistor​ X1
  • Cuboid container with 5cm diamter hole for wires and two 2cm holes 7cm apart from center for light and temperature sensor

Put circuit together following circuit diagram:

Known shortcomings

The temperature sensor isn’t accurate as it is broken and we couldnt order a replacement in time