Projeto de alerta SMS de incêndio GSM

Experimente Nosso Instrumento Para Eliminar Problemas





Neste artigo vamos construir um sistema de circuito de alerta de incêndio GSM utilizando sensor Arduino e DHT11, que alertará o usuário via mensagem de texto (SMS), sobre o risco de incêndio no local onde está instalado.

Usando Sensor DHT11

Nós estamos usando Sensor DHT11 para detectar um aumento incomum de temperatura na área local. Podemos definir com precisão a temperatura limite no programa, se a temperatura subir acima do limite predefinido, o modem GSM começa a enviar SMS de alerta para o destinatário.



Como funciona

A configuração do circuito de alerta de incêndio GSM consiste em 3 partes, o sensor, o Arduino que é o cérebro do projeto e o modem GSM que envia o alerta por SMS.

A fiação da configuração é igual a outra Projetos baseados em GSM que foi discutido neste site. A única diferença é a adição do sensor DHT11 ao Arduino.



O TX do GSM é conectado ao pino nº 9 do Arduino e o RX do GSM é conectado ao pino nº 8 do Arduino e a conexão terra a terra também é conectada. A conexão de energia e dados do sensor é otimizada para reduzir o congestionamento da fiação durante a prototipagem.

Observe as conexões com cuidado e insira o sensor de A0 a A2 na orientação correta, conforme ilustrado abaixo.

Inverter a orientação do sensor resultará em “NENHUM DADO” no monitor serial. Se a orientação reversa for mantida por um período prolongado, pode até danificar o sensor. Portanto, tenha cuidado com a conexão do sensor.

Aqui está um protótipo completo do autor:

Sempre alimente o modem GSM com fonte de alimentação externa. UMA Adaptador de energia 9V 500mA será suficiente para o modem GSM. O monitor serial não é obrigatório para este projeto, pois será um projeto independente. Precisamos de um monitor serial apenas durante o teste do protótipo.

Faça um Sistema UPS DC , esquemas estão disponíveis neste site e tente tornar o botão liga / desliga facilmente acessível fora do chassi do seu projeto, para que o modem GSM possa ser ligado após uma breve falta de energia.

O botão liga / desliga externo pode ser feito soldando os fios dos pinos do botão liga / desliga do modem GSM. A UPS DC reduzirá a necessidade de ligar o modem GSM após cada falha de energia. Ele fornece o tipo de recurso plug and forget. Agora vamos ver como toda a configuração funciona.

Em caso de incêndio, a temperatura ambiente sobe rapidamente em um curto período, o sensor tem a capacidade de medir de 0 a 50 graus Celsius.

Quando a temperatura sobe acima do valor limite predefinido no programa (entre 0 e 50), ele envia um alerta SMS dizendo “Alerta de incêndio: 45,00 graus Celsius”. 45 graus Celsius é a temperatura da sala durante o envio de SMS; a temperatura alcançaria além de 100 graus Celsius minutos após o incêndio. Dois alertas SMS são enviados para redundância, caso o da mensagem enviada falhe.

Se o sensor falhou ou o sensor foi desconectado do Arduino, a informação é enviada ao usuário via SMS duas vezes dizendo “Nenhum dado do sensor / sensor desconectado“

O programa pára por 30 minutos após o envio de SMS de alerta para incêndio ou desconexão do sensor. Ele verifica novamente se há anormalidades na temperatura ambiente e na conexão do fio do sensor após 30 minutos, se houver, ele envia um alerta SMS novamente e aguarda mais 30 minutos.

Quando toda a configuração é concluída e ligada, o modem GSM envia um SMS de teste dizendo “Este é um SMS de teste do modem GSM”. Se você receber esta mensagem para o número do destinatário, significa que seu projeto está funcionando bem.

Programa:

//--------------Program developed by R.Girish---------------//
#include
#include
SoftwareSerial gsm(9,8)
#define DHTxxPIN A1
dht DHT
int p = A0
int n = A2
int ack
int msgsend=0
int th=45 //set threshold temperature
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 30
void setup()
{
Serial.begin(9600)
gsm.begin(9600)
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
digitalWrite(p,1)
digitalWrite(n,0)
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('This is a test SMS from GSM modem')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
top:
msgsend=0
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.println(' ')
delay(2000)
}
if(ack==1)
{
goagain:
msgsend=msgsend+1
Serial.print('NO DATA')
Serial.print(' ')
Serial.println('Sending SMS...... ')
delay(500)
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('No data from sensor/Sensor disconnected')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
Serial.println('Message is sent ')
if(msgsend==2)
{
delay(C)
goto top
}
else
{
delay(10000)
goto goagain
}
}
if(DHT.temperature>=th)
{
doagain:
msgsend=msgsend+1
Serial.println('Sending SMS...... ')
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxx' ') // Replace x with mobile number
delay(1000)
gsm.println('Fire Alert:')// The SMS text you want to send
gsm.print(DHT.temperature)
gsm.print(' degree celsius')
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
Serial.println('Message is sent ')
if(msgsend==2)
{
delay(C)
goto top
}
else
{
delay(10000)
goto doagain
}
}
}
//--------------Program developed by R.Girish---------------//

Nota: Você deve colocar o número do destinatário em 3 lugares no programa, que é descrito no programa como

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Substitua x pelo número do celular

• Defina a temperatura limite

int th = 45 // definir temperatura limite

A temperatura limite deve ser definida como alta, maior do que o normal flutuação de temperatura da sala . Por exemplo: DHT11 tem capacidade máxima de medição de 50 graus Celsius, então a temperatura limite pode ser definida de 45 a 47. O valor limite alto é definido de forma que não envie um alerta SMS disparado falso para pequenas mudanças na temperatura ambiente.

Se você tiver mais dúvidas ou perguntas sobre o sistema de alerta de SMS de incêndio GSM discutido, por favor, não hesite em enviá-las por meio de seus valiosos comentários.




Anterior: Como projetar um circuito de aquecimento por indução Próximo: 6 Melhores Circuitos Inversores IC 555 Explorados