Table of Contents

Smart Irrigator - Balan Rareș-Alexandru

Balan Rareș-Alexandru 334CD

Introducere

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.

Descriere generală

Î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:

Hardware Design

Schema Electrică

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.

Lista de piese

Componentă Cantitate Link
Senzor de umiditate a solului, higrometru 2 https://www.bitmi.ro/senzori-electronici/senzor-de-umiditate-a-solului-higrometru-10461.html
Senzor de nivel al apei 1 https://www.optimusdigital.ro/ro/senzori-altele/272-senzor-de-nivel-al-apei.html?search_query=senzor+de+nivel+al+apei&results=3
Micro Servomotor SG90 180° 1 https://www.optimusdigital.ro/ro/motoare-servomotoare/2261-micro-servo-motor-sg90-180.html?search_query=Micro+Servomotor+SG90+180%C2%B0&results=2
LCD 1602 cu Interfață I2C 1 https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?search_query=LCD+1602+cu+Interfata+I2C+si+Backlight+Albastru&results=2
Breadboard 830 puncte 1 https://sigmanortec.ro/Breadboard-830-puncte-MB-102-p125923983
Placă de Dezvoltare Compatibilă cu Arduino UNO R3 (ATmega328p + ATmega16u2) 1 https://www.optimusdigital.ro/ro/placi-avr/4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?search_query=arduino+uno+r3&results=129
Pompă apă submersibilă 1 https://sigmanortec.ro/Pompa-apa-submersibila-3-6VDC-p125423415
Furtun pompă apă 1 https://sigmanortec.ro/Furtun-Pompa-Apa-8x10-1-metru-p148295684
Suport de 4 baterii AA 1 https://sigmanortec.ro/Suport-4-baterii-AA-cu-capac-si-intrerupator-p172447738
Modul releu cu un canal (comandat cu 5 V) 1 https://www.optimusdigital.ro/ro/electronica-de-putere-module-cu-releu/13084-modul-releu-cu-un-canal-comandat-cu-5-v.html?search_query=Modul+releu+cu+un+canal&results=14

Software Design

Mediu de dezvoltare: Arduino IDE

Librării externe folosite

Algoritm general implementat

Exemplu de cod pentru testare – sistem simplificat

#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");
  }
}

Rezultate Obţinute

Videoclipuri

Github Repo

https://github.com/raresbalan19/Smart_Irrigator_PM

Concluzii

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:

Bibliografie/Resurse

Resurse Hardware