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?