Introduction: Detector De Vazamento De Gás

Nós, alunos do Centro Universitário Fundação Santo André, realizamos nosso projeto de arduino com o objetivo de detectar fuga de gás (como vazamento de GLP, vazamento de butano, vazamento de metano) ou qualquer substância gasosa com base em petróleo, que possa ser detectada usando o sensor MQ5. Aonde é configurado um mecanismo de alerta baseado em SMS e envie 3 SMS (3 mensagens de alerta) para 2 números de celular especificados (entrada dentro do programa arduino). Produzimos um alarme de som após o vazamento de gás e que só ira parar quando não houver mais gás no local. Exibi status em um LCD usando um módulo LCD de 16 × 2.

Objetivos Gerais:

Trabalhar e se familiarizar com a placa Arduíno Uno.

Analisar e projetar uma solução eficiente que contribua para a segurança da nossa sociedade.

Analisar a ação do software e hardware em conjunto.

Construção de código em linguagem C.

Step 1: Objetivos Do Projeto

Detectar fuga de gás (como vazamento de GLP, vazamento de butano, vazamento de metano) ou qualquer substância gasosa com base em petróleo que possa ser detectada usando o sensor MQ5.

Configurar um mecanismo de alerta baseado em SMS e envie 3 SMS (3 mensagens de alerta) para 2 números de celular especificados (entrada dentro do programa arduino).

Produzir um alarme de som após o vazamento de gás, que pare uma vez que o vazamento de gás esteja sob controle (a presença de gás na atmosfera está dentro do alcance normal).

Exibir status em um LCD usando um módulo LCD de 16 × 2.

Step 2: Componentes | Equipamentos Necessarios

Componentes Hardwares

1 Placa de Arduíno Uno.

1 Protoboard.

20 fios Jumper para a conexão entre o Protoboard e o Arduíno.

15 resistores.

1 Sensor MQ5.

1 Módulo GSM.

1 LCD 16 X2.

æ

ARDUINO.

DEV C++ .

Step 3: Código (programado Em C)

#include

#include

Liquid Crrystal lcd (12, 11, 5, 4, 3, 2);

SoftwareSerial mySerial (9, 10);

sensor int = 7;

int speaker = 8;

int gas_value, Gas_alert_val, Gas_shut_val;

int Gas_Leak_Status;

int sms_count = 0;

configuração vazia ()

{

pinMode (sensor, INPUT);

pinMode (alto-falante, OUTPUT);

mySialial.begin (9600);

Serial.begin (9600);

lcd.begin (16,2);

atraso (500);

}

loop vazio ()

{

CheckGas ();

CheckShutDown ();

}

vazio CheckGas ()

{

lcd.setCursor (0,0);

lcd.print ("Gas Scan - ON");

Gas_alert_val = ScanGasLevel ();

se (Gas_alert_val == BAIXO)

{

SetAlert (); // Função para enviar alertas de SMS

}}

int ScanGasLevel ()

{

gas_value = digitalRead (sensor); // lê a saída do sensor (Vout de LM35)

retornar gas_value; // retorna o valor da temperatura em grau Celsius

}

vazio SetAlert ()

{

digitalWrite (alto-falante, HIGH);

enquanto (sms_count <3) // Número de alertas de SMS a serem enviados

{

Enviar mensagem de texto(); // Função para enviar comandos AT ao módulo GSM

}

Gas_Leak_Status = 1;

lcd.setCursor (0,1);

lcd.print ("Gas Alert! SMS Sent!");

}

vazio CheckShutDown ()

{

se (Gas_Leak_Status == 1)

{

Gas_shut_val = ScanGasLevel ();

se (Gas_shut_val == HIGH)

{

lcd.setCursor (0,1);

lcd.print ("No Gas Leaking");

digitalWrite (alto-falante, BAIXO);

sms_count = 0;

Gas_Leak_Status = 0;

}}}

anular SendTextMessage ()

{

mySialial.println ("AT + CMGF = 1"); // Para enviar SMS no modo de texto

atraso (1000);

mySialial.println ("AT + CMGS = \" + 919495xxxxxx \ "\ r"); // mude para o número de telefone que você usa

atraso (1000);

mySialial.println ("Gas Leaking!"); // o conteúdo da mensagem

atraso (200);

mySialial.println ((char) 26); // o caractere de parada

atraso (1000);

mySialial.println ("AT + CMGS = \" + 918113xxxxxx \ "\ r"); // mude para o número de telefone que você usa

atraso (1000);

mySialial.println ("Gas Leaking!"); // o conteúdo da mensagem

atraso (200);

mySialial.println ((char) 26); // o caractere de parada da mensagem atraso (1000);

sms_count ++;}

Step 4: ​Funções Utilizadas No Código

CheckGas () é a função que monitora a ocorrência de um vazamento de gás 24 × 7. Esta função obtém o nível de gás medido pelo MQ35 (lendo digital fora do MQ35 usando o comando digitalRead ()) e o armazena na variável Gas_alert_val para comparação. Se não houver "vazamento de gás" - o sensor para fora será ALTO . Se houver um "vazamento de gás" em qualquer ponto do tempo, o sensor para fora mudará imediatamente para o estado BAIXO . A declaração se (Gas_alert_val == BAIXO) verifica isso e se ocorrer um vazamento de gás, então será inscrito um SetAlert interno () .

tAlert () é a função que controla o número de alertas SMS enviados para cada número de celular carregado no programa. O número de alertas SMS enviados pode ser alterado alterando a condição de parada do loop while. A condição de parada sms_count <3 - significa que 3 alertas de SMS serão enviados para cada número de celular. Se você deseja enviar 5 alertas, basta alterar a condição de parada para sms_count <5 - você obteve? A função para enviar SMS (usando comandos AT) - SendTextMessage () será chamada 3 vezes se a contagem de alerta SMS for 3.

CheckShutDown () é a função que monitoriza se o vazamento de gás foi desligado. Precisamos entreter essa função somente se ocorrer um "vazamento de gás". Para limitar a entrada para as declarações dentro desta rotina, introduzimos uma variável Gas_Leak_Status . Este valor variável será definido como valor 1 quando ocorrer um vazamento de gás (verifique a declaração dentro de SetAlert ()). As declarações dentro de CheckShutDown () serão executadas somente se o valor de Gas_Leak_Status == 1 .