PlantPet

Introducere

PlantPet este un sistem inteligent de monitorizare si control al mediului unei plante. Sistemul masoara in timp real umiditatea solului, temperatura ambientala, nivelul de lumina si nivelul apei din rezervor, iar pe baza acestor valori controleaza automat irigarea si iluminarea suplimentara a plantei.

Scopul proiectului este realizarea unui produs care sa ajute utilizatorul sa mentina conditii optime pentru cresterea unei plante reducand interventia manuala necesara si oferind feedback local pe display si la distanta, printr-o aplicatie.

Ideea de la care am pornit a aparut din nevoia de a avea un sistem de ingrijire a plantelor cat timp nu sunt acasa. Insa in loc ca planta sa fie doar un obiect monitorizat de senzori, sistemul este gandit astfel incat planta sa fie un fel de animal de companie virtual. In acest fel, ma pot conecta cu planta mea de oriunde.

Utilitatea proiectului vine din oferirea unei metode simple de monitorizare si ingrijire a plantei.

Descriere generala

Sistemul este construit in jurul microcontrollerului ESP32 care are rolul de unitate centrala de procesare si coordoneaza toate modulele hardware si software.

Senzori de intrare:

  • senzor capacitiv de umiditate a solului
  • senzor DHT11, pentru masurarea temperaturii ambientale
  • modul LDR, pentru determinarea nivelului de lumina ambientala
  • float switch, pentru detectarea nivelului minim al apei in rezervor

Unitatea centrala de procesare:

  • ESP32 - citeste periodic valorile de la senzori, le compara cu pragurile setate si decide actiunile necesare. Transmite catre display local, aplicatie si actuatoare prin intermediul unor circuite de comutatie cu MOSFET.

Module de iesire:

  • display TFT LCD color de 1.8”, cu rezolutie de 128 x 160 pixeli si interfata SPI, utilizat pentru afisarea locala a unui „plant pet” care reflecta starea plantei
  • pompa peristaltica de 5V, pentru irigarea plantei
  • sursa de iluminare LED de 5V, pentru suplimentarea luminii atunci cand lumina ambientala nu este suficienta

Interfata software:

  • aplicatie conectata prin WiFi la ESP32, prin care utilizatorul poate vedea starea curenta a plantei si poate seta praguri pentru umiditatea solului, temperatura si lumina

Sistemul de alimentare:

  • baterie portabila care furnizeaza 5V / 3A. Aceasta alimenteaza placa ESP32, senzorii, display-ul si actuatoarele. Comanda pompei si a sursei de lumina se realizeaza prin tranzistoare MOSFET.

Schema bloc

Interactiunea modulelor

  • ESP32 citeste periodic valorile de la senzori (umiditate, DHT11, LDR si float switch)
  • valorile sunt procesate si comparate cu pragurile setate in aplicatie
  • daca umiditatea solului scade sub pragul stabilit si exista apa in rezervor, ESP32 activeaza pompa peristaltica
  • daca nivelul de lumina ambientala scade sub pragul stabilit, ESP32 activeaza sursa de iluminare LED
  • daca float switch-ul indica un nivel scazut de apa, sistemul dezactiveaza udarea si trimite o alerta catre aplicatie
  • starea curenta este afisata local pe display-ul TFT sub forma unui „plant pet” si la distanta in aplicatia web, unde sunt afisate si valorile senzorilor

Hardware Design

Lista de piese

  • 1 x ESP32 DevKit (ESP32-D)
  • 1 x Senzor capacitiv de umiditate a solului
  • 1 x DHT11
  • 1 x Modul LDR
  • 1 x Float switch
  • 1 x Display TFT LCD 1.8” ST7735, 128 x 160 SPI
  • 1 x Pompa peristaltica 5V
  • 1 x Sursa de iluminare LED 5V (USB)
  • 2 x MOSFET N-channel logic-level
  • 1 x Dioda flyback 1N5819
  • 4 x Rezistente pentru comanda MOSFET
  • 1 x Breadboard
  • 1 x Baterie portabila
  • 1 x Tub siliconic pentru pompa
  • 1 x Recipient pentru rezervorul de apa
  • Fire de conexiune

Software Design

Mediu de dezvoltare:

  • VS Code - editor principal
  • PlatformIO - sistem de build si upload
  • framework-ul ESP-IDF pentru dezvoltarea firmware-ului in limbajul C

Biblioteci:

  • driver/gpio.h - configurarea si controlul pinilor digitali
  • driver/spi_master.h - comunicatia SPI cu display-ul TFT
  • esp_adc/adc_oneshot.h - citirea valorilor analogice de la senzorul de umiditate a solului si de la senzorul de lumina
  • freertos/FreeRTOS.h - organizarea executiei periodice a codului
  • freertos/task.h - task-uri pentru logica principala si animatia de pe TFT
  • esp_http_server.h - serverul web local
  • esp_wifi.h - configurarea modulului WiFi
  • esp_netif.h - initializarea interfetei de retea
  • esp_event.h - gestionarea evenimentelor necesare pentru WiFi
  • nvs_flash.h - initializarea memoriei nevolatile necesare subsistemului WiFi
  • esp_timer.h - masurarea timpului si implementarea logicii dependente de timp
  • esp_rom_sys.h - intarzieri scurte folosite in comunicatia cu DHT11

Algoritmi si structuri implementate:

  • achizitie periodica de date de la senzori
  • protocol software pentru DHT11, implementat manual prin controlul duratei impulsurilor
  • pastrarea ultimei valori valide pentru DHT11, pentru a evita afisarea unor valori invalide la erori ocazionale
  • conversia valorilor brute de la soil sensor si LDR in procente si etichete usor de inteles pentru utilizator
  • controlul automat al iluminarii
  • controlul automat al pompei peristaltice
  • folosirea unei zone de buffer (hysteresis) pentru pragurile de lumina si umiditate a solului, astfel incat becul si pompa sa nu porneasca si sa se opreasca foarte des in jurul pragului
  • afisare locala pe TFT sub forma unui „plant pet”, care isi modifica expresia in functie de starea plantei
  • interfata web locala - WiFi access point
  • organizarea codului pe module separate: logica principala, display TFT, conversii si webserver

Functii implementate:

  • initializare display TFT
  • desenare elemente grafice si animatii simple pe TFT
  • afisarea unui personaj virtual care indica starea plantei: HAPPY, THIRSTY, LOW TANK, TOO HOT, LOW LIGHT, ERROR
  • citire senzor DHT11
  • citire ADC
  • conversie valori raw in procente pentru umiditatea solului si nivelul de lumina
  • control bec prin MOSFET
  • control pompa peristaltica prin MOSFET
  • pornire modul WiFi in modul Access Point
  • handlers HTTP pentru pagina web, raportarea starii curente si actualizarea pragurilor
  • actualizare interfata web cu valorile senzorilor si starile actuatorilor

Am obtinut un produs compact, care poate fi asezat langa o planta. Acesta poate monitoriza si ajusta mediul in care planta se dezvolta si ofera atat o interfata web pentru configurare si vizualizare, cat si o interfata locala sugestiva sub forma unui „animal de companie” virtual asociat plantei.

Concluzii

GitHub: https://github.com/RoxanaMaryB/PlantPet

Demo YouTube: https://youtube.com/shorts/6ExZQT39He8?feature=share

Cu cateva zile inainte de PM Fair, pompa peristaltica s-a stricat si am ales sa nu o mai includ in proiectul final. Si partea de hardware (MOSFET, dioda flyback) este montata pentru pompa, si logica software, insa nu am reusit sa gasesc la timp o alta pompa pentru a prezenta proiectul in intregime.

Jurnal

  • 2026/05/06 - am creat pagina de OCW
  • 2026/05/13 - am adaugat partea de Hardware
  • 2026/05/18 - am adaugat partea de Software
  • 2026/05/24 - am adaugat functionalitati noi codului (animatia si conversiile de la raw values la %)

Bibliografie/Resurse

pm/prj2026/bianca.popa1106/roxana_mary.baranga.txt · Last modified: 2026/05/25 01:46 by roxana_mary.baranga
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0