Automatic Plant Watering System

Autor : Chirita Maria-Simona
Grupa : 1221A
Facultate : FILS

Introducere

Am decis sa fac un sistem de udare automata a plantelor. In functie de valorile date de un senzor de umiditate in sol, activez sau dezactivez o pompa cu apa care are ca scop udarea plantelor. Ideea a rasatit de la disconfortul creat de mersul la fiecare planta in parte pentru a o uda, astfel am creat acest aparat pentru a ma scuti de aceast task. Acest dispozitiv este util pentru toate persoanele care se afla in situatia prezentata mai sus, dar si pentru persoanele care nu au timpul necesar sa faca acest task(de exemplu sunt plecate de acasa).

Descriere generală

whatsapp_image_2022-05-27_at_23.46.48.jpeg

Cu ajutorul senzorului de umiditate putem sa aflam procentul de umiditate din solul ale plantelor. Potentiometru are ca scop reglarea valorii de prag. Aceste date le furnizam si le prelucram cu ajutorul unui arduino UNO.
In functie de valoarea data de senzorul de umiditate si valoarea de prag citita activam sau nu pompa de apa. Aceste date le si afisam pe un LCD.

Hardware Design

chrome_lbxzjw1v35.jpeg
Lista piese:

  • Arduino Uno
  • Tranzistor NPN 2N3904
  • LCD 1602
  • Potentiometru liniar 10K x2
  • Pompa de apa
  • Senzor Higrometru Capacitiv
  • Placa, fire, bareta

Unul dintre cele 2 potentiometre fac posibila reglarea valorii de prag. Aceasta valoare este trimisa analog la Arduino. Senzorul de umiditate in sol citeste valaorea de umiditate in sol si o trimite analog la Arduino. Arduino-ul proceseaza aceste valori si daca este nevoie ca pompa sa fie activata atunci Arduino-ul trimite un 1 logic la tranzistor. Acesta completeaza circuitul din Bateria de 9V si pompa si activeaza pompa. Atunci cand nu este nevoie ca pompa sa fie activata Arduino-ul trimite 0 logic la tranzistor. Acesta este oprit astfel circuitul pompei este deschis.

Software Design

Am lucrat in IDE oferit de Arduino.
Librarii externe:

  • LiquidCrystal (cu ajutorul caruia afisam diferite informatii pe un ecran LCD 16×2)

Codul:

waterPump.ino
/*pini LED:
 *  RS : 12
 *  E : 11
 *  D4 -> D1 : 5 -> 2
 *pin senzor umiditate in sol: A0
 *pin potentiometru pentru citire prag : A1 
 *pin activate pompa apa : 7
 */
 
#include <LiquidCrystal.h>
#define RS_LED 12
#define E_LED  11
#define D4_LED 5
#define D3_LED 4
#define D2_LED 3
#define D1_LED 2
 
#define DIRT_SENZ A0
#define POTENT_SENZ A1
 
#define WATER_PUMP 7
 
int waterThr = -1;
int waterThrMapped = -1;
int waterLvl = -1;
int waterLvlMapped = -1;
 
LiquidCrystal lcd(RS_LED, E_LED, D4_LED, D3_LED, D2_LED, D1_LED);
 
 
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(DIRT_SENZ, INPUT);
  pinMode(POTENT_SENZ, INPUT);
  pinMode(WATER_PUMP, OUTPUT);
  digitalWrite(WATER_PUMP, LOW);
}
 
void loop() {
  waterThr = analogRead(POTENT_SENZ);
  waterThrMapped = map(waterThr, 0, 1023, 0, 100);
  lcd.setCursor(0,0);
  lcd.print("Water thr:"); lcd.print(waterThrMapped);lcd.print("%");
  checkIfWater();
  lcd.clear();
}
 
void checkIfWater(){
  waterLvl = analogRead(DIRT_SENZ);
  waterLvlMapped = map(waterLvl, 0, 1023, 0, 100);
  lcd.setCursor(0,1);
  lcd.print("Dry level:"); lcd.print(waterLvlMapped);lcd.print("%");
  if( waterLvlMapped >= waterThrMapped){
    digitalWrite(WATER_PUMP, HIGH);
  } else {
    digitalWrite(WATER_PUMP, LOW);
  }
  delay(50);
}

Arduino-ul primeste datele de la senzorul de umiditate si potentiometru. Folosind functia map le transforma in procentaje si le compara. In cazul in care valoarea de la senzorul de umiditate este mai mare fata de valoarea citita de la potentiometru, Arduino-ul trimite un 1 logic catre tranzistor ca sa il activeze. In cazul contrar trimite un 0 logic. Folosind diferite functii din libraria specifica LCD-ul afisam datele citite de la cei 2 senzori.

Rezultate Obţinute

Am obtinut un proiect folositor pentru viata cotidiana. Acesta uda plantele in mod autonom. Problemele pe care le are proiectul:
*Pompa de apa este conectata la o baterie astfel, din cand in cand, trebuie verificata starea bateriei si schimbarea ei daca este necesar.
*Trebuie reumplut rezervorul cu apa al pompei.
whatsapp_image_2022-05-31_at_22.19.20_1_.jpeg whatsapp_image_2022-05-31_at_22.19.20_2_.jpeg whatsapp_image_2022-05-31_at_22.19.20.jpeg whatsapp_image_2022-05-31_at_22.19.21.jpeg

Concluzii

Mi-a placut sa fac acest proiect, am invatat foarte multe,de la utilizarea unui arduino pana la lipirea unor fire pe o placa. A fost frustant sa ma obisnuiesc cu ciocanul de lipit(de multe ori se intampla sa pun mana pe el), dar facand acest proiect am dezvoltat multe aptitudini care o sa ma ajute in viitor.

Download

Fisierul pentru descarcare se afla in sectiunea Software Design.

Jurnal

Saptama Update
Saptamana 1 Am facut research pentru realizarea proiectului.
Saptamana 2 Am comandat piese pentru proiect si am realizat proiectul.
Saptamana 3 Am rezolvat mici bugguri si am inceput sa fac site-ul OCW.
Saptamana 4 Am terminat site-ul OCW si am pregatit proiectul pentru prezentare.

Bibliografie/Resurse

pm/prj2022/robert/udatorautomatplante.txt · Last modified: 2022/05/31 22:22 by maria.chirita0702
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0