This shows you the differences between two versions of the page.
pm:prj2022:imacovei:bejinarutalidamanuela [2022/05/26 16:19] talida.bejinaru |
pm:prj2022:imacovei:bejinarutalidamanuela [2022/05/27 12:23] (current) talida.bejinaru |
||
---|---|---|---|
Line 7: | Line 7: | ||
== Descriere generala == | == Descriere generala == | ||
- | Sistemul automat de pastrare a umiditatii folosește un senzor analogic ce detecteaza umiditatea 0-1023 ce va fi convertita în cod cu funcția map in 0-100% pentru a putea fi mai ușor de setat procentul. Cand umiditatea va scadea sub 50% Arduino-ul va activa un releu ce va controla pompa pana cand procentul de umiditate va fi adus la 50%. Cand nivelul umiditatii va fi între 50% și 60% buzzerul va fi acativat de 2 ori (tic-tic) iar cand va fi mai mic de 50% buzzerul va fi activat lung (tic). Daca dorim sa pornim manual sistemul, va fi apăsat butonul care va activa pompa si va suprascrie modul automat. Procentul de umiditate va fi vizibil pe calculator, prin serial. | + | Sistemul automat de pastrare a umiditatii folosește un senzor analogic ce detecteaza umiditatea 0-1023 ce va fi convertita în cod cu funcția map in 0-100% pentru a putea fi mai ușor de setat procentul. Cand umiditatea va scadea sub 50% Arduino-ul va activa un releu ce va controla pompa pana cand procentul de umiditate va fi adus la 50%. Cand nivelul umiditatii va fi între 50% și 60% buzzerul va fi acativat de 2 ori (tic-tic) iar cand va fi mai mic de 50% buzzerul va fi activat lung (tic). Daca dorim sa pornim manual sistemul, va fi apăsat butonul care va activa pompa si va suprascrie modul automat. Pompa va avea o dioda in paralel pentru a preveni curentul invers fiind un inductor. Procentul de umiditate va fi vizibil pe calculator, prin serial. |
Line 45: | Line 45: | ||
* Citirea senzorilor | * Citirea senzorilor | ||
- | Senzorul de umiditate este citit folosind funcția AnalogRead(), acesta oferă o valoare de la 0-1023 în funcție de semnalul analogic 0-5V. Pentru a putea interpreta aceasta valoare a fost folosită funcția map(), care cobertste aceasta valoare în procent 0 100%. | + | Senzorul de umiditate este citit folosind funcția AnalogRead(), acesta oferă o valoare de la 0-1023 în funcție de semnalul analogic 0-5V. Pentru a putea interpreta aceasta valoare a fost folosită funcția map(), care converteste aceasta valoare în procent 0 100%. |
* Citirea butonului | * Citirea butonului | ||
Line 55: | Line 55: | ||
* Comanda pompei | * Comanda pompei | ||
- | Comanda pompei se face in void loop() Aici este prezent un condițional care verifica procentul de umiditate dacă este între valoare de 50% și 60%, dacă acest luru este adevarat el porneste buzzerul pe modul beep. Dacă acest lucru nu este adevărat și procentul este sub 50% porneste buzzerul pe continuu, dacă îl oprește. Al doilea condițional urmărește tot procentul de umiditate, dacă acesta este sub 50% porneste pompa, dacă nu o oprește și tine începe sa primească comanda de la buton, bool-ul acestuia. | + | Comanda pompei se face in void loop() Aici este prezent un conditional care verifica procentul de umiditate dacă este între valoare de 50% și 60%, dacă acest luru este adevarat el porneste buzzerul pe modul beep. Daca acest lucru nu este adevarat și procentul este sub 50% porneste buzzerul pe continuu, dacă nu il oprește. Al doilea conditional urmarește tot procentul de umiditate, daca acesta este sub 50% porneste pompa, daca nu o opreste și incepe sa primeasca comanda de la buton, bool-ul acestuia. |
* Afișarea datelor | * Afișarea datelor | ||
- | Procentul de umiditate este afișat pe calculator pe serial prin intermediul cablului usb. Acest lucru este făcut prin pornirea unei conexiuni seriale cu viteza de 9600 cu ajutorul funcției Serial.begin(). După ce procentul a fost calculat se afișează acesta și un text care indică ce este parametrul afișat folosind funcția Serial.print. În final pe ultima linie se afiseaza semnalul procentului este folosită o funcție diferită Serial.println. Acesta e diferită avand terminatia în care vine din engleza de la new line adică linie nouă. Acesta ne ajuta sa trecem la următoarea linie cand afisam datele astfel ele sunt afisate una sub alta. | + | Procentul de umiditate este afisat pe calculator pe serial prin intermediul cablului usb. Acest lucru este facut prin pornirea unei conexiuni seriale cu viteza de 9600 cu ajutorul functiei Serial.begin(). După ce procentul a fost calculat se afiseaza acesta si un text care indica ce este parametrul afisat folosind functia Serial.print. În final pe ultima linie se afiseaza semnalul procentului este folosita o functie diferita Serial.println. Acesta e diferita avand terminatia în care vine din engleza de la new line adică linie noua. Acesta ne ajuta sa trecem la următoarea linie cand afisam datele astfel ele sunt afisate una sub alta. |
+ | Schema logica: | ||
+ | {{:pm:prj2022:imacovei:schema_logica.jpg?700|}} | ||
+ | |||
+ | == Rezultate obtinute == | ||
+ | |||
+ | {{:pm:prj2022:imacovei:pompa1.jpg?700|}} | ||
+ | |||
+ | |||
+ | {{:pm:prj2022:imacovei:pompa2.jpg?700|}} | ||
+ | |||
+ | |||
+ | https://youtu.be/lH-oTsqlWMU | ||
+ | |||
+ | == Concluzii == | ||
+ | |||
+ | Am creat un proiect functional pe care il pot folosi in casa. A fost o experienta interesanta, din care consider ca am invatat lucruri noi. | ||
+ | |||
+ | == Download == | ||
+ | |||
+ | Arhiva: | ||
+ | |||
+ | {{:pm:prj2022:imacovei:333cb_bejinarutalidamanuela_proiect_pm.zip|}} | ||
+ | |||
+ | == Jurnal == | ||
+ | |||
+ | 21 Mai 2022: Finalizare proiect | ||
+ | |||
+ | 24 Mai 2022: Finalizare documentatie | ||
+ | |||
+ | == Bibliografie/Resurse == | ||
+ | |||
+ | Resurse Hardware: | ||
+ | |||
+ | * https://www.arduino.cc/en/hardwarehttps://www.arduino.cc/en/hardware | ||
+ | * https://en.wikipedia.org/wiki/DC_motor | ||
+ | * https://www.electronicshub.org/what-is-relay-and-how-it-works/ | ||
+ | * https://fritzing.org/projects/debounce-interrupt#:~:text=This%20is%20an%20example%20of,the%20switch%20state%20to%20flicker. | ||
+ | * https://www.watelectrical.com/what-are-analog-sensors-types-and-their-characteristics/ | ||
+ | |||
+ | |||
+ | Resurse Software: | ||
+ | |||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2022 | ||
+ | * https://www.arduino.cc/en/software | ||
+ | * https://www.tutorialspoint.com/cplusplus/cpp_conditional_operator.htm | ||
+ | * https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ | ||
+ | * https://github.com/arduino/arduino-examples/tree/main/examples | ||
+ | |||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||