This shows you the differences between two versions of the page.
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 a incendiului. | + | 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. |
</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 UNO, senzor foc, bradboard, pompa, fire legatura | + | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual 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> |