This shows you the differences between two versions of the page.
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.g. AVR Studio, CodeVisionAVR) | + | === 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 3) surse ş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 dat. Biblioteca | ||
+ | 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 (temperatura, procent 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> | ||