This is an old revision of the document!


SmartPot

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:

  • Arduino Uno
  • Senzor nivel apa (HW-038)
  • Senzor umiditate sol (HW-080)
  • Senzor lumina (LDR 5528)
  • Display LCD (NDS 1602A)
  • Pompa de apa 9V
  • Driver motoare (L293DNE)
  • Rezistori
  • Potentiometru
  • Breadboard-uri

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

  • LiquidCrystal.h - librarie folosita pentru “comunicarea” cu un LCD.
  • Biblioteca standard arduino

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

  • Display (LCD)
  • Pump (Pompa de apa)
  • Sensors (Senzorii de umiditate, nivel apa si lumina)
  • Comm (comunicarea pe interfata seriala).

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.

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2021/agrigore/smartpot.1622461176.txt.gz · Last modified: 2021/05/31 14:39 by nicolae.grama
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