0

NodeMCU – Alarme de Incêndio com ESP8266

Neste post vamos ver como utilizar o sensor de gás MQ-7,o sensor de chama e fogo para criar um alarme de incêndio com ESP8266 NodeMCU.

No nosso exemplo, iremos demonstrar como emitir um alarme sonoro caso detete fogo ou gases, além de enviar uma notificação através do Pushbullet para o nosso Smartphone. Para quem ainda não conhece, o Pushbullet é uma aplica;\ai gratis que permite trocar notificações, links, arquivos e pequenos textos entre diversas plataformas.

Instale o Pushbullet em seu Smartphone ou computador. Após instalar acesse Sua conta e clique em Create Access Token para gerar uma chave de acesso a API do Pushbullet, que será utilizada mais abaixo.

 

Lista de Componentes

Para montagem do alarme de incêndio com ESP8266, vamos precisar de:

– Buzzer
– Sensor de Gás MQ-7
– Sensor de chama fogo
– ESP8266 NodeMCU
– Breadboard
– Jumpers macho-macho e macho-fêmea
– Fonte 3.3V

 

Circuito Alarme de Incêndio com o ESP8266

Ambos os sensores possuem pino analógico e digital, no nosso caso com a quantidade limitada de pinos analógicos iremos liga los através do pino digital, que irá retornar o valor 0 caso não detecte nenhum problema ou 1 se detectar gás ou fogo. Também utilizaremos um pino para ligar o buzzer, para emitir o alerta. Na imagem abaixo é possível observar o circuito montado. Atençao que este circuito é de 3.3 volts.


Ambos os sensores possuem ajuste de sensibilidade, o que permite regulá-los de acordo com a necessidade.

 

Programa de Monitorização

Nas linhas 2, 4, e 6 definimos os pinos onde foram ligados os sensores e o buzzer. Já nas linha 85, 86, e 87 definimos os modos dos pinos, saída para o buzzer e entrada para os sensores.

Na linha 42 deve informar o seu token de acesso da API do Pushbullet. E na linha 91 deve inserir o SSID e a senha do modem.

-- Buzzer
BUZ_PIN  = 6 -- GPIO 12
-- Sensor de chama e fogo
FIRE_PIN = 7 -- GPIO 13
-- Sensor de Gás
GAS_PIN  = 5 -- GPIO 14
  
BUZZ_TMR = 1
FIRE_GAS_TMR = 2
  
  
-- liga o alarme que irá fazer um beep a cada 1 segundo.
function buz_on()
    is_buz_on = false
  
    tmr.alarm(BUZZ_TMR, 1000, tmr.ALARM_AUTO, function()
        if is_buz_on then
            gpio.write(BUZ_PIN, gpio.LOW) -- on
        else
            gpio.write(BUZ_PIN, gpio.HIGH) -- off
        end
  
        is_buz_on = not is_buz_on
    end)
end
  
-- desliga o alarme
function buz_off()
    gpio.write(BUZ_PIN, gpio.HIGH)
    tmr.unregister(BUZZ_TMR)
end
  
-- verifica se o alarme já está ligado
function is_buz_enable()
    running, mode = tmr.state(BUZZ_TMR)
    return running
end
  
-- envia notificação para o celular.
function notify_pushbullet()
    http.post('https://api.pushbullet.com/v2/pushes',
              'Content-Type: application/json\r\nAccess-Token: TOKEN_DO_PUSHBULLET\r\n',
              '{"body":"O sensor detectou fogo ou gás, verifique.","title":"Fogo detectado!!!","type":"note"}',
    function (code, data)
        print(code)
    end)
end
  
-- inicia o processo de verificação de gás ou fogo
function start()
    buz_off()
  
    tmr.alarm(FIRE_GAS_TMR, 500, tmr.ALARM_AUTO, function()
        turn_buz_on = false
  
        -- verifica se detectou chamas.
        if gpio.read(FIRE_PIN) == 1 then
            turn_buz_on = true
        end
  
        -- verifica se detectou gás.
        if gpio.read(GAS_PIN) == 1 then
            turn_buz_on = true
        end
  
        if turn_buz_on then
            if not is_buz_enable() then
                buz_on()
                notify_pushbullet()
            end
        else
            buz_off()
        end
    end)
end
  
-- termina o processo de verificação de gás ou fogo
function stop()
    buz_off()
    tmr.unregister(FIRE_GAS_TMR)
end
  
function configure()
    -- configura os GPIO.
    gpio.mode(BUZ_PIN, gpio.OUTPUT)
    gpio.mode(FIRE_PIN, gpio.INPUT)
    gpio.mode(GAS_PIN, gpio.INPUT)
  
    -- configura o ESP para conectar no Wifi.
    wifi.setmode(wifi.STATION)
    wifi.sta.config("SSID_WIFI", "SENHA_WIFI")
    wifi.sta.connect()
end
  
configure()
start()

 

A função buz_on tem por objetivo fazer com que o buzzer emita um beep a cada segundo caso detecte algum problema, como presença de gás ou fogo.

A função start é responsável por executar a cada meio segundo uma verificação nos sensores para deteção de gás ou fogo. Caso ela detete a presença de um destes o alarme é iniciado. Caso tudo volte ao normal o alarme é desligado através da função buz_off.

A última linha com a chamada da função starté responsável por iniciar todo o processo de monitorização.
E abaixo, temos o ecrã do smartphone com o aviso do nosso alarme de incêndio com ESP8266 NodeMCU:

 

 

—————
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

ArduinoPortugal.pt

Deixar uma resposta