This is an old revision of the document!
Plant Feeder
Introducere
Ce face?
Plant feeder este un dispozitiv care hraneste plantele automat.
El detecteza cand umiditatea in sol este prea mica si actioneaza o pompa care trage apa dintr-un bazin, in sol, prin intermediul unui furtun.
De asemenea, detecteaza cand nu mai este suficienta apa in bazin, prin intermediul unui senzor ultrasonic.
Cand dispozitivul detecteaza ca nu mai este suficienta apa in bazin, se aprinde un LED rosu si trimite un mail utilizatorului.
Cu ajutorul unui ecran LCD cu I2C, afiseaza umiditatea din sol si cantitatea de apa din bazin, la actionarea unui buton.
Prin actionarea altui buton, pe ecranul LCD se afiseaza si umiditatea si temperatura din aer. La actionarea aceluiasi buton, ecranul LCD schimba intre proprietatiile solului si ale aerului.
Care este scopul lui?
Acest dispozitiv automatizeaza procesul de hranire a plantelor, monitorizand nivelul de umiditate in sol si actionanand in consecinta pentru a mentine conditiile optime pentru cresterea plantelor.
Care a fost ideea de la care am pornit?
Plantele ajuta sa faca dintr-un loc, o casa.
Multe persoane (incluzandu-ma si pe mine) uita sa isi hraneasca plantele, sau pun apa de ori de cate ori isi amintesc (sau se mai intampla ca atunci cand cineva hraneste o planta, sa puna prea mult apa si sa dea peste 😅).
Acest dispozitiv rezolva toate aceste probleme si chiar mai multe.
De ce cred ca este util pentru mine si pentru altii?
Plant feeder este foarte util pentru toata lumea care doreste sa aiba plante in casa, nu doar pentru cei care nu reusesc sa aiba grija nici de un cactus.
Acesta ajuta foarte mult atunci cand utilizatorul este plecat pentru o perioada indelungata de acasa, sa nu mai fie nevoie sa dea cheia la un var sa vina sa puna apa la flori.
Descriere Generala
Schema Bloc
Hardware Design
Lista de Piese
Scheme Electrice
Software Design
Mediu de Dezolvare
Librarii si Surse 3'rd Party
Algoritmi si Structuri pe care Planuiesc sa le Implementez
Surse si Functii Implementate
Functia setup() → configureaza pinii pentru senzorii si dispozitivele de iesire, initializeaza ecranul LCD si seteaza caractere speciale pentru afisare.
Funcția loop() → este executata repetat si actualizeaza citirile senzorilor, controleaza pompa si LED-ul, gestioneaza interactiunea cu butoanele si afiseaza informatiile pe LCD.
Funcția getDistance() → masoara distanta folosind senzorul ultrasonic si returneaza valoarea in centimetri.
Funcția updateLED() → controleaza LED-ul de avertizare in functie de nivelul apei.
Funcția readDHT() → citeste temperatura si umiditatea aerului folosind senzorul DHT11.
Funcția debounceButton() → gestioneaza debounce-ul pentru butoane, asigurand citiri stabile.
Funcția displayData() → afiseaza datele pe ecranul LCD, in functie de starea curenta a sistemului si de interacțiunea cu butoanele.
Funcția debugDisplay() → afiseaza datele de diagnosticare sau de depanare pe portul serial.
Rezultate Obtinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
warning
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
note
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie si Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.