Differences

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

Link to this comparison view

pm:prj2022:abirlica:sistemincendiu [2022/05/06 16:30]
robert.petrescu created
pm:prj2022:abirlica:sistemincendiu [2022/06/02 00:35] (current)
robert.petrescu
Line 3: Line 3:
  
 <note tip> <note tip>
-Sistemul ​detecteaza prezenta ​focului in incapere ​si daca focul este prezent actioneaza sistemul ​de singere ​incendiului.+Sistemul ​este destinat detectarii ​focului in incaperi ​si stingerea ​de urgenta ​acestuia. In lumea reala el poate fi folosit pentru a preveni incendiile in spatiile inchise.
 </​note>​ </​note>​
 +
 +{{ :​pm:​prj2022:​abirlica:​schema_artistica.jpg?​300 |}}
 +
  
 ===== Descriere generală ===== ===== Descriere generală =====
 +Sistemul folosește un senzor de flacără pe semnalul digital, un senzor de nivel al apei si o pompa de apă. Pentru ca pompa de apă sa nu funcționeze uscată, daca senzorul de apă citește o valoare mai mică decat o valoare presetată, pompa nu poate functiona. Daca senzorul de flacără detectează o flacără, iar nivelul de apa este peste valoarea minimă, pompa pornește pentru a stinge incendiul. De asemenea, există 3 led-uri care servesc pe post de indicator de nivel pentru apă. Daca nivelul apei scade, led-urile se sting treptat, pana cand nu mai ramâne niciunul aprins.
 +
 +===== Hardware Design =====
 +== Listă componente: ==
 +  * Arduino UNO
 +  * Senzor Flacără LM393
 +  * Senzor Nivel Apă
 +  * 3 x Led
 +  * 4 x Rezistor 220 Ohm
 +  * Tranzistor NPN 2N3904
 +  * Diodă 1N4007
 +  * Pompă Apă 3-6V
 +  * Fire
 +  * Breadboard
 +
 +=== Schema electrică ===
 +{{ :​pm:​prj2022:​abirlica:​schema_electrica_sistem_incendiu.jpg.jpg?​750 |}}
 +===== Software Design =====
 +-  Pentru realizarea software-ului necesar funcționării proiectului,​ am utilizat Arduino IDE.
 +-  Funcția ReadSensor(),​ citește și returnează valoarea analogică oferită de senzorul de nivel de apă.
 +-  Primul bloc de if-uri aprinde si stinge led-urile in functie de nivelul apei.
 +-  Variabila flame_detected are state-ul LOW, atunci când o Flacără este detectată sau HIGH, atunci cand senzorul nu detectează nicio flacără
 +-  Daca o flacara este detectată si nivelul apei este peste o anumită valoare, pin-ul trans se seteaza pe HIGH si deschide tranzistorul pentru a alimenta pompa.
 +
 +<spoiler Cod sursă>
 +<code C fire_supressing_system.ino>​
 +#define flame_sensor 4
 +#define sensorPower 7
 +#define sensorPin A0
 +#define trans 8
 +#define LED1 9
 +#define LED2 10
 +#define LED3 11
 +
 +
 +int val = 0;
 +int buttonState = 0;
 +
 +void setup()
 +
 +{
 +
 +  Serial.begin(9600);​
 +  pinMode(sensorPower,​ OUTPUT);
 +  digitalWrite(sensorPower,​ LOW);
 +  pinMode(flame_sensor,​ INPUT);
 +  pinMode(LED1,​ OUTPUT);
 +  pinMode(LED2,​ OUTPUT);
 +  pinMode(LED3,​ OUTPUT);
 +  pinMode(trans,​ OUTPUT);
 +  ​
 +
 +}
 +
 +
 +void loop()
 +
 +{
 +    int level = readSensor();​
 +    Serial.println(level);​
 +    if (level > 400)
 +    {
 +      digitalWrite(LED1,​ HIGH);
 +      digitalWrite(LED2,​ HIGH);
 +      digitalWrite(LED3,​ HIGH);
 +      ​
 +    }
 +    else if (level > 350 && level <= 400)
 +    {
 +      digitalWrite(LED1,​ HIGH);
 +      digitalWrite(LED2,​ HIGH);
 +      digitalWrite(LED3,​ LOW);
 +    }
 +    else if (level < 350 && level > 300)
 +    {
 +      digitalWrite(LED1,​ HIGH);
 +      digitalWrite(LED2,​ LOW);
 +      digitalWrite(LED3,​ LOW);
 +    }
 +    else if (level <= 300)
 +    {
 +      digitalWrite(LED1,​ LOW);
 +      digitalWrite(LED2,​ LOW);
 +      digitalWrite(LED3,​ LOW);
 +    }
 +    int flame_detected = digitalRead(flame_sensor);​
 +     if (flame_detected == LOW && level > 300)
 +    {
 +    // turn PUMP on:
 +    digitalWrite(trans,​ HIGH);
 +    } else {
 +    // turn PUMP off:
 +    digitalWrite(trans,​ LOW);
 +    }
 +  // Added the delay so that we can see the output of button
 +  ​
 +  delay(100);
 +
 +}
 +
 +int readSensor() {
 +  digitalWrite(sensorPower,​ HIGH); ​ // Turn the sensor ON
 +  delay(10); ​             // wait 10 milliseconds
 +  val = analogRead(sensorPin); ​   // Read the analog value form sensor
 +  digitalWrite(sensorPower,​ LOW);   // Turn the sensor OFF
 +  return val;             // send current reading
 +}
 +</​code>​
 +</​spoiler>​
 +
 +===== Rezultate Obţinute =====
 +Proiectul detectează o flacără, iar dacă nivelul apei din recipientul pompei este destul de ridicat pentru a nu lăsa pompa să meargă fară apă, pompa improașcă apă.
 +{{ :​pm:​prj2022:​abirlica:​poza_artistica.jpeg?​500 |}}
 +
 +
 +===== Concluzii =====
 +A fost un proiect interesant, care m-a ajutat să aprofundez cunoștințele dobândite la laboratoarele de PM și mi-a trezit interesul pentru alte proiecte similare. Implementarea actuală a sistemului poate fi scalată pentru a realiza un robot care să se ghideze după incendii pentru a le stinge sau un sistem de stingere de incendii într-o clădire.
 +===== Download =====
 +{{:​pm:​prj2022:​abirlica:​petrescurobertmihai_333ca.rar|}}
 +
 +===== Jurnal =====
 +  * 28 Aprilie 2022 - Alegerea Temei
 +  * 5 Mai 2022 - Comandă piese
 +  * 10 Mai 2022 - Asamblare Prima Versiune
 +  * 14 Mai 2022 - Realizare Cod
 +  * 14 Mai 2022 - Depistare senzor flacără defect
 +  * 16 Mai 2022 - Inlocuire senzor flacără
 +  * 20 Mai 2022 - Adaugare Led-uri
 +  * 24 Mai 2022 - Adaugare diodă pentru pentru a evita trimiterea curentului de la pompă înapoi pe circuit
 +
 +
 +===== Bibliografie/​Resurse =====
 +https://​create.arduino.cc/​projecthub/​SURYATEJA/​arduino-modules-flame-sensor-6322fb
 +https://​robu.in/​water-level-indicator-interfacing-with-arduino-connection-and-code/​
 +https://​arduinogetstarted.com/​tutorials/​arduino-controls-pump
  
-<​note ​tip+<​note>​ 
-Arduino UNOsenzor focbradboardpompa, fire legatura +Listă cu documentedatasheet-uriresurse Internet folositeeventual grupate pe **Resurse Software** şi **Resurse Hardware**.
-     +
 </​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>​
pm/prj2022/abirlica/sistemincendiu.1651843819.txt.gz · Last modified: 2022/05/06 16:30 by robert.petrescu
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