Table of Contents

SmartPot

Nicolae Grama

Introducere

SmartPot este un sistem automat de udare a plantelor, intr-un ghiveci. Astfel, utilizatorul poate seta sistemul astfel incat planta sa fie udata adecvat, la intervale de timp fixe, in functie de umiditatea solului, etc..

Descriere generală

Sistemul este controlat cu ajutorul unei placi Arduino Uno, la care sunt conectati senzorii (umiditate, nivel apa, lumina), display-ul LCD, pompa de apa si alte componente. Placa Arduino poate comunica prin interfata seriala cu un calculator/RasberryPI, ce ii poate trimite diferite comenzi, pentru a ajusta setarile sistemului.

Hardware Design

Urmatoarele componente vor fi necesare:

Schema Electrica

Senzorul de nivel de apa si cel de umiditate a solului sunt de fapt niste rezistente variabile. Din acest motif, in schema electrica au fost inlocuiti cu 2 potentiometre.

Pe breadboard-ul pe care am montat lcd-ul, se afla un potentiometru folosit pentru a ajusta contrastul ecranului. Este singura “componenta” a sistemului controlata hardware.

Software Design

Mediu de dezvoltare

Am folosit Visual Studio Code (instaland extensia pentru dezvoltarea pe arduino). Bibliotecile Arduino au fost instalate impreuna cu Arduino IDE. Pentru testare, am folosit conexiunea seriala, in Arduino IDE (VS Code nu ofera permite transmiterea de mesaje catre arduino).

Biblioteci

Organizare cod si implementare

Codul este impartit in doua componente: “SmartPot.ino” (functionalitati specifice acestui proiect) si ”/libraries”, unde sunt implementate diferite functionalitati, stocate sub forma unor clase C++:

O data la 12 ore, se verifica senzorii: ce nivel de apa se afla in rezervor, luminozitatea mediului si umiditatea solului. Daca lumina este insuficienta, un mesaj este afisat la lcd (pentru a avertiza utilizatorul). La fel se intampla si in cazul celorlalte valori citite si in plus: cand nu este suficienta apa in rezervor, sistemul nu va mai incerca sa ude planta din ghiveci. Daca este suficienta apa si umiditatea solului este scazuta, se va uda planta.

Aceste verificari se fac pentru prima data cand se porneste sistemul, apoi la intervalul stabilit. De asemenea, se pot trimite diferite comenzi pe interfata seriala. Unele sunt folosite pentru a schimba comportamentul sistemului, schimband diferite variabile, altele sunt folosite pentru a porni pompa si uda planta sau pentru a citi valorile senzorilor (fara a uda planta). Singurul moment cand comenzile nu pot fi citite (instant) este in momentul in care sistemul executa o alta comanda.

Senzorii nu sunt alimentati pana in momentul in care vrem sa citim date, deoarece se pot deteriora (in special cei care stau in medii umede).

Rezultate Obţinute

Concluzii

Consider ca acest proiect m-a ajutat sa “fixez” cunostintele dobandite la aceasta materie. Diferite lucruri ca ar putea fi imbunatatite la proiect ar fi: controlul luminozitatii “backlight-ului” lcd-ului din software (pentru a putea reduce consumul), salvarea configuratiei sistemului (pentru ca sa nu trebuiasca sa fie reconfigurat de fiecare data cand este pornit).

Download

Jurnal

Bibliografie/Resurse

Export to PDF