Table of Contents

PlantPal

Introducere

PlantPal este un sistem inteligent de monitorizare a conditiilor de mediu pentru plante de apartament, construit pe platforma Arduino Uno. Dispozitivul masoara in timp real patru parametri esentiali pentru sanatatea unei plante - temperatura aerului, umiditatea aerului, umiditatea solului si nivelul de lumina ambientala - si ofera feedback multi-canal utilizatorului prin trei modalitati complementare: afisaj LCD, indicator vizual LED RGB si alerta sonora prin buzzer.

Ce face proiectul:

Scopul proiectului:

Crearea unui dispozitiv autonom care reduce timpul de reactie al utilizatorului la conditii suboptime de mediu, prevenind astfel deteriorarea plantelor prin alerte proactive multi-canal.

Descriere generala

Sistemul este organizat in jurul microcontrollerului ATmega328P (Arduino Uno) care orchestreaza achizitia datelor de la senzori, evaluarea conditiilor si controlul interfetei de feedback.

Schema bloc

Schema bloc PlantPal

Module hardware

Hardware Design

Lista de componente

Componenta Cantitate
Arduino Uno R3 (ATmega328P) 1
Senzor DHT22 (temp + umid aer) 1
Senzor capacitiv umiditate sol 1
Fotorezistor LDR 5528 1
LCD 1602 cu interfata I2C 1
LED RGB catod comun 1
Buzzer pasiv 1
Buton push-button 2
Rezistenta 220 ohm 3
Rezistenta 10k ohm 2
Rezistenta 1k ohm 1

Schema electrica

Schema bloc PlantPal

Software Design

Mediu de dezvoltare

Biblioteci si surse third-party

Restul codului (citire ADC bare-metal, control LED RGB, buzzer, butoane cu intreruperi, state machine, buffer circular istoric) este scris de la zero, cu acces direct la registre AVR acolo unde e relevant pentru exemplificarea conceptelor din laborator.

Structura codului

Codul este organizat modular in 7 fisiere pentru claritate si separarea responsabilitatilor:

Functionalitati implementate

Algoritmi cheie

Rezultate Obtinute

Schema bloc PlantPal

Concluzii

Proiectul PlantPal a demonstrat ca un sistem util si functional poate fi construit cu componente accesibile si cunostinte acumulate in primele luni de la cursul de PM. Pe parcurs am invatat ca dezvoltarea unui proiect embedded nu inseamna doar scris cod, ci si planificarea atenta a conexiunilor hardware, calibrarea senzorilor, gestionarea timing-ului non-blocking si testarea incrementala a fiecarei componente in parte.

Ce a mers bine

Dificultati intampinate

Reflectie personala

A fost prima oara cand am construit un proiect embedded de la zero, plecand de la o idee si ajungand la un produs functional. Cea mai valoroasa lectie a fost importanta documentarii si planificarii inainte de a incepe sa lipesc fire pe breadboard. De asemenea, am inteles practic diferenta intre cod care “merge in simulare” si cod care “merge pe hardware real” - sunt suficiente diferente subtile (adresa I2C, tipul LED-ului, calibrarea senzorilor) ca sa te blocheze daca nu testezi pe fiecare etapa.

Bibliografie / Resurse

Datasheet-uri

Documentatie biblioteci


Repository GitHub: https://github.com/rici029/PlantPal