Branddetectiesystemen zijn heel gebruikelijk in commerciële gebouwen en fabrieken, deze apparaten bevatten gewoonlijk een cluster van sensoren die constant controleren op vlammen, gassen of brand in het gebouw en een alarm activeren als het een van deze detecteert. Een van de eenvoudigste manieren om brand te detecteren is door een IR-vlamsensor te gebruiken, deze sensoren hebben een IR-fotodiode die gevoelig is voor IR-licht. Nu, in het geval van brand, zal het vuur niet alleen warmte produceren, maar ook IR-stralen uitzenden, ja elke brandende vlam zal een bepaald niveau van IR-licht uitzenden, dit licht is niet zichtbaar voor menselijke ogen, maar onze vlamsensor kan het detecteren en waarschuw een microcontroller zoals Arduino dat er brand is gedetecteerd.
In dit artikel koppelen we vlamsensor met Arduino en leren we alle stappen om een brandalarmsysteem te bouwen met behulp van Arduino en vlamsensor. Vlamsensormodule heeft een fotodiode om het licht te detecteren en een op-amp om de gevoeligheid te regelen. Het wordt gebruikt om brand te detecteren en geeft een HOOG signaal bij detectie. Arduino leest het signaal en geeft een waarschuwing door de zoemer en LED in te schakelen. De vlamsensor die hier wordt gebruikt, is een op IR gebaseerde vlamsensor. We hebben hetzelfde concept ook gebruikt om brand te detecteren in onze brandbestrijdingsrobot, u kunt dit ook controleren als u geïnteresseerd bent.
Vlamsensor
Een vlamdetector is een sensor die is ontworpen om de aanwezigheid van een vlam of brand te detecteren en erop te reageren. Reacties op een gedetecteerde vlam zijn afhankelijk van de installatie, maar kunnen bestaan uit het afgeven van een alarm, het deactiveren van een brandstofleiding (zoals een propaan- of een aardgasleiding) en het activeren van een brandblussysteem. De IR-vlamsensor die in dit project wordt gebruikt, wordt hieronder weergegeven, deze sensoren worden ook wel Fire-sensormodule of vlamdetectiesensor genoemd.
Er zijn verschillende soorten vlamdetectiemethoden. Sommigen van hen zijn: Ultraviolet-detector, nabij-IR-array-detector, infrarood (IR) -detector, infrarood thermische camera's, UV / IR-detector enz.
Als het vuur brandt, geeft het een kleine hoeveelheid infrarood licht af, dit licht wordt opgevangen door de fotodiode (IR-ontvanger) op de sensormodule. Vervolgens gebruiken we een Op-Amp om te controleren op een verandering in spanning over de IR-ontvanger, zodat als er brand wordt gedetecteerd de outputpin (DO) 0V (LOW) zal geven, en als er geen fire is, zal de outputpin zijn 5V (HOOG).
In dit project gebruiken we een op IR gebaseerde vlamsensor. Het is gebaseerd op de YG1006-sensor, een zeer snelle en zeer gevoelige NPN-siliciumfototransistor. Het kan infrarood licht detecteren met een golflengte van 700 nm tot 1000 nm en de detectiehoek is ongeveer 60 °. De vlamsensormodule bestaat uit een fotodiode (IR-ontvanger), weerstand, condensator, potentiometer en LM393-comparator in een geïntegreerd circuit. De gevoeligheid kan worden aangepast door de ingebouwde potentiometer te variëren. De werkspanning ligt tussen 3.3v en 5v DC, met een digitale uitgang. Een logisch hoog op de uitgang duidt op de aanwezigheid van vlammen of vuur. Een logisch lage uitgang geeft aan dat er geen vlam of vuur is.
Hieronder vindt u de pinbeschrijving van de vlamsensormodule:
Pin |
Omschrijving |
Vcc |
3.3 - 5V voeding |
GND |
Grond |
Dout |
Digitale uitgang |
Toepassingen van vlamsensoren
- Waterstofstations
- Verbrandingsmonitors voor branders
- Olie- en gaspijpleidingen
- Automotive productiefaciliteiten
- Nucleaire faciliteiten
- Hangars voor vliegtuigen
- Turbine behuizingen
Componenten vereist
- Arduino Uno (elk Arduino-bord kan worden gebruikt)
- Vlamsensor module
- LED
- Zoemer
- Weerstand
- Doorverbindingsdraden
Schakelschema
De onderstaande afbeelding is het schakelschema van de Arduino- brandsensor, het laat zien hoe de brandsensormodule met Arduino moet worden verbonden.
Werking van vlamsensor met Arduino
Arduino Uno is een open-source microcontroller-board gebaseerd op de ATmega328p-microcontroller. Het heeft 14 digitale pinnen (waarvan 6 pinnen kunnen worden gebruikt als PWM-uitgangen), 6 analoge ingangen, ingebouwde spanningsregelaars etc. Arduino Uno heeft 32 KB flashgeheugen, 2 KB SRAM en 1 KB EEPROM. Het werkt op een klokfrequentie van 16 MHz. Arduino Uno ondersteunt seriële, I2C-, SPI-communicatie voor communicatie met andere apparaten. De onderstaande tabel toont de technische specificaties van Arduino Uno.
Microcontroller |
ATmega328p |
Werkspanning |
5V |
Ingangsspanning |
7-12V (aanbevolen) |
Digitale I / O-pinnen |
14 |
Analoge pinnen |
6 |
Flash-geheugen |
32 KB |
SRAM |
2 KB |
EEPROM |
1 KB |
Kloksnelheid |
16 MHz |
De vlamsensor detecteert de aanwezigheid van vuur of vlammen op basis van de infrarood (IR) golflengte die door de vlam wordt uitgezonden. Het geeft logica 1 als output als een vlam wordt gedetecteerd, anders geeft het logische 0 als output. Arduino Uno controleert het logische niveau op de uitgangspen van de sensor en voert verdere taken uit zoals het activeren van de zoemer en LED, het verzenden van een waarschuwingsbericht.
Bekijk ook onze andere brandalarmprojecten:
- Brandalarm met thermistor
- Brandalarmsysteem met behulp van AVR Microcontroller
- Arduino gebaseerde brandbestrijdingsrobot
Code uitleg
De volledige Arduino-code voor dit project wordt aan het einde van dit artikel gegeven. De code is opgesplitst in kleine, betekenisvolle brokken en wordt hieronder uitgelegd.
In dit deel van de code gaan we pinnen definiëren voor vlamsensor, LED en zoemer die zijn verbonden met Arduino. De vlamsensor is verbonden met digitale pin 4 van Arduino. De zoemer is verbonden met digitale pin 8 van Arduino. LED is verbonden met digitale pin 7 van Arduino.
Variabele “ flame_detected ” wordt gebruikt voor het opslaan van de digitale waarde die van de vlamsensor wordt uitgelezen. Op basis van deze waarde zullen we de aanwezigheid van vlammen detecteren.
int zoemer = 8; int LED = 7; int flame_sensor = 4; int flame_detected;
In dit deel van de code gaan we de status van digitale pinnen van Arduino instellen en configureren
Baudrate voor seriële communicatie met pc voor weergave van de status van het vlamdetectiecircuit.
leegte setup () { Serial.begin (9600); pinMode (zoemer, OUTPUT); pinMode (LED, UITGANG); pinMode (flame_sensor, INPUT); }
Deze coderegel leest de digitale output van de vlamsensor en slaat deze op in de variabele “ flame_detected ”.
flame_detected = digitalRead (flame_sensor);
Gebaseerd op de waarde opgeslagen in “ flame_detected ”, moeten we de zoemer en LED aanzetten. In dit deel van de code vergelijken we de waarde die is opgeslagen in " flame_detected " met 0 of 1.
Als het gelijk is aan 1, geeft dit aan dat er een vlam is gedetecteerd. We moeten zoemer en LED inschakelen en vervolgens een waarschuwingsbericht weergeven in de seriële monitor van Arduino IDE.
Als het gelijk is aan 0, dan geeft dit aan dat er geen vlam is gedetecteerd, dus moeten we de LED en de zoemer uitschakelen. Dit proces wordt elke seconde herhaald om de aanwezigheid van vuur of vlammen te identificeren.
if (flame_detected == 1) { Serial.println ("Vlam gedetecteerd…! onderneem onmiddellijk actie."); digitalWrite (zoemer, HIGH); digitalWrite (LED, HIGH); vertraging (200); digitalWrite (LED, LOW); vertraging (200); } else { Serial.println ("Geen vlam gedetecteerd. blijf koel"); digitalWrite (zoemer, LOW); digitalWrite (LED, LOW); } vertraging (1000);
Op basis van dit concept hebben we een blusrobot gebouwd, die automatisch de brand detecteert en het water wegpompt om de brand te blussen. Nu weet je hoe je branddetectie moet doen met Arduino en vlamsensor, ik hoop dat je het leuk vond om het te leren, als je vragen hebt, laat ze dan achter in het commentaargedeelte hieronder.
Bekijk de volledige code en demovideo hieronder.