Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:alazar:smokeandgasdetector [2021/04/25 22:08]
elena.buduran *
pm:prj2021:alazar:smokeandgasdetector [2021/05/31 16:30] (current)
elena.buduran
Line 3: Line 3:
 === Grupa : 331CB === === Grupa : 331CB ===
 ===== Introducere ===== ===== Introducere =====
-Am decis să implementez un detector de fum și gaze, care emite avertizari luminoase  +Am decis să implementez un detector de fum/gaze si flacara, care emite avertizari luminoase  
-și sonore si transmite ​remote ​starea atmosferei spre un PC prin Wi-Fi cu ajutorul ​ +și sonore si transmite starea atmosferei spre un database hostat pe PC cu ajutorul unui  
-unui shield ethernet.+shield ethernet.
 ===== Descriere generală ===== ===== Descriere generală =====
 Detectorul are următoarele componente: ​ Detectorul are următoarele componente: ​
-  -buzzer: emite avertizari sonore cand vreun senzor este pus în funcțiune+  -buzzer: emite avertizari sonore cand senzorul de gaz detecteaza valori peste 
 +           ​pragul limita
   -LCD Display: afișeaza mesaje de atentionare   -LCD Display: afișeaza mesaje de atentionare
-  -led verde/rosu: lumineaza atunci cand in aer nu este / este fum/​gaz/​flacara.+  -led verde/rosu: lumineaza atunci cand in aer nu este/este fum/​gaz/​flacara.
  
 Schema Bloc: Schema Bloc:
  
-{{:​pm:​prj2021:​alazar:​detector.png?400|}}+{{:​pm:​prj2021:​alazar:​parezation-page-3.png?500|}}
 ===== Hardware Design ===== ===== Hardware Design =====
-Lista componente: +**Lista componente:​*
-  ​placa de dezvoltare ​Arduino Uno +^Componentă ​  ​^Scop ​  ^ Site Achizionare ^ 
-  * buzzer +|Arduino Uno   |baza proiectului |https://​cleste.ro/​arduino-uno-r3-atmega328p.html| 
-  ​* ​LCD Display +|Breadboard HQ (830 Puncte) ​   |unirea componentelor |https://​www.optimusdigital.ro/​ro/​prototipare-breadboard-uri/​8-breadboard-830-points.html| 
-  ​led verde & rosu +|LCD Display ​16x02   ​|afisarea mesajelor de atentionare ​ |https://​ardushop.ro/​ro/​electronica/​36-lcd-1602.html| 
-  ​rezistente +|Shield Ethernet pentru Arduino cu chip Wiznet W5100  |transmiterea valorilor inregistrate de senzori prin Ethernet la un database |https://​www.robofun.ro/​shield/​shield-ethernet-pentru-arduino-cu-chip-wiznet-w5100.html| 
-  ​* senzor ​de gaz MQ-2 +|Modul Senzor Gaz MQ-2    |detectarea scurgerilor de gaz  |https://​www.optimusdigital.ro/​ro/​senzori-de-gaze/​107-modul-senzor-gas-mq-2.html| 
-  * senzor ​de flacară +|LED Verde de 3 mm cu Lentile Transparente ​ |indica un nivel normal de gaz in atmosfera ​ |https://​www.optimusdigital.ro/​ro/​optoelectronice-led-uri/​931-led-verde-de-3-mm-cu-lentile-transparente.html| 
-  * breadboard +|LED Roșu de 3 mm cu Lentile Difuze |indica un nivel anormal de gaz in atmosfera ​ |https://​www.optimusdigital.ro/​ro/​optoelectronice-led-uri/​696-led-rou-de-3-mm-cu-lentile-difuze.html| 
-  Shield ​Ethernet ​pentru ​Arduino+|Fludor la tub 1mm 10 gr    |folosit impreuna cu pistolul de lipit pentru lipirea pinilor la display-ul LCD si conectarea pinilor de spatele shield-ului prin 2 rezistente ​de 100 OHMI |https://​www.optimusdigital.ro/​ro/​fludor/​23-fludor-la-tub-1mm-10-gr.html| 
 +|Pompa Fludor Metal |dezlipirea componentelor electronice lipite gresit| https://​www.optimusdigital.ro/​ro/​toate-produsele/​22-pompa-fludor-metal.html| 
 +|Fire Colorate Tată-Tată ​ |cablare ​ |https://​www.optimusdigital.ro/​ro/​fire-fire-mufate/​885-set-fire-tata-tata-10p-10-cm.html| 
 +|Modul Buzzer pasiv  |emitere semnale sonore in cazul detectarii unui nivel anormal ​de gaz  ​|https://​cleste.ro/​modul-buzzer-pasiv.html| 
 +|Rezistente 220 Ohmi |evitarea trecerii unui curent prea mare prin leduri | Magazin Dioda Tg-Jiu| 
 +|2 Rezistente 100 Ohmi |lipirea pe pinii 1-2 și 3-6 ai shield-ului ce avea o rezistenta gresita | Magazin SigmaNortec Tg-Jiu| 
 +|Senzor ​de flacara 4 pini |detectarea flacarii |Magazin SigmaNortec Tg-Jiu| 
 + 
 +**Schema electrica:​** 
 + 
 +{{:​pm:​prj2021:​alazar:​2021-05-30_2_.png ? 400|}} 
 + 
 +Schema nu include shield-ul ​Ethernet, care va fi introdus deasupra placii ​Arduino.
 ===== Software Design ===== ===== Software Design =====
 +Am scris codul in mediul de dezvoltare Arduino IDE, folosindu-ma de urmatoarele biblioteci:
 +  * SPI & Ethernet - pentru comunicarea prin SPI si Ethernet
 +  * LiquidCrystal - pentru a permite placii Arduino sa controleze LCD-ul.
 +Cu ajutorul define-urilor,​ am setat pinii la care sunt conectate LED-urile, buzzer-ul si cei doi senzori.
 +
 +Variabile globale:
 +  * gasTopValue - valoarea de referinta cu care se vor compara valorile inregistrate de senzorul MQ2(pragul limita)
 +  * lcd - variabila de tip LiquidCrystal
 +  * rs, enable, d4, d5, d6, d7 - constante care definesc pinii la care este conectat LCD-ul
 +  * mac - array de variabile de tip byte (stocheaza adresa MAC cu care va fi initializat shield-ul)
 +  * ip - variabila de tipul IPAddress (adresa IP cu care va fi initializat shield-ul, generata de incarcarea sketch-ului DhcpAddressPrinter pe shield)
 +  * server - variabila de tipul IPAddress (adresa IP a server-ului care hosteaza database-ul : adresa PC-ului propriu)
 +  * cliente : variabila de tip EthernetClient,​ pentru conectarea la server pe portul specificat.
 +  * flameValue - valoarea indicata de senzorul de flacara(folosind pinul digital D0 al senzorului, valoarea va fi 1 logic sau 0 logic).
 +**FUNCTII:​**
 +  *** setup():**
 +  - pinMode() : setez pinii la care sunt conectati LED-urile si buzzer-ul ca iesire si pinii la care vor fi conectati senzorul de gaz&​fum/​flacara ca pini de intrare
 +  - lcd.begin():​ initializez LCD-ul
 +  - Serial.begin() : initializez interfata seriala
 +  - Ethernet.begin() : setez o adresa MAC si o adresa IP pentru shield.
 +  *** loop() :** citesc valoarea inregistrata de senzorul MQ2 cu analogRead() si pe cea inregistrata de senzorul de flacara cu digitalRead(),​ le compar cu valorile limita, afisez pe LCD mesajele corespunzatoare de atentionare(lcd.print()).In plus, daca valorile depasesc pragul normal, buzzerul va incepe sa sune si LED-ul rosu se va lumina.In caz contrar, LED-ul verde se va lumina.Apoi,​ se incearca conectarea la serverul ce este host pentru database prin apelul cliente.connect(server,​ port) si se trimit datele, urmand sa se inchida conexiunea.Daca esueaza conectarea, se afiseaza pe interfata seriala mesajul "​connection failed"​.
 +
 + ​**CREAREA BAZEI DE DATE & TRIMITEREA DATELOR DE LA ARDUINO LA DATABASE**
 +  * Am instalat aplicatia XAMPP, din care am pornit serviciile Apache si MySQL.Am accesat in browser “localhost:​80/​phpmyadmin/​” si am creat baza de date ethernet si, in interiorul acesteia, un tabel data, care va contine valorile citite de senzori si timestamp-ul.
 +  * Am creat un fisier ‘connection.php’ pentru conectarea bazei de date cu Arduino si un fisier ‘data.php’ pentru introducerea valorilor in baza de date.
 +  * - Am verificat daca shield-ul functioneaza prin incarcarea sketch-ului DHCPAddressPrinter pe acesta, pentru afisarea adresei IP.Nu a functionat, deoarece shield-ul avea un rezistor cu o valoare gresita.Pentru corectare, am lipit pinii 1-2 și 3-6 de pe spatele shield-ului cu 2 rezistente de 100 Ohmi.
 +  * Am creat un fisier “display.php”,​ care citeste valorile din baza de date si le afiseaza pe webpage-ul http://​localhost:​80/​ethernet/​display.php.
 +
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
 +Starea montajului pentru parametrii normali ai atmosferei
 +
 +{{:​pm:​prj2021:​alazar:​normalatmosphere.jpg ? 350|}}
 +
 +Starea montajului cand se detecteaza flacara
 +
 +{{:​pm:​prj2021:​alazar:​flame.jpg ? 250|}}
 +
 +Starea montajului cand se detecteaza gaz/fum
 +
 +{{:​pm:​prj2021:​alazar:​gas.jpg ? 300|}}
 +
 +{{:​pm:​prj2021:​alazar:​gas2.jpg ? 250|}}
 +
 +Pinii shield-ului intra in pinii placii Arduino.Placa Arduino e legata la PC printr-un cablu USB, iar shield-ul este legat la router printr-un cablu Ethernet.PC-ul este conectat la router prin WiFi.
 +
 +Am incarcat initial sketch-ul Ethernet/​DHCPAddressPrinter pe shield. Acesta a rulat cu succes, asignandu-i shield-ului o adresa IP.Apoi am incarcat pe shield codul pentru intreg montajul si am observat ca apelul client.connect() esueaza.Astfel nu se realizeaza conectarea la IP-ul PC-ului, unde se hosteaza database-ul.Pentru debug, am rulat in CMD "​netsat -aon", am observat ca portul 80 este ocupat de alta aplicatie.Am modificat portul pe care asculta Apache(initial erau 80&443, acum sunt 81&​443).Nu a functionat, am primit acelasi mesaj "​connection failed"​.
 +
 +{{:​pm:​prj2021:​alazar:​2021-05-31.png ? 400|}}
 +{{:​pm:​prj2021:​alazar:​database.jpg?​400|}}
 +
 +**DEMO-ul proiectului:​**
 +
 +[[https://​drive.google.com/​drive/​folders/​1awkwqkRAgy7ggPcwSw7hwPuuXMC_0ANY?​usp=sharing]]
 +
 ===== Concluzii ===== ===== Concluzii =====
 +Intregul proiect a fost o experienta din care am avut multe lucruri de invatat, inclusiv cum sa folosesc pistolul de lipit electric.
 ===== Download ===== ===== Download =====
 +In arhiva se gasesc fisierele php (incluse in xampp/​htdocs),​ fisierul Arduino cu codul legat de Ethernet comentat (pentru a nu afecta functionarea intregului montaj) si un fisier Arduino cu intreg codul.
 +
 +{{:​pm:​prj2021:​alazar:​smokeandgasdetector_buduranelenabianca.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
 +  * 25/04/2021 -> crearea paginii Wiki
 +  * 10/05/2021 -> plasare comanda piese
 +  * 22/05/2021 -> realizarea software-ului (cu exceptia Ethernet Shield-ului)
 +  * 23/05/2021 -> realizarea hardware-ului (cu exceptia Ethernet Shield-ului)
 +  * 24/05/2021 -> adaugarea Ethernet Shield-ului la montaj si completarea codului
 +  * 25/05/2021 - 27/05/2021 -> debug pentru partea legata de shield (nu se realiza conectarea la server pe portul 80)
 +  * 27/05/2021 -> actualizarea paginii Wiki
 +  * 31/05/2021 -> finalizarea paginii Wiki
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​smokeandgasdetector?​do=export_pdf%7CPDF]]+ 
 +[[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​smokeandgasdetector?​do=export_pdf|PDF]] 
 + 
 +[[https://​www.youtube.com/​watch?​v=3n73k1HzKLo&​t=2s]] 
 + 
 +[[https://​www.arduino.cc/​en/​Reference/​LiquidCrystal]] 
 + 
 +[[https://​lastminuteengineers.com/​mq2-gas-senser-arduino-tutorial/​]] 
 + 
 +[[https://​www.javatpoint.com/​creating-mysql-database-with-xampp]]
    
pm/prj2021/alazar/smokeandgasdetector.1619377714.txt.gz · Last modified: 2021/04/25 22:08 by elena.buduran
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0