Os alarmes de incêndio são essenciais em residências e edifícios, mitigando os riscos de incêndio e garantindo a segurança. Esses alarmes visam salvaguardar vidas e bens, alertando e iniciando procedimentos de emergência.
Neste projeto construiremos um sistema de alarme de incêndio utilizando ESP32, um sensor de chama e um sensor de gás MQ2. Este dispositivo acionará uma campainha e piscará um LED se detectar fumaça ou qualquer sinal de fogo. Ele enviará imediatamente um SMS e uma notificação por WhatsApp ao usuário.
Componentes necessários
- ESP32 x1
- Sensor de chama x1
- Sensor de gás MQ-2 x1
- Campainha x1
- LEDx1
- Resistores de 330Ω x2
- Botão de pressão x1
Conexões de circuito
Para construir este dispositivo de alarme de incêndio, faremos a interface do sensor de chama e do sensor de gás MQ2 com o ESP32. O sensor de chama detecta fumaça e fogo e o sensor de gás MQ2 detecta gases inflamáveis. Usaremos o DOIT ESP32 DevKit V1 como ESP32.
Vamos começar.
- Para fazer a interface do sensor de chama, conecte seu pino de saída ao GPIO36 do ESP32.
- Para fazer a interface do sensor de gás MQ2, conecte seu pino de saída digital ao GPIO39 do ESP32.
- Em seguida, conecte os pinos de alimentação e aterramento de ambos os sensores aos pinos 3V3 e GND do ESP32, respectivamente.
- Nota: o pino de saída analógica do sensor MQ2 permanece desconectado.
- Conecte o buzzer ao GPIO23 do ESP32.
- Conecte o ânodo do LED ao GPIO22 do ESP32 e o cátodo ao 3,3V do ESP32 por meio do resistor em série.
- Conecte um botão ao GPIO21 do ESP32.
Como o ESP32 tem funcionalidade WiFi integrada, não há necessidade de conectar nenhum componente que habilite a Internet.
Aqui está o diagrama de circuito do sistema de alarme e alerta de incêndio baseado em ESP32.
API Whatabot
Usaremos a API Whatabot para enviar um aviso de risco de incêndio via WhatsApp. Confira este projeto para aprender como usar a API Whatabot com ESP32.
API do Twilio
Usaremos a API Twilio para enviar um alerta por SMS sobre risco de incêndio. Confira este projeto para aprender como usar a API Twilio com ESP32.
Esboço do Arduino
Como funciona
Este alarme utiliza um sensor de chama para detectar incêndio e um sensor de gás MQ2 para detectar gases inflamáveis. O sensor de gás deve ser calibrado ajustando o potenciômetro em sua placa de distribuição. Isso garante a emissão de um sinal assim que detectar uma concentração específica de gases inflamáveis.
Ambos os sensores têm uma saída digital e emitem um sinal LOW se fogo ou gás for detectado. O sensor de gás MQ2 também tem uma saída analógica, mas não é usada para este projeto.
Quando o alarme de incêndio é ligado, ele lê sinais dos sensores de chama e fumaça. Se a saída de qualquer um dos sensores for lida como BAIXA, o alarme de incêndio será acionado. A campainha está ligada e o LED pisca. Notificações por SMS e WhatsApp sobre risco de incêndio são enviadas ao usuário. A campainha e o LED permanecem acesos até que o botão seja pressionado para desligar o alarme.
O código
O esboço começa importando as bibliotecas WiFi.h, HTTPClient.h, UrlEncode.h e twilio.hpp.
- A biblioteca WiFi.h é necessária para conectar-se ao ponto de acesso WiFi.
- O HTTPClient.h é necessário para processar a solicitação HTTP GET.
- O UrlEncode.h é necessário para codificar a URL de acordo com os padrões da Web.
- A biblioteca twilio fornece acesso às funções necessárias para enviar mensagens SMS por meio de solicitações HTTP.
As variáveis são declaradas para armazenar o SSID e a senha do ponto de acesso WiFi. Também são declaradas variáveis para armazenar o número do celular para as chaves do WhatsApp e API (recebidas ao registrar o número do celular no Whatabot).
Para trabalhar com a API Twilio, as variáveis devem ser declaradas para o SID da conta, token de autenticação, número do remetente (com código do país) e número do destinatário (com código do país). Este aplicativo usa o mesmo número de celular para enviar e receber um alerta SMS.
Em seguida, são declaradas variáveis para as atribuições de pinos dos sensores de chama e gás, da campainha, do LED e do botão de pressão. Também é declarada uma variável para armazenar o status do alarme.
Na função setup , os pinos que conectam os sensores de chama e gás e o botão são configurados como entradas digitais. Os pinos que conectam a campainha e o LED são configurados como saídas digitais.
A campainha e o LED são desligados enviando um sinal ALTO. A taxa de transmissão é definida como 115.200 bps para enviar mensagens de depuração ao console. O ESP32 está conectado ao WiFi através das credenciais do usuário.
Na função loop , o ESP32 faz a leitura dos sinais dos sensores de chama e fumaça. Se uma leitura BAIXA for recebida de qualquer um dos sensores, o alarme será acionado por meio da função raiseAlarm . A função definida pelo usuário, send_whatsapp_message controla as notificações enviadas ao número do WhatsApp do usuário por meio da API Whatabot. A função definida pelo usuário, send_sms_alert, controla os alertas SMS enviados ao número de celular do usuário por meio da API Twilio. Estas notificações só são enviadas se o alarme de incêndio for acionado.
Resultados
Aqui estão as mensagens do console…
Aqui está uma demonstração em vídeo do funcionamento do alarme de incêndio.