This shows you the differences between two versions of the page.
pm:prj2021:amocanu:alarma_de_incendiu [2021/05/31 16:14] diana.schneider |
pm:prj2021:amocanu:alarma_de_incendiu [2021/06/03 08:58] (current) diana.schneider |
||
---|---|---|---|
Line 18: | Line 18: | ||
**Schema Bloc** | **Schema Bloc** | ||
- | {{proiect_pm_alarma_incendiu.jpg}} | + | {{proiect_pm_alarma_incendiu.jpg?420x300}} |
==== Hardware Design ==== | ==== Hardware Design ==== | ||
- | **Schema Electrica** | + | **Lista piese** |
- | + | ||
- | {{schema_electrica_alarma_incendiu.jpeg}} | + | |
- | + | ||
- | **Lista Piese** | + | |
* Placa de dezvoltare Arduino UNO | * Placa de dezvoltare Arduino UNO | ||
Line 35: | Line 31: | ||
* Buzzer | * Buzzer | ||
* Ethernet Shield | * Ethernet Shield | ||
+ | |||
+ | **Descriere generala a modulelor folosite** | ||
+ | |||
+ | Placuta de ArduinoUno este conectata prin intermediul unui cablu usb A-B la calculator. Alimentarea se face la o tensiune de 5V. | ||
+ | |||
+ | 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. | ||
+ | |||
+ | **Schema electrica** | ||
+ | |||
+ | {{schema_electrica_alarma_incendiu.jpeg?980x800}} | ||
+ | |||
+ | {{schema_alarma.jpeg?800x800}} | ||
+ | |||
+ | ==== Software Design ==== | ||
+ | **Implementare** | ||
+ | |||
+ | * Pentru implementarea detectiei focului am procedat in urmatorul mod: | ||
+ | |||
+ | 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. | ||
+ | |||
+ | 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 flacar folosesc un LED albastru care face blink, oscileaza intre pornit-oprit timp pentru 500ms. | ||
+ | |||
+ | * 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. Daca nu e detectat foc creez o pagina HTML cu un titlu si o imagine sugestiva, voi oferi ulterior print screen-uri in sectiunea Rezultate Obtinute pentru a ilustra. Daca e detectat foc am creat tot o pagina sugestiva, cu diferenta ca am adaugat un sunet de tip notificare pentru a anunta utilizatorul in cazul in care are pagina in taskbar si nu o observa. Am realizat toata aceasta structura folosind sintaxa HTML pe care am afisat-o in client. | ||
+ | |||
+ | Am setat ca pagina sa faca refresh din 2 in 2 secunde pentru a fi in permanenta concordanta cu situatia reala. | ||
+ | |||
+ | **Biblioteci folosite** | ||
+ | |||
+ | Am folosit: | ||
+ | * SPI.h pentru comunicarea intre shield si arduino | ||
+ | * Ethernet.h pentru webserver-ul in care afisez starea alarmei | ||
+ | |||
+ | ==== Rezultate Obtinute ==== | ||
+ | |||
+ | 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 si buzzerul. | ||
+ | Pe webserverul asignat de router este o pagina in care se arata cu un refresh din 2 in 2 secunde starea alarmei. | ||
+ | |||
+ | {{alarma_incendiu_poza1.jpeg?300x400}}{{alarma_incendiu_poza2.jpeg?300x400}} | ||
+ | |||
+ | {{alarma_incendiu_poza3.jpeg?300x250}}{{alarma_incendiu_poza4.jpeg?300x250}} | ||
+ | |||
+ | Prezentarea video : | ||
+ | |||
+ | https://youtu.be/4CQbufMNYS0 | ||
+ | |||
+ | ==== 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 ==== | ||
+ | |||
+ | {{331cc_schneiderdiana_alarmadeincendiu.zip}} | ||
==== Bibliografie / Resurse ==== | ==== Bibliografie / Resurse ==== | ||
Line 40: | Line 96: | ||
https://ocw.cs.pub.ro/courses/pm/prj2021/amocanu/alarma_de_incendiu | https://ocw.cs.pub.ro/courses/pm/prj2021/amocanu/alarma_de_incendiu | ||
* Aceasta pagina in format PDF: | * Aceasta pagina in format PDF: | ||
- | {{alarma_de_incendiu.pdf|}} | + | https://ocw.cs.pub.ro/courses/pm/prj2021/amocanu/alarma_de_incendiu?do=export_pdf |
+ | * Resurse folosite: | ||
+ | https://www.arduino.cc/en/reference/SPI | ||
+ | https://www.arduino.cc/en/Reference/Ethernet |