This shows you the differences between two versions of the page.
pm:prj2021:abirlica:sistem_antiincendiu [2021/06/03 17:40] amalia.palaghiu [Jurnal] |
pm:prj2021:abirlica:sistem_antiincendiu [2021/06/03 21:12] (current) amalia.palaghiu [Software Design] |
||
---|---|---|---|
Line 40: | Line 40: | ||
* Arduino IDE | * Arduino IDE | ||
- | Codul sursa se afla in fisierul source.ino. In primul rand am definit constantele: pompa, senzorul de gaz si senzorul de temperatura. | + | Codul sursa se afla in fisierul project.ino. In primul rand am definit constantele: pompa, senzorul de gaz si senzorul de umiditate. |
Functiile implementate: | Functiile implementate: | ||
* functia **setup**: aici declar pinii ca fiind de tip input sau output: pentru senzorul de umiditate si senzorul de gaz input, iar pentru pompa output. De asemenea, tot aici initializez si seriala. | * functia **setup**: aici declar pinii ca fiind de tip input sau output: pentru senzorul de umiditate si senzorul de gaz input, iar pentru pompa output. De asemenea, tot aici initializez si seriala. | ||
* functia print: in aceasta functie afisez intr-un mod elegant pe seriala valorile citite de cei doi senzori. | * functia print: in aceasta functie afisez intr-un mod elegant pe seriala valorile citite de cei doi senzori. | ||
- | * functia **loop**: citesc valorile de pe cei doi pini conectati la cei doi senzori cu ajutorul functiei analogRead(). Compar valoarea umiditatii citita de catre senzor cu o valoare de threashold definita in prealabil de mine. Acea valoare de threashold reprezinta un prag, daca valoarea citita de pe senzor depaseste acest prag este echivalent cu faptul ca incendiul a fost stins. In acest caz, afisez pe ecran valorile citite de senzori prin intermediul functiei print() descrisa anterior sibmesajul "PUMP OFF". Daca nu se intra pe acest caz, verific daca valoarea citita de senzorul de gaz este mai mare decat obvaloare de threashold pentru gaz definita in prealabil. Si aceasta valoare este un prag, daca valoarea citita de senzorul de gaz depaseste acest prag inseamna ca a pornit un incendiu. Si in acest caz, afisez valorile citite de catre senzori pe seriala, dar de data aceasta alaturi de mesajul "PUMP ON". Daca nu suntem in niciunul din cele doua cazuri, inseamna ca nu s-a intamplat nimic si doar afisez valorile citite de pe senzori. Aceste citiri si verificari se intampla o data la doua secunde. | + | * functia **loop**: citesc valorile de pe cei doi pini conectati la cei doi senzori cu ajutorul functiei analogRead(). Compar valoarea umiditatii citita de catre senzor cu o valoare de threshold definita in prealabil de mine. Acea valoare de threshold reprezinta un prag, daca valoarea citita de pe senzor depaseste acest prag este echivalent cu faptul ca incendiul a fost stins. In acest caz, afisez pe ecran valorile citite de senzori prin intermediul functiei print() descrisa anterior si mesajul "PUMP OFF". Daca nu se intra pe acest caz, verific daca valoarea citita de senzorul de gaz este mai mare decat o valoare de threshold pentru gaz definita in prealabil. Si aceasta valoare este un prag, daca valoarea citita de senzorul de gaz depaseste acest prag inseamna ca a pornit un incendiu. Si in acest caz, afisez valorile citite de catre senzori pe seriala, dar de data aceasta alaturi de mesajul "PUMP ON". Daca nu suntem in niciunul din cele doua cazuri, inseamna ca nu s-a intamplat nimic si doar afisez valorile citite de pe senzori. Aceste citiri si verificari se intampla o data la doua secunde. |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Line 55: | Line 55: | ||
===DEMO=== | ===DEMO=== | ||
- | TO DO | + | [[https://youtu.be/WY3c2_SMsdU|Link youtube]] |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi-a placut sa lucrez la acest proiect si spre surprinderea mea a iesit mult mai repede decat ma asteptam. Cea mai mare greutate a fost sa atasez pompita la tot sistemul, asta pentru ca prima data am comandat un releu de 24V si mi-a dat multe batai de cap. In final, am mai comandat un releu de 5V si cu acela a mers totul foarte repede (probabil si pentru ca pana in momentul respectiv m-am uitat la aproape toate tutorialele de pe internet legat de acest subiect =) ). | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Pentru versionarea codului am folosit GitHub, iar la urmatorul link se afla codul sursa project.ino: [[https://github.com/amaliapalaghiu/Proiect-PM|Link github]] |
- | 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> | ||
+ | ===== Bibliografie/Resurse ===== | ||
+ | [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet ATmega328P]] | ||
- | ===== Bibliografie/Resurse ===== | + | [[https://www.mouser.com/datasheet/2/321/605-00008-MQ-2-Datasheet-370464.pdf|Datasheet senzor gaz MQ-2]] |
+ | |||
+ | [[https://www.hackster.io/Aritro/smoke-detection-using-mq-2-gas-sensor-79c54a|Inspiratie lucru senzor gaz MQ-2]] | ||
+ | |||
+ | [[https://randomnerdtutorials.com/guide-for-relay-module-with-arduino/|Detalii folosire releu]] | ||
- | <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> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||