Differences

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

Link to this comparison view

pm:prj2022:abirlica:sistemincendiu [2022/06/01 23:19]
robert.petrescu
pm:prj2022:abirlica:sistemincendiu [2022/06/02 00:35] (current)
robert.petrescu
Line 6: Line 6:
 </​note>​ </​note>​
  
-{{:​pm:​prj2022:​abirlica:​schema_block.jpg?200|}}+{{ :​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.
-Lista componente necesare: +
-  - Arduino UNO +
-  -  +
-  - bradboard +
-  - pompa +
-  ​fire de legatura+
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 32: Line 26:
  
 === Schema electrică === === Schema electrică ===
-{{ :​pm:​prj2022:​abirlica:​schema_electrica_sistem_incendiu.jpg.jpg?​1000 |}}+{{ :​pm:​prj2022:​abirlica:​schema_electrica_sistem_incendiu.jpg.jpg?​750 |}}
 ===== Software Design ===== ===== 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
  
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
-===== Rezultate Obţinute =====+int val 0; 
 +int buttonState ​0;
  
-<note tip> +void setup()
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+{
  
-===== Download =====+  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); 
 +  ​
  
-<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ă ;-).+
  
-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 Alin331CC -> **:pm:prj2009:cc:dumitru_alin**. + 
-</​note>​+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 interesantcare 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 ===== ===== Jurnal =====
Line 72: Line 142:
  
 ===== Bibliografie/​Resurse ===== ===== 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>​ <​note>​
pm/prj2022/abirlica/sistemincendiu.1654114770.txt.gz · Last modified: 2022/06/01 23:19 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