Artigos

Sensor de fumo e gases tóxicos Raspberry Pi

Descrição

O Raspberry Pi permite-nos criar uma infinidade de projetos graças aos vários sensores e periféricos que podemos acrescentar, os limites vivem na nossa imaginação. Neste artigo, quero-lhe mostrar como eu montei um detetor de fumo e gases tóxicos com Raspberry Pi.

Os Componentes

Para eu montar este projecto, usei uma Raspberry Pi modelo B (Rev 2) com Raspbian e o sensor de fumo e gases tóxicos MQ-135 que comprei em Electrofun.  Este modelo em concreto é bastante versátil porque, de acordo com o que refere na sua descrição, pode detetar fumo e também sulfuretos, benzeno, álcool e gases voláteis como o gás butano e o metano.

Sensor MQ-135 para Raspberry e Arduino
Sensor MQ-135 para Raspberry e Arduino

 

As especificações do sensor são:
Alimentação: 5V
Sensibilidade: Regulável desde 100ppm
Saídas: TTL y Analógica
Led vermelho de Power
Led verde de trigger (ativa-se ao detectar vapores ou fumo)

 

 

Neste projecto, vou usar a saída analógica do sensor para enviar um sinal ao Raspberry Pi quando detectar uma concentração de fumo “suspeita” e um “buzzer” para que me avise mediante um sinal acústico (apito). O buzzer que eu usei neste projecto comprei também no Electrofun. Mais concretamente, este buzzer é o modelo YL-44 e é compatível com Arduino e Raspberry. Alimenta-se com 3.3V e dispõe de uma entrada de sinal I/O para ativar ou parar o apito.

Este é o buzzer:

Buzzer YL-44
Buzzer YL-44

 

 

Montagem dos componentes

Agora que conhecemos os componentes vamos ver o esquema de montagem do proecto. Como pode ver, nesta imagem, eu liguei o sensor MQ-135 à saída de 5V do Raspberry e a um pin GND para alimentá-lo e coloquei outro cabo na saída analógica e liguei-o ao pin GPIO nº4, neste porto vamos receber um sinal se o sensor detectar algum gás de escape.

Por outro lado, liguei o buzzer YL-44 à saída de 3.3V do Raspberry Pi e a um pin GND para alimentá-lo e também coloquei um cabo no pin do buzzer marcado como I/O ligado ao pin nº7 do Raspberry, do pin GPIO emitiremos um sinal que vai activar ou parar o buzzer.

 

Com isto, já temos o projecto montado, vê como é fácil? Agora, para que tudo isto funcione, vamos criar um pequeno script em Python que receba sinais do sensor e emita um som do buzzer ao ser activado.

Scripting com Python

Mostro aqui o código do nosso script:

import RPi.GPIO as GPIO #Importamos a libraria GPIO
import time #Usaremos timer.sleep por isso temos que importar time

GPIO.setmode(GPIO.BCM) #Ajustamos a placa em modo BCM
GPIO.setup(4, GPIO.IN) #Indicamos que o pin 4 será de entrada
GPIO.setup(7, GPIO.OUT)#Indicamos que o pin 7 será de saída
GPIO.output(7,True) #Indicamos que o pin 7 esta LOW (sem sinal)

try:
    while True:
        if GPIO.input(4): #Se detectamos que eo sensor activou-se devido s presença de vapores
            print "HUMO DETECTADO" #Sacamos pelo ecrã HUMO DETECTADO
            GPIO.output(7, False) #Enviamos o sinal de activação ao buzzer pin 7 HIGH
            time.sleep(5) #O sinal (pitido) dura 5 segundos
            GPIO.output(7,True) #Desligamos o sinal colocando o pin 7 em LOW e o buzzer cala-se.
# Continuamos à espera de outro sinal do sensor MQ-135

except KeyboardInterrupt:
    print "O usuario forçou a detenção do script"
    GPIO.cleanup()
#Com keyboardinterrupt detectamos se o utilizador pressiona CONTROL + C e se sim 
#desligamos o script e "limpamos" os pinos GPIO com GPIO.cleanup()

Para iniciar este script em Python, só precisa de escrever uma janela de terminal:

sudo python humo.py

Automatização

Devemos iniciar o script manualmente da consola cada vez que arranque o nosso Raspberry por isso vamos automatizar todo o processo. Abrimos uma janela de terminal e escrevemos:

sudo vi /etc/rc.local

Uma vez aberto, escrevemos “sudo python humo.py” antes de  “exit 0”, o que será isto:

sudo python humo.py
exit 0

A próxima vez que arranque o Raspberry, o script vai-se iniciar automaticamente.

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.

Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.

Comments

comments

Deixar uma resposta

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.