This shows you the differences between two versions of the page.
|
pm:prj2022:abirlica:sistemincendiu [2022/05/15 22:39] 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. | ||
| - | <note tip> | + | ===== Hardware Design ===== |
| - | Lista componente necesare: | + | == Listă componente: == |
| - | - Arduino UNO | + | * Arduino UNO |
| - | - senzor foc | + | * Senzor Flacără LM393 |
| - | - bradboard | + | * Senzor Nivel Apă |
| - | - pompa | + | * 3 x Led |
| - | - fire de legatura | + | * 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> | ||
| + | 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> | ||