Differences

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

Link to this comparison view

pm:prj2025:ccristi:alex.moldoveanu0510 [2025/05/26 23:57]
alex.moldoveanu0510 [FloraCare]
pm:prj2025:ccristi:alex.moldoveanu0510 [2025/05/30 09:10] (current)
alex.moldoveanu0510 [Software Design]
Line 2: Line 2:
  
 <​note>​ <​note>​
-Alex-Adrian Moldoveanu ​ 
 FOST Cooler pad de laptop ​ FOST Cooler pad de laptop ​
-PS: Nu stiu exact ce s a stricat la cooler, dar n am reusit in ultimele zile sa gasesc un inlocuitor asa ca am divigat cu un prioect lucrat precedent care  consider ca indeplineste in continuare conditiile. 
 </​note>​ </​note>​
  
 +
 +<​note>​
 +PS: Nu stiu exact ce s a stricat la cooler, dar n am reusit in ultimele zile sa gasesc un inlocuitor asa ca am divigat cu un prioect lucrat precedent care  consider ca indeplineste in continuare conditiile.
 +</​note>​
 ===== Introducere ===== ===== Introducere =====
  
Line 23: Line 25:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Interacțiunea cu sistemul are loc cu ajutorul unor butoanecare controlează afișarea temperaturii pe LCD, cât și un Buzzer și LEDuri ​pentru ​alegerea manuală ​modului de răcire ​ventilatorului pentru laptopCuloarea LEDurilor indică treapta aleasăașa cum se găsește pe unele laptopuri ​de pe piațăExistă totodată și o setare automată de control a ventilatoarelor pentru o răcire optimă și un consum redus de energie.+Pentru un control mai precis asupra comportamentului sistemului, actuatorii vor functiona in intervale bine definite. Udarea plantei va avea loc doar dimineata si seara, pentru a respecta ciclul natural al solului si evita udarea in excesIluminarea artificiala suplimentara va fi activata exclusiv pe durata zileipermitand plantei sa aiba si perioade ​de intuneric necesare dezvoltariiStimulul auditiv va fi redat zilnic, dar doar in anumite intervale orare predefinite,​ astfel incat sa nu interfereze cu alte functii sau perioade ​de repaus.
  
-{{:pm:prj2024:ccontasel:merge.png |}}+Pentru flexibilitate si usurinta in demonstratie,​ toate functiile pot fi declansate si manual, la comanda, indiferent de momentul din zi. 
 + 
 +{{:pm:prj2025:ccristi:poza2.png?300|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 Listă de componente: Listă de componente:
 +
 +• Arduino Uno
 +• Water Pump
 +• Light Sensor
 +• Speaker
 +• Clock Module
 +• Breadboard
 +• Cables
 +• LEDs
 +
 +Mai jos se regaseste desgnul orientativ in Tinkerpad:
 +
 +{{:​pm:​prj2025:​ccristi:​poza.png|}}
 +
 +Mai jos se ragaseste o poza hardware a proiectului:​
 +
 +{{:​pm:​prj2025:​ccristi:​poza3.png?​300|}}
 +
 +De asemenea si un video demonstrativ:​
 +
 +https://​youtu.be/​8lZL-eniPDA
 +
 +===== Software Design =====
 +
 +
 +Design-ul software va fi realizat in Arduino IDE.
 +
 +Am utilizat SoftwareSerial si DFRobotDFPlayerMini drept biblioteci.
 +
 +<​code>​
 +
 +#include "​Arduino.h"​
 +#include "​SoftwareSerial.h"​
 +#include "​DFRobotDFPlayerMini.h"​
 +#include "​LiquidCrystal_I2C.h"​
 +
 +// LCD pe adresa 0x27, cu 16 coloane si 2 randuri
 +
 +LiquidCrystal_I2C lcd(0x27, 16, 2);
 +
 +SoftwareSerial mySoftwareSerial(10,​ 11); // RX, TX
 +DFRobotDFPlayerMini myDFPlayer;
 +
 +void printDetail(uint8_t type, int value);
 +
 +int play_in_progress=0;​ // if = 1 then player is working
 +
 +const int buttonPin = 2;
 +const int buttonPin2 = 7;
 +const int relayPin = 2;
 +int buttonState = 0;
 +
 +// Intervalul de intrare
 +const int inputMin = 1;
 +const int inputMax = 1021;
 +
 +// Intervalul de ieșire
 +const int outputMin = 1;
 +const int outputMax = 30;
 +
 +void setup()
 +{
 +  mySoftwareSerial.begin(9600);​
 +  Serial.begin(115200);​
 +  pinMode(buttonPin,​ INPUT);
 +  pinMode(buttonPin2,​ INPUT);
 +  pinMode(relayPin,​ OUTPUT);
 +  digitalWrite(relayPin,​ HIGH);
 +  ​
 +  lcd.begin();​
 +  lcd.backlight();​
 +  lcd.clear();​
 +  lcd.setCursor(0,​ 0);
 +  lcd.print("​Sistem activ"​);​
 +
 +  myDFPlayer.begin(mySoftwareSerial);​
 +}
 +
 +void music_switch() {
 +  if(play_in_progress == 0) {
 +    myDFPlayer.play(1); ​ //Play the first mp3
 +    play_in_progress = 1;
 +  }
 +  else {
 +    myDFPlayer.pause(); ​ //stops the music
 +      play_in_progress = 0;  // no longer playing
 +  }
 +}
 +
 +void manual_watering() {
 +
 +  digitalWrite(relayPin,​ LOW);
 +  while (buttonState == HIGH) {
 +    buttonState = digitalRead(buttonPin2);​
 +  }
 +
 +  digitalWrite(relayPin,​ HIGH);
 +
 +  lcd.begin();​
 +  lcd.backlight();​
 +  lcd.clear();​
 +  lcd.setCursor(0,​ 0);
 +  lcd.print("​Sistem activ"​);​
 +  ​
 +}
 +
 +void loop()
 +{
 +  int soundVolume = ((analogRead(A1) - inputMin) * (outputMax - outputMin + 1) / (inputMax - inputMin + 1)) + outputMin;
 +  myDFPlayer.volume(soundVolume);​
 +
 +  int waterSensor = analogRead(A2);​
 +  int lightSensor = analogRead(A0);​
 +
 +  Serial.print(F("​Valoare senzor de lumina: "));
 +  Serial.println(lightSensor);​
 +  Serial.print(F("​Valoare senzor de umiditate: "));
 +  Serial.println(waterSensor);​
 +
 +  if (waterSensor < 100 && lightSensor < 50) {
 +    digitalWrite(relayPin,​ LOW);
 +
 +    lcd.clear();​
 +    lcd.setCursor(0,​ 0);
 +    lcd.print("​Udare automata"​);​
 +
 +    delay(2000);​
 +    digitalWrite(relayPin,​ HIGH);
 +  }
 +
 +  buttonState = digitalRead(buttonPin);​
 +  if (buttonState == HIGH) {
 +    music_switch();​
 +  }
 +  delay(100);
 +
 +  buttonState = digitalRead(buttonPin2);​
 +  if (buttonState == HIGH) {
 +    manual_watering();​
 +  }
 +
 +</​code>​
 +
 +<​code>​
 +setup() – initializeaza comunicarea seriala, seteaza pinii si porneste modulul audio DFPlayer.
 +
 +music_switch() – comuta intre redarea si oprirea muzicii in functie de starea curenta.
 +
 +manual_watering() – activeaza pompa atata timp cat butonul de udare manuala este apasat.
 +
 +loop() – ruleaza continuu, citeste senzorii, ajusteaza volumul, face udarea automata si gestioneaza actiunile butoanelor.
 +</​code>​
 +===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-  * **Arduino UNO**   +Care au fost rezultatele obţinute în urma realizării proiectului vostru.
-  * **Cooling pad simplu** ​  +
-  * **Ecran LCD 1602 IIC**   +
-  * **Senzor temperatură LM335** ​  +
-  * **Potentiometru B5K**   +
-  * **Leduri** ​  +
-  * **Buzzer** ​  +
-  * **Breadboard**  ​+
 </​note>​ </​note>​
 +
 +Irigarea s-a realizat automat in functie de umiditatea solului, un senzor analogic declansand pornirea unei pompe de apa printr-un releu, la sesizarea lipsei de lumina data de la fotorezistenta.
 +
 +Dupa udare, utilizatorul a fost notificat sonor printr-o melodie redata de un buzzer (+ vizual pe LCD).
 +
 +Sistemul a functionat stabil, fara blocaje, cu afisari corecte si control fiabil al releului, optimizat printr-o logica eficienta de initializare.
 +
 +===== Concluzii =====
 +
 +Proiectul propus ofera o solutie practica si eficienta pentru monitorizarea si udarea automata a plantelor, fara ca utilizatorul sa intervina zilnic. Prin folosirea senzorilor si a componentelor de afisare si control, sistemul poate gestiona parametri importanti precum umiditatea solului, temperatura si nivelul apei.
 +
 +Proiectul este usor de refacut, adaptabil si poate fi extins. Desi a fost gandit pentru plante de apartament, structura modulara permite folosirea lui si in aplicatii mai complexe, inclusiv in sisteme IoT.
 +===== Download =====
 +
 +<note warning>
 +O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).
 +
 +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>​
 +
 +
 +===== Jurnal =====
 +
 +<note tip>
 +Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
 +</​note>​
 +
 +===== Bibliografie/​Resurse =====
 +
 +<​note>​
 +Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.
 +</​note>​
 +
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
 +
 +- Pentru modulul MP3: https://​www.instructables.com/​Tutorial-of-MP3-TF-16P/​
 +Cat si datasheetul:​ https://​www.electronicoscaldas.com/​datasheet/​DFR0299-DFPlayer-Mini-Manual.pdf?​srsltid=AfmBOopRyqEZlLLECGWZad9qkzdOQHsyO3ZfRmh8OgPTLugA3A6b7Q1f
 +
 +- Releu datasheet: https://​www.electronicoscaldas.com/​datasheet/​DFR0299-DFPlayer-Mini-Manual.pdf?​srsltid=AfmBOopRyqEZlLLECGWZad9qkzdOQHsyO3ZfRmh8OgPTLugA3A6b7Q1f
 +
 +- ALPHA TEST: displayul LCD: https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd+&​results=215
  
pm/prj2025/ccristi/alex.moldoveanu0510.1748293058.txt.gz · Last modified: 2025/05/26 23:57 by alex.moldoveanu0510
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