Sistem incendiu
Introducere
Sistemul este destinat detectarii focului in incaperi si stingerea de urgenta a acestuia. In lumea reala el poate fi folosit pentru a preveni incendiile in spatiile inchise.
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ă
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.
- 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
}
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ă.
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
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