This is an old revision of the document!


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ă

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

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);
}

Rezultate Obţinute

Am obtinut un proiect folositor pentru viata cotidiana. Acesta uda plantele in mod autonom. Mi-a placut sa fac acest proiect, am invatat foarte multe,de la utilizarea unui arduino pana la lipirea unor fire pe o placa. 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.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

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.1653685015.txt.gz · Last modified: 2022/05/27 23:56 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