ESP32 - Sensor de Chama

O sensor de chama consegue detectar e medir a luz infravermelha que vem de uma chama. Ele é útil para identificar incêndios e também é conhecido como sensor de chama infravermelho ou sensor de fogo. Este sensor fornece dois tipos de informação: um é como uma chave simples (ligado ou desligado) e o outro é um sinal analógico que mostra a intensidade da chama.

Neste tutorial, vamos aprender a usar um ESP32 com um sensor de chama para detectar chamas. Em específico, vamos ver estes passos:

sensor de chama com esp32

Depois, você pode modificar o código para ativar uma buzina de alerta quando o fogo for detectado.

Sobre o Sensor de Chama

módulo sensor de fogo e chama infravermelho

O sensor de chama infravermelho consegue detectar uma chama ou verificar quanta luz infravermelha a chama emite. Assim, ele nos ajuda a identificar incêndios. Este sensor oferece duas opções, usando um pino de saída digital e um pino de saída analógica.

Esses sensores são projetados para captar certos tipos de luz infravermelha emitidos por chamas, ignorando outros tipos, como o calor de pessoas ou de lâmpadas internas. Mas, como qualquer sensor, eles têm seus limites e, às vezes, podem errar, seja dizendo que há fogo quando não há (falso positivo), seja deixando de ver o fogo quando ele existe (falso negativo).

Pinagem

Existem dois tipos de módulos sensores de chama disponíveis:

Um sensor de chama simples tem quatro pinos:

  • Pino VCC: Precisa ser conectado ao VCC (3.3V a 5V).
  • Pino GND: Precisa ser conectado ao GND (0V).
  • Pino DO: É um pino de saída digital. Fica HIGH se a chama não for detectada e LOW se for detectada. O valor limite para a detecção da chama pode ser ajustado por um potenciômetro embutido.
  • Pino AO: É um pino de saída analógica. O valor de saída diminui quando o nível de infravermelho diminui e aumenta quando o nível de infravermelho aumenta.
Pinagem do Sensor de Chama
image source: diyables.io

Além disso, ele tem dois LEDs indicadores:

  • Um LED PWR indicador de alimentação.
  • Um LED DO indicador do estado da chama no pino DO: ele fica aceso quando há chama.

O módulo sensor de chama 5 em 1 combina cinco sensores de chama individuais em uma única PCB. Os sensores compartilham um potenciômetro comum e as conexões VCC e GND, enquanto cada sensor tem seus próprios pinos independentes DO (Saída Digital) e AI (Entrada Analógica).

Como Funciona

Para o pino DO:

  • O módulo tem um potenciômetro embutido para definir o limite de infravermelho (sensibilidade).
  • Quando a intensidade do infravermelho está acima do valor limite, a chama é detectada, o pino de saída do sensor fica LOW e o LED DO acende.
  • Quando a intensidade do infravermelho está abaixo do valor limite, a chama NÃO é detectada, o pino de saída do sensor fica HIGH e o LED DO apaga.

Para o pino AO:

  • Quanto maior a intensidade do infravermelho no ambiente ao redor, maior o valor lido no pino AO.
  • Quanto menor a intensidade do infravermelho no ambiente ao redor, menor o valor lido no pino AO.

Observe que o potenciômetro não afeta o valor no pino AO.

Diagrama de Ligação

Como o módulo sensor de chama tem duas saídas, você pode escolher usar uma delas ou as duas, dependendo do que precisar.

  • Como conectar o ESP32 e o sensor de chama usando uma protoboard

O módulo sensor de chama oferece duas opções de saída. Você pode usar uma ou as duas, conforme a sua necessidade.

Diagrama de ligação do ESP32 com Sensor de Chama

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Como conectar o ESP32 e o sensor de chama

Código ESP32 - Ler o valor do pino DO

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-flame-sensor */ #define DO_PIN 13 // ESP32's pin GPIO13 connected to DO pin of the flame sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int flame_state = digitalRead(DO_PIN); if (flame_state == HIGH) Serial.println("No flame dected => The fire is NOT detected"); else Serial.println("Flame dected => The fire is detected"); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para ESP32 no Arduino IDE.
  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer upload do código para o ESP32
  • Aponte o sensor de chama para uma chama.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected Flame dected => The fire is detected Flame dected => The fire is detected Flame dected => The fire is detected No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected No flame dected => The fire is NOT detected
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Lembre-se: se você notar que o LED fica sempre aceso ou sempre apagado, mesmo com o sensor voltado para uma chama, você pode ajustar o potenciômetro para regular a sensibilidade do sensor.

Código ESP32 - Ler o valor do pino AO

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-flame-sensor */ #define AO_PIN 36 // ESP32's pin GPIO36 connected to AO pin of the flame sensor void setup() { // initialize serial communication Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int infrared_value = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(infrared_value); }

Passos Rápidos

  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer upload do código para o ESP32
  • Aponte o sensor de chama para uma chama.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
245 246 246 573 677 949 955 1004 1007 1013 1018 641 543 340 179
Ln 11, Col 1
ESP32 Dev Module on COM15
2

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de chama. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. Porém, para projetos que precisam de medições precisas, observe:

  • O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
  • A calibração pode ser difícil, principalmente para iniciantes, e nem sempre dá o resultado exato que você deseja.

Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o ESP32 ou usar um Arduino, que tem um ADC mais confiável. Se mesmo assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver

Vídeo

Referências de Funções

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!