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).
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.
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.
Am lucrat in IDE oferit de Arduino.
Librarii externe:
Codul:
/*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.
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.
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.
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. |