Proiectul intentioneaza sa faca cresterea si ingrijirea plantelor mai usoara, prin mentinerea factorilor optimi pentru bunastarea acestora, intr-un mediu controlat si automatizat. Probleme precum udarea prea des sau prea rar a plantelor vor fi inlaturate, deoarece proiectul va avea grija sa mentina umiditatea ideala a solului, dar va controla si nivelul de lumina si temperatura din interiorul serei. Acest proiect este perfect pentru iubitorii de natura care, din diferite motive, nu pot oferi un mediu perfect pentru ingrijire, dar totusi viseaza sa creasca propriile plante.
Folosindu-se de datele oferite de un senzor de umiditate a solului, proiectul va decide daca plantele necesita apa si va porni un sistem de irigare daca solul este uscat. Cu ajutorul unui senzor de temperatura, daca gradele sunt crescute in interiorul serei, usile serei se vor deschide printr-un sistem actionat de un servomotor. In plus, pe baza informatiilor primite de la un senzor de luminozitate, va decide daca plantele necesita lumina in plus si, in situatia aceasta, va porni o banda de LEDuri.
In videoclipul acesta demonstrez functionalitatea modulului cu fotorezistor. Atunci cand pe suprafata fotorezistorului cade lumina, banda LED este stinsa, iar atunci cand nu primeste suficienta lumina, se aprind LEDurile.
de senzorul de umiditate.
Pentru dezvoltarea codului am folosit VSCode impreuna cu PlatformIO.
1. <SimpleDHT.h>: pentru folosirea senzorului DHT11
Aceasta biblioteca a fost folosita pentru citirea datelor oferite de senzorul de temperatura. Cu ajutorul acesteia am reusit sa preiau informatii despre temperatura din interiorul serei.
2. <Servo.h>: pentru controlul servomotorului
Aceasta biblioteca a fost folosita pentru controlarea servomotorului ce are rolul de a deschide fereastra serei atunci cand temperatura din interior este crescuta. Biblioteca ofera o interfata pentru controlul pozitiei servomotorului pe baza unui unghi dat.
3. <MsTimer2.h>: pentru folosirea timerului 2
Biblioteca aceasta este folosita pentru schimbarea culorii LEDurilor la un interval de timp dat. Biblioteca inglobeaza in functiile sale configurarea timerului 2 al placii cu o rezolutie de 1ms.
4. <WS2812.h>: pentru controlul LEDurilor
Am folosit aceasta biblioteca pentru controlul benzii de LEDuri RGB. In cadrul bibliotecii se gasesc functionalitati ce permit setarea culorii fiecarui LED in parte.
void setup():
- initializeaza pinii si alte componente ncesare programului
void changeColor():
- functie ajutatoare pentru timer; cicleaza prin culorile prestabilite pentru LEDuri
void tempServo():
- verifica temepratura primita de la senzorul DHT si actualizeaza starea servomotorului daca este cazul, rezultand in deschiderea sau inchiderea ferestrei serei.
void photoresLEDs():
- verifica daca fotorezistorul detecteaza prezenta luminii si in functie de aceasta aprinde sau stinge LEDurile. De fiecare data cand sunt aprinse, ciclul de culori va incepe de la lumina alba.
void humidityRelay():
- calculeaza procentajul de uscare al solului pe baza datelor primite analog de la senzorul de umiditate si activeaza pompa de apa daca acesta este crescut.
void loop():
- apeleaza pe rand tempServo, photoresLEDs si humidityRelay pentru a asigura functionarea celor trei caracteristici principale ale proiectului.
Proiectul este finalizat!
In acest videoclip demonstrez functionalitatea senzor umiditate + pompa de apa.
Aici prezint cum functioneaza fotorezistorul + LEDurile.
Iar in aceasta inregistrare demonstrez functionarea senzorului de temperatura + servomotor.
Am reusit sa finalizez proiectul cu toate functionalitatile pe care le-am planuit initial. A fost o provocare, dar si un proces interesant si satisfacator, deoarece am avut ocazia sa ma implic in aspecte tehnice si conceptuale cu care nu m-am intalnit prea des în cadrul facultatii. Mi-a placut sa invat cum sa conectez diferite componente intre ele si sa vad cum codul scris de mine produce efecte in viata reala.
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.
https://drive.google.com/file/d/1vpRTO6CqU83oDTfOaHkoniJPTcKVU-3N/view?usp=drive_link
https://www.youtube.com/watch?v=dJJAQxyryoQ&ab_channel=CircuitBasics
- pentru utilizarea DHT11
- pentru conectarea si utilizarea releului
- pentru conectarea si utilizarea LEDurilor
https://www.youtube.com/watch?v=SfmHNb5QAzc&ab_channel=educ8s.tv
- pentru conectarea si utilizarea servomotorului