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 .