Differences

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

Link to this comparison view

pm:prj2024:avaduva:miruna.dolineanu [2024/05/17 12:40]
miruna.dolineanu detalii conectarea pinilor
pm:prj2024:avaduva:miruna.dolineanu [2024/05/27 08:53] (current)
miruna.dolineanu adaugat link la arhiva
Line 28: Line 28:
 ===Schema electrica:​=== ===Schema electrica:​===
  
-{{:​pm:​prj2024:​avaduva:​greenhouse_schematic2.png?​800|}}+{{:​pm:​prj2024:​avaduva:​greenhouse_schematic2.png?​700|}}
  
  
Line 49: Line 49:
 In videoclipul [[https://​drive.google.com/​file/​d/​1gAxWyCxrZFsgYSDzbIHuYKSDTMp47rTZ/​view?​usp=drive_link|acesta]] demonstrez functionalitatea modulului cu fotorezistor. Atunci cand pe suprafata fotorezistorului cade lumina, banda LED este stinsa, iar atunci cand nu primeste suficienta lumina, se aprind LEDurile. In videoclipul [[https://​drive.google.com/​file/​d/​1gAxWyCxrZFsgYSDzbIHuYKSDTMp47rTZ/​view?​usp=drive_link|acesta]] demonstrez functionalitatea modulului cu fotorezistor. Atunci cand pe suprafata fotorezistorului cade lumina, banda LED este stinsa, iar atunci cand nu primeste suficienta lumina, se aprind LEDurile.
  
 +===== Concepte folosite din laboratoare =====
 +
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2023|Timere]]:​ Am folosit un timer pentru schimbarea culorii LEDurilor la un interval de timp fixat (10 secunde). ​
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023-2024|PWM]]:​ Am folosit PWM pentru controlul servomotorului.
 +  * [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab4-2023-2024|ADC]]:​ Am folosit ADC pentru citirea semnalului analog dat 
 +de senzorul de umiditate.
  
 ===== Software Design ===== ===== Software Design =====
  
 +=== Mediu de dezvoltare ===
  
-<note tip+Pentru dezvoltarea codului am folosit VSCode impreuna cu PlatformIO. 
-Descrierea codului aplicaţiei (firmware)+ 
-  mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR+=== Librării şi surse 3rd-party === 
-  * librării ​şi surse 3rd-party (e.g. Procyon AVRlib+ 
-  algoritmi şi structuri ​pe care plănuiţi să le implementaţi +**1. <SimpleDHT.h>:** pentru folosirea senzorului DHT11 
-  * (etapa 3surse şi funcţii implementate + 
-</​note>​+Aceasta biblioteca a fost folosita pentru citirea datelor oferite de senzorul de temperatura. Cu ajutorul acesteia 
 +am reusit sa preiau informatii despre temperatura din interiorul serei. 
 + 
 +**2. <​Servo.h>​:** pentru controlul servomotorului 
 + 
 +Aceasta biblioteca a fost folosita pentru controlarea servomotorului ce are rolul de a deschide fereastra serei 
 +atunci cand temperatura din interior este crescuta. Biblioteca ofera o interfata pentru controlul pozitiei 
 +servomotorului pe baza unui unghi dat. 
 + 
 +**3. <​MsTimer2.h>:​** pentru folosirea timerului 2 
 + 
 +Biblioteca aceasta este folosita pentru schimbarea culorii LEDurilor la un interval ​de timp datBiblioteca  
 +inglobeaza in functiile sale configurarea timerului 2 al placii cu o rezolutie de 1ms. 
 + 
 +**4. <​WS2812.h>:​** pentru controlul LEDurilor 
 + 
 +Am folosit aceasta biblioteca pentru controlul benzii de LEDuri RGB. In cadrul bibliotecii se gasesc functionalitati 
 +ce permit setarea culorii fiecarui LED in parte. 
 + 
 +=== Variabile folosite in cod === 
 + 
 +  * Constante pentru descrierea pinilor de pe placa Arduino folositi in cod; 
 +  * Constante pentru pragurile senzorilor (temperaturaprocent umiditate), pozitiile servomotorului,​ culorile LEDurilor; 
 +  * Variabile pentru starea componentelor. 
 + 
 +=== Algoritmi ​şi structuri implementate === 
 + 
 +**void setup():​** 
 + 
 +initializeaza pinii si alte componente ncesare programului 
 + 
 +**void changeColor():** 
 + 
 +- functie ajutatoare pentru timer; cicleaza prin culorile prestabilite pentru LEDuri 
 + 
 +**void tempServo():​** 
 + 
 +- verifica temepratura primita de la senzorul DHT si actualizeaza starea servomotorului daca este cazul, 
 +rezultand in deschiderea sau inchiderea ferestrei serei. 
 + 
 +**void photoresLEDs():** 
 + 
 +- verifica daca fotorezistorul detecteaza prezenta luminii si in functie de aceasta aprinde sau stinge 
 +LEDurile. De fiecare data cand sunt aprinse, ciclul de culori va incepe de la lumina alba. 
 + 
 +**void humidityRelay():​** 
 + 
 +- calculeaza procentajul de uscare al solului ​pe baza datelor primite analog de la senzorul de umiditate 
 +si activeaza pompa de apa daca acesta este crescut. 
 + 
 +**void loop():** 
 + 
 +- apeleaza pe rand tempServo, photoresLEDs si humidityRelay pentru a asigura functionarea celor trei caracteristici 
 +principale ale proiectului.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul este finalizat! 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+In [[https://​drive.google.com/​file/​d/​15xH81i97WlqNslnePpTXLTfYoOsFksk8/​view?​usp=drive_link|acest]] videoclip demonstrez functionalitatea senzor umiditate + pompa de apa
 + 
 +[[https://​drive.google.com/​file/​d/​129CFhIYUzP9buSU14Ng_YMWd9mdR0LSj/​view?​usp=sharing|Aici]] prezint cum functioneaza fotorezistorul + LEDurile. 
 + 
 +Iar in [[https://​drive.google.com/​file/​d/​1Nc-2MRAZFHGhfa3khh4Kh6XCaYiMPjIi/​view?​usp=drive_link|aceasta]] inregistrare demonstrez functionarea senzorului de temperatura + servomotor.
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Am reusit sa finalizez proiectul cu toate functionalitatile pe care le-am planuit initial. A fost o provocare, dar si un proces interesant si satisfacator,​ deoarece am avut ocazia sa ma implic in aspecte tehnice si conceptuale cu care nu m-am intalnit prea des în cadrul facultatii. Mi-a placut sa invat cum sa conectez diferite componente intre ele si sa vad cum codul scris de mine produce efecte in viata reala. ​
  
 ===== Download ===== ===== Download =====
Line 76: Line 142:
 Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**.
 </​note>​ </​note>​
 +
 +https://​drive.google.com/​file/​d/​1vpRTO6CqU83oDTfOaHkoniJPTcKVU-3N/​view?​usp=drive_link
  
 ===== Jurnal ===== ===== Jurnal =====
Line 85: Line 153:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +https://​www.youtube.com/​watch?​v=dJJAQxyryoQ&​ab_channel=CircuitBasics ​ 
-Listă ​cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+- pentru utilizarea DHT11 
 + 
 +https://​www.optimusdigital.ro/​ro/​electronica-de-putere-module-cu-releu/​13084-modul-releu-cu-un-canal-comandat-cu-5-v.html?​search_query=releu+5v&​results=108 
 + 
 +- pentru conectarea si utilizarea releului 
 + 
 +https://​www.optimusdigital.ro/​ro/​optoelectronice-bare-cu-leduri/​753-bara-de-led-uri-rgb-ws2812-cu-8-led-uri.html?​search_query=banda+led&​results=23 
 + 
 +- pentru conectarea si utilizarea LEDurilor 
 + 
 +https://​www.youtube.com/​watch?​v=SfmHNb5QAzc&​ab_channel=educ8s.tv 
 + 
 +- pentru conectarea si utilizarea servomotorului
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2024/avaduva/miruna.dolineanu.1715938825.txt.gz · Last modified: 2024/05/17 12:40 by miruna.dolineanu
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