Balan Rareș-Alexandru 334CD
Proiectul monitorizează umiditatea solului și udă automat plantele atunci când nivelul de umiditate scade sub o valoare prestabilită. Sistemul asigură o udare eficientă, optimizând consumul de apă și menținând plantele sănătoase chiar și în absența proprietarului.
Scopul este de a automatiza procesul de udare a plantelor, astfel încât persoana responsabilă să economisească timp și resurse, reducând riscul ca plantele să sufere din cauza lipsei de apă.
Ideea de la care am pornit a fost o problemă des întâlnită în rândul persoanelor care dețin plante, în special în sere sau grădini unde udarea zilnică poate deveni o activitate repetitivă și greu de respectat din cauza lipsei de timp sau a comodității. De asemenea, în perioadele în care proprietarii sunt plecați de acasă, plantele pot rămâne neîngrijite.
Proiectul este util deoarece poate fi folosit de oricine are plante acasă, fiind deosebit de practic pentru persoanele ocupate sau care călătoresc frecvent.
Într-un ghiveci sunt montați doi senzori de umiditate a solului, câte unul pentru fiecare parte (stânga și dreapta). Pe baza datelor colectate, un servomotor repoziționează furtunul de udare către partea mai uscată, asigurând o irigare direcționată.
Servomotorul este alimentat direct de la Arduino și este controlat printr-un pin digital. Rolul său este să orienteze furtunul spre zona cu solul cel mai uscat înainte de activarea sistemului de udare.
Irigarea este realizată cu ajutorul unei pompe de apă submersibile, care este controlată printr-un releu. Pompa extrage apă dintr-un rezervor, în care este montat un senzor de nivel ce împiedică funcționarea pompei în cazul în care apa scade sub un prag minim. Alimentarea pompei se face dintr-o sursă externă (patru baterii de 1.5V) care este conectată prin releu.
Un ecran LCD cu interfață I2C este folosit pentru a oferi feedback în timp real: ce plantă este udată sau dacă nivelul apei este scăzut.
Conexiuni componente principale:
Schema realizată în Tinkercad diferă parțial față de implementarea fizică a proiectului din cauza limitărilor platformei de simulare. În absența unui model dedicat pentru pompa de apă utilizată în circuitul real, aceasta a fost substituită în simulare cu un motor DC pentru a reda comportamentul funcțional al sistemului. De asemenea, senzorii de umiditate a solului disponibili în Tinkercad nu corespund în totalitate cu cei folosiți fizic, iar senzorul de nivel al apei nu a putut fi inclus, întrucât nu este disponibil în biblioteca aplicației.
În ceea ce privește alimentarea pompei (respectiv a motorului DC din simulare), aceasta este asigurată de un suport pentru patru baterii AA montate în serie, furnizând o tensiune totală de aproximativ 6V, conectată prin intermediul unui releu controlat de Arduino.
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C display(0x27, 16, 2); const int pumpRelayPin = 2; const int moistureSensorPin = A0; void setup() { Serial.begin(9600); display.init(); display.backlight(); display.clear(); pinMode(pumpRelayPin, OUTPUT); digitalWrite(pumpRelayPin, HIGH); delay(1000); display.setCursor(0, 0); display.print("Irrigation System"); display.setCursor(0, 1); display.print("System is ON"); display.print(""); delay(3000); display.clear(); } void loop() { int moistureLevel = analogRead(moistureSensorPin); Serial.print("Moisture value: "); Serial.println(moistureLevel); if (moistureLevel > 950) { digitalWrite(pumpRelayPin, LOW); display.setCursor(0, 0); display.print("Pump Status: ON"); } else { digitalWrite(pumpRelayPin, HIGH); display.setCursor(0, 0); display.print("Pump Status: OFF"); } if (moistureLevel < 300) { display.setCursor(0, 1); display.print("Moisture: HIGH"); } else if (moistureLevel <= 950) { display.setCursor(0, 1); display.print("Moisture: MID"); } else { display.setCursor(0, 1); display.print("Moisture: LOW"); } }
Am învățat cum să structurez un proiect complet, pornind de la conectarea fizică a componentelor, până la scrierea codului si testarea funcționalității.
Consider că acest proiect are un potențial real de extindere în viitor, prin adăugarea unor funcționalități precum: