Udroiu Cristian Francesco 333 CC
Scopul proiectului este crearea unui sistem prin intermediul caruia vom sti in permanenta daca locuinta este in siguranta.
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.
- Placa de dezvoltare Arduino UNO
- Cablu usb A-B
- Breadboard
- Fire jumper
- Led Rosu si Albastru
- Senzor de flacara infrarosu
- Buzzer
- Ethernet Shield
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.
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 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
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.