Autorul poate fi contactat la adresa: Login pentru adresa
- Plantele au fost adesea folosite de oameni ca elemente decorative. O planta va aduce mereu un aspect placut unei camere din casa noastra. Fiecare planta are nevoie sa fie udata la un anumit interval de timp si de asemenea anumite plante nu trebuie udate cand este lumina puternica afara sau cand este foarte cald(cand temperaturile sunt foarte mari putem “arde” plantele).
- Scopul acestui dispozitiv este de a uda o planta doar atunci cand este nevoie si la momentul porivit al zilei. Adica atunci cand umiditatea din sol a scazut sub un anumit nivel iar lumina solara nu este foarte puternica. Acest proiect este util pentru oricine nu are timp sa ude plantele atunci cand este necesar. Astfel plantele noastre nu vor mai ramane niciodata fara apa.
- Singurul lucru pe care trebuie sa-l facem este sa avem mereu apa in rezervor.
Numar piese | Nume piesa | Obs |
---|---|---|
1 | Placa de bază cu ATMega324A-PU | Alimentare la 3.3V |
1 | Serial SPI Color LCD Module | Compatibil cu Nokia 5110 de 1.44' (128×128) |
1 | Senzor de lumina ambientala | TEMT6000 |
1 | Rezervor de apa | |
1 | Electropompa | Mini Pompă de Apă Submersibilă |
1 | Detector de umiditate | SOIL-MOISTURE-SENSOR |
1 | Senzor de temperatura | DHT22 |
LCD-ul folosit este compatibil cu cel de pe telefonul Nokia 5110. Comunicatia cu LCD-ul este realizata prin SPI, astfel ca avem pinii: CS, SDA(MOSI), SCK. De asemenea LCD-ul oferă doi pini LED și RESET pentru controlul backlight-ului respectiv resetarea dispozitivului.
TEMT6000 este senzorul de lumina ambientala si este unul analogic, iar pentru a-l conecta am folosit pinul PA0(ADC0) de pe microcontroler.
Am ales senzorul de temperatura sa fie DHT22 care este unu digital. Pentru a putea functiona, senzorul are nevoie de o rezistenta de pull-up(4.7k) pentru linia de date. Detectorul de umiditate este un senzorul cu care voi masura umiditatea solului. Acesta poate sa transmita si digital(D0) dar si analogic(A0).
Pentru realizarea aplicatiei am folosit Microsoft Visual Studio 2015 si avr-g++. Pentru realizarea proiectului am folosit functii si biblioteci din solutiile laboratoarelor.
Pentru detectarea umiditatii pamantului dintr-un ghiveci de flori folosesc un ADC care preia periodic date de la un senzor de umiditate de sol (SOIL-MOISTURE-SENSOR), valoarea umiditatii este citita o data la 2 secunde si este afisata mereu pe ecran. De asemenea exista si un senzor de lumina care citeste intensitatea acesteia. Daca intensitatea luminii este prea mare rezulta ca exista si o crestere de temperatura si atunci pentru a se evita distrugerea plantei nu va avea loc procesul de udare. Temperatura este monitorizata cu ajutorul unui senzor de temperatura.
In functie de fiecare stare a plantei se afiseaza pe ecran mesaje:
- Cand umiditatea este scazuta sub un anumit nivel(cand pamantul este prea uscat), intensitatea luminii este mica si temperatura este optima se aprinde LED-ul verde. Este necesara udarea, iar pompa va fii pornita. Pe ecran apare “Udati planta”
- Cand umiditatea este prea mare clipeste LED-ul verde. Pompa este oprita. Pe ecran apare “Umiditate mare”.
- Cand umiditatea solului este in parametrii normali sau intensitatea luminii este mare, LED-ul este stins. Pompa este oprita. Pe ecran nu se afiseaza nimic.
- Cand umiditatea este scazuta sub un anumit nivel(cand pamantul este prea uscat), intensitatea luminii este mare sau temperatura este mare se stinge LED-ul verde. Pe ecran apare “Lumina puternica” sau “Temperatura mare”.
Udarea corecta a plantelor inseamna si individualizarea plantelor dupa nevoile si specificul lor. Iar aceasta este una din regulile importante de care trebuie sa tii cont la udarea corecta a plantelor.
Pentru a controla pompa am folosit un tranzistor NPN si o dioda. Pentru a porni pompa trimit curent in baza din placuta pentru a-l deschide. Pompa este alimentata de 2 baterii la de 1.5V.
Senzorul de lumina (TEMT6000) este analog, iar pentru citi date de pe acesta am folosit ADC-ul si sistemul de interuperi din interiorul microcontroler-ului nostru. La fel si senzorul de umiditate din sol.
Pentru ADCSRA activez ADC-ul (1 « ADEN), activez intreruperea la terminarea conversiei (1 « ADIE), selectez rata de esantionare ( (1 « ADPS0) | (1 « ADPS2) ) de 32 si pornesc conversia ADC (1 « ADSC). Pentru ADMUX selectez tensiunea de referinta (1 « REFS0) si selectez canalul initial de conversie - 0.
int initLight() { ADMUX = (1 << REFS0) | (1 << ADC_INIT_CHANNEL); ADCSRA = (1 << ADEN) | (1 << ADIE) | (1 << ADSC) | (1 << ADPS0) | (1 << ADPS2); return 0; }
Initializez si un timer (Timer1) care se executa o data la 100ms astfel:
void TIMER1_init() { // initializare timer pentru COMPA la 100ms TCCR1B = (5 << CS10) | (1 << WGM12); TIMSK1 |= (1 << OCIE1A); OCR1A = 1561; sec = 0; secunde = 0; }
Citirea celor 2 senzori analogi o fac pe canale in rutina de tratare a intreruperilor.
Pentru senzorul de temperatura(DHT22) am folosit biblioteca dhtxx.h pentru a citi valorile acestuia. Cand returnez temperatura o impart la 10 pentru a fi in grade Celsius.
float dht22Temp() { return tempC/DHTXX_MUL; }
Acest dispozitiv vine in sprijinul atat posesorului de plante cat si plantei insasi, atunci acesta va putea sa se dedice altor activitati. Planta va fi udata atunci cand este necesar evitandu-se astfel distrugerea ei.
Parametrii optimi de utilizare a acestui dispozitiv vor fi stabiliti in functie de tipul de planta. Avertizarea vizuala este data de functionarea LED-ului, iar pe LCD se afiseaza valoarea umiditatii solului, temperaturii si intensitatea luminoasa in procente.
Se afiseaza pe LCD un contor (ore:minute:secunde) care se incrementeaza din momentul in care umiditatea solului este sub valoarea normala, iar planta nu este udata deoarece intesitatea luminii este puternica sau temperatura prea mare. Contorul este resetat la valoarea 0 in momentul in care planta este udata.
Acest proiect poate fi imbunatatit pentru a veni in sprijinul posesorilor caznici de plante ornamentale cat si cultivatorilor(de plante radacinoase si legume). De exmplu: Un senzor de umiditate ambientala, senzor de nivel apa, valorile de referinta impuse(temperatura, umiditate) pentru fiecare tip de planta si alimentarea cu energia necesara de functionare a dispozitivului cu panouri solare.