This shows you the differences between two versions of the page.
pm:prj2023:dene:smartgreenhouse [2023/05/28 13:34] daria.ciobanu [Software Design] |
pm:prj2023:dene:smartgreenhouse [2023/05/29 16:31] (current) daria.ciobanu [Schema electrică:] |
||
---|---|---|---|
Line 18: | Line 18: | ||
* Arduino UNO | * Arduino UNO | ||
* breadboard | * breadboard | ||
- | * senzor pentru temperatură | + | * senzor pentru temperatură DHT |
- | * senzor pentru umiditate | + | * senzor pentru umiditatea solului |
* pompă de apă | * pompă de apă | ||
* buton | * buton | ||
Line 29: | Line 29: | ||
====Schema electrică:==== | ====Schema electrică:==== | ||
{{:pm:prj2023:dene:hardware_prj_daria.png?750|}} | {{:pm:prj2023:dene:hardware_prj_daria.png?750|}} | ||
- | {{:pm:prj2023:dene:poza_d.jpeg?600|}} | ||
Line 67: | Line 66: | ||
* Temperatura determinata de senzorul DHT pornește sau oprește ventilatorul | * Temperatura determinata de senzorul DHT pornește sau oprește ventilatorul | ||
+ | |||
+ | if(DHT.temperature > 20) { | ||
+ | digitalWrite(FAN_PIN, HIGH); | ||
+ | } else { | ||
+ | digitalWrite(FAN_PIN, LOW); | ||
+ | } | ||
+ | |||
+ | |||
* Valorile citite de la senzorul de umiditate determină pornirea pompei de apă și schimbarea mesajului de pe diplay | * Valorile citite de la senzorul de umiditate determină pornirea pompei de apă și schimbarea mesajului de pe diplay | ||
* Am delimitat 4 stări: | * Am delimitat 4 stări: | ||
Line 105: | Line 112: | ||
} | } | ||
} | } | ||
+ | | ||
| | ||
+ | |||
+ | * Butonul care declanșeaza muzica atunci când posesorul serei dorește este activat prin folosirea unei întreruperi | ||
+ | * Am implementat funcția **playMusic()** pentru a structura mai bine codul, folosind laboratorul 3 pentru redarea notelor melodiei | ||
+ | |||
+ | if (interruptCount > 0) { | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0, 0); | ||
+ | lcd.print("Cool music :) "); | ||
+ | lcd.setCursor(0, 1); | ||
+ | lcd.print("Shake it off "); | ||
+ | playMusic(); | ||
+ | interruptCount = 0; | ||
+ | } | ||
+ | |||
+ | |||
+ | * Pentru ca plantele să se bucure de muzică și în absența unei persoane, difuzorul va porni o data pe zi | ||
+ | * Am implementat un timer care apelează funcția playMusic() când funcția millis() va ajunge la intervalul cerut (86400s), | ||
+ | și am afișat pe LCD timpul trecut de la pornirea sistemului serei | ||
+ | |||
+ | const unsigned long interval = 86400000; | ||
+ | unsigned long currentMillis = millis(); | ||
+ | if (currentMillis - previousMillis >= interval) { | ||
+ | previousMillis = currentMillis; | ||
+ | digitalClockDisplay(); | ||
+ | delay(1000); | ||
+ | lcd.setCursor(0, 1); | ||
+ | lcd.print("Music o'clock "); | ||
+ | playMusic(); | ||
+ | } | ||
+ | void digitalClockDisplay() { | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0, 0); | ||
+ | printDigits(hour()); | ||
+ | lcd.print(":"); | ||
+ | printDigits(minute()); | ||
+ | lcd.print(":"); | ||
+ | printDigits(second()); | ||
+ | } | ||
Line 112: | Line 158: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | {{:pm:prj2023:dene:img_6758.jpg?600|}} | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Demo:[[https://drive.google.com/drive/folders/1kLPGlZ-ddIWddBkMJQOYuobudT4AaleN?usp=sharing]] |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Realizarea acestui proiect mi-a oferit o înțelegere mai profundă a materiei și a aspectelor practice ale acesteia, în special cele legate de interconectarea și utilizarea componentelor hardware. Astfel, am reușit să creez un produs funcțional și util, îmbinând ideea proiectului cu pasiunea mea pentru plante. În timpul procesului, am întâmpinat mici probleme, cum ar fi sincronizarea LCD-ului cu informațiile primite de la senzor, dar și implementarea întreruperilor, unde am fost nevoită să adaug un delay pentru a elimina efectul de debouncing. Am depasit provocarile intampinate si am obținut o implementare eficientă și un produs fizic pe care îl voi utiliza cu bucurie pe viitor. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note tip> |
- | 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ă ;-). | + | Drive:[[https://drive.google.com/drive/folders/1kLPGlZ-ddIWddBkMJQOYuobudT4AaleN?usp=sharing]] |
- | 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**. | + | Zip:{{:pm:prj2023:dene:smart_green.zip|}} |
- | </note> | + | </note> |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * 05.05.2023 - Milestone proiect - documentație: alegerea temei proiectului și a funcționalităților de bază |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 18.05.2023 - Milestone - hardware: conectarea elementelor hardware și realizarea schemei electrice |
- | </note> | + | * 26.05.2023 - Milestone - software: implementarea codului și finalizarea proiectului |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | === Resurse Software === |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://github.com/robsoncouto/arduino-songs |
- | </note> | + | * https://projecthub.arduino.cc/plouc68000/simplest-uno-digital-clock-ever-03c185 |
+ | * https://www.youtube.com/watch?v=7KdhL_gAqHQ&list=LL&index=4&ab_channel=PassionTechKLM | ||
+ | |||
+ | === Resurse Hardware === | ||
+ | * https://mytectutor.com/soil-moisture-sensor-with-arduino-automatic-plant-irrigation-system/ | ||
<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> | ||