This shows you the differences between two versions of the page.
pm:prj2022:cstan:100 [2022/05/27 15:29] cristian.udroiu [Descriere generală] |
pm:prj2022:cstan:100 [2022/05/27 17:56] (current) cristian.udroiu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 13: | Line 13: | ||
<note tip> | <note tip> | ||
- | {{:pm:prj2022:cstan:proiect_pm_fire_detector.jpg?300|}} | + | |
+ | In momentul in care nu este detectat foc alarma va produce luminarea intermitenta a unui led de culoare albastra care anunta atat faptul ca in camera nu este foc, dar si functionalitatea alarmei. In momentul in care senzorul a detectat foc, acesta va determina stingerea led-ului albastru si aprinderea unui led rosu, dar si producerea unui zgomot facut de buzzer pentru a anunta in casa aparitia focului. | ||
+ | |||
+ | Starea alarmei este in permanenta transmisa la un server in internet prin intermediul unui ethernet shield conectat la placuta, iar utilizatorul va cunoaste mereu starea alarmei in acel moment de timp. | ||
+ | |||
+ | {{:pm:prj2022:cstan:proiect_pm_fire_detector.jpg?400|}} | ||
Line 21: | Line 26: | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | **Piese utilizate** : |
- | * listă de piese | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | - Placa de dezvoltare Arduino UNO \\ - Cablu usb A-B\\ - Breadboard\\ - Fire jumper\\ - Led Rosu si Albastru\\ - Senzor de flacara infrarosu\\ - Buzzer\\ - Ethernet Shield\\ \\ |
- | * diagrame de semnal | + | Placuta de ArduinoUno este conectata prin intermediul unui cablu usb A-B la calculator. Alimentarea se face la o tensiune de 5V. |
- | * rezultatele simulării | + | |
+ | Ethernet Shield-ul se suprapune cu Arduino, e alimentat tot la 5V si sunt legate prin pinii 13(SS), 12(MOSI), 11(MISO), 10(SCK). Acesta se conecteaza la router printr-un cablu de retea. Serverul din internet pe care se afiseaza starea alarmei este in aceeasi retea cu routerul, calculatorul si implicit shield-ul de ethernet. | ||
+ | |||
+ | Senzorul de flacara infrarosu e alimentat intre GND si VCC=5V. Acesta e conectat la pinul 7 de pe placuta. | ||
+ | |||
+ | Buzzerul, LED-ul rosu si cel albastru sunt legate la pinii 9, 6 si respectiv 12. | ||
+ | {{:pm:prj2022:cstan:schema.jpeg?600|}} | ||
</note> | </note> | ||
Line 32: | Line 43: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Pentru implementarea detectiei focului am procedat in urmatorul mod: |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | Am folosit pinii 6, 12, 9 de pe Arduino pentru LED-ul rosu, LED-ul albastru si respectiv Buzzer. Acestia au fost setati ca pini de Output in setup. Am folosit pinul 7 pentru senzorul de flacara infrarosu si pe acesta l-am setat ca pin de input in setup. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | In loop am implementat intreaga logica de detectie, si anume: citesc valoarea digitala a senzorului si o compar cu doua valori LOW si HIGH. In momentul in care s-a gasit un rezultat apropiat de LOW, inseamna ca flacara a fost detectata si voi porni LED-ul rosu(folosind digitalWrite) si buzzerul(folosind tone). Voi lasa minim 1 secunda aceasta stare a alarmei sa persiste. Cand nu se detecteaza flacara, setez LED-ul rosu pe LOW si buzzerul inactiv(noTone). Pentru a arata ca alarma functioneaza in parametri si nu e detectata flacara folosesc un LED albastru care face blink. |
+ | |||
+ | Pentru realizarea conexiunii la internet am procedat in urmatorul mod: | ||
+ | Am asignat o adresa MAC pentru shield-ul de Ethernet si un IP folosind functia localIP din biblioteca Ethernet. Am creat un server pe portul 80 folosind un obiect de tip EthernetServer. Am pornit acest server in setup si am afisat adresa IP la care se gaseste. | ||
+ | |||
+ | In loop am creat un obiect de tip client folosind metoda available a serverului. Daca clientul este conectat pot trimite cereri de tip HTTP la server. Am trimis periodic cereri pentru a pastra conexiunea dintre client si server, afisand in client cererile. Pentru a anunta utilizatorul daca a fost detectat foc am creat doua tipuri de pagini HTML pe care le afiseaza clientul la fiecare 2 secunde. | ||
+ | |||
+ | **Biblioteci folosite:**\\ - SPI.h pentru comunicarea intre shield si arduino\\ - Ethernet.h pentru webserver-ul in care afisez starea alarmei | ||
</note> | </note> | ||
Line 42: | Line 61: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Alarma functioneaza cum mi-am propus. Dupa conectarea la o sursa de alimentare(laptop) si la router aceasta se porneste. Becul albastru e pornit si face blink in continuu pentru a arata functionarea. Cand senzorul gaseste foc se aprind becul rosu si buzzerul. Pe webserverul asignat de router este o pagina in care se arata starea alarmei. |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Alarma detecteaza un grad ridicat de foc dupa cum se observa si in video. Lumanarile sunt folosite pentru a exemplifica aprinderea acesteia doar in situatia unui incendiu. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <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ă ;-). | + | {{:pm:prj2022:cstan:udroiu_cristian_333cc_fire_detector.zip|}} |
- | + | ||
- | 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> | ||
Line 64: | Line 83: | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | [[https://www.arduino.cc/en/Reference/Ethernet]]\\ |
+ | [[https://www.arduino.cc/en/reference/SPI]] | ||
</note> | </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> |