Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:smartpot [2021/05/31 14:13]
nicolae.grama [Hardware Design]
pm:prj2021:agrigore:smartpot [2021/05/31 18:37] (current)
nicolae.grama [Descriere generală]
Line 11: Line 11:
 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. 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.
  
-{{ :​pm:​prj2021:​agrigore:​diagrama_smartpot.png?​800 |}}+{{ :​pm:​prj2021:​agrigore:​diagrama_smartpot.png 
 +?nolink&​600 ​|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 26: Line 27:
   * Rezistori   * Rezistori
   * Potentiometru   * Potentiometru
 +  * Breadboard-uri
 +
 +__**Schema Electrica**__
 +
  
-==== 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. 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.
Line 33: Line 37:
 {{ :​pm:​prj2021:​agrigore:​smartpot_schema.png {{ :​pm:​prj2021:​agrigore:​smartpot_schema.png
 ?​nolink&​600 |}} ?​nolink&​600 |}}
 +
 +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 ===== ===== Software Design =====
  
-Codul folosit ​de arduino va fi scris cu ajutorul Arduino IDE. Pentru ajustarea setarilor sistemului voi creea un program, ce va comunica cu Arduino pe interfata seriala.+=== Mediu de dezvoltare ===
  
-===== Rezultate Obţinute =====+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 ===
  
-===== Concluzii =====+  * LiquidCrystal.h - librarie folosita pentru "​comunicarea"​ cu un LCD. 
 +  * Biblioteca standard arduino
  
 +=== Organizare cod si implementare ===
  
-===== Download =====+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.
  
-===== Jurnal =====+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 =====
 +
 +  * Breadboard LCD {{ :​pm:​prj2021:​agrigore:​smartpot_res2.jpeg?​nolink&​300 |}}
 +  * Breadboard Senzori si Motor {{ :​pm:​prj2021:​agrigore:​smartpot_res1.jpeg?​nolink&​300 |}}
 +  * Demo https://​youtu.be/​NoFXsfGDSRk
 +===== 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 =====
 +
 +  * GitHub Repo - https://​github.com/​gramanicu/​SmartPot
 +  * {{:​pm:​prj2021:​agrigore:​smart-pot-cod-sursa.zip|Arhiva cod}}
 +===== Jurnal =====
  
 +  * 26.04 - alegere tema
 +  * 16.05 - conectarea componentelor
 +  * 24.05 - finalizare soft
 +  * 23.05 - realizare schema electrica
 +  * 31.05 - finalizare proiect, filmare demo, documentatie
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-PDF: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​agrigore/​smartpot?​do=export_pdf+  * PDF: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​agrigore/​smartpot?​do=export_pdf 
 +  * Referinta cod Arduino: https://​www.arduino.cc/​reference/​en/​ 
 +  * Conectare LCD si cod de "​scroll":​ https://​create.arduino.cc/​projecthub/​pravynandas/​lcd-1602-scroll-text-line-1-static-line-2-scrolling-a25546 
 +  * Utilizare punte H (driver motor): https://​dzone.com/​articles/​driving-a-dc-motor-with-an-arduino-and-the-l293d-m
  
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2021/agrigore/smartpot.1622459610.txt.gz · Last modified: 2021/05/31 14:13 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