GSM Fire SMS Alert Project

Prøv Instrumentet Vårt For Å Eliminere Problemer





I denne artikkelen skal vi konstruere et GSM-brannvarslingssystem med Arduino og DHT11-sensor, som vil varsle brukeren via tekstmelding (SMS) om en brannfare innen forutsetningen der den er installert.

Bruker DHT11-sensor

Vi bruker DHT11-sensor for å oppdage uvanlig temperaturstigning rundt lokalområdet. Vi kan presist stille terskeltemperaturen i programmet, hvis temperaturen stiger over forhåndsinnstilt terskel, GSM-modemet begynner å sende varsel-SMS til mottakeren.



Hvordan det fungerer

GSM-brannvarslingskretsoppsettet består av 3 deler, sensoren, Arduino som er hjernen til prosjektet og GSM-modemet som sender SMS-varsel.

Ledningene til oppsettet er de samme som andre GSM-baserte prosjekter som ble diskutert på dette nettstedet. Den eneste forskjellen er tillegg av DHT11-sensor til Arduino.



TX av GSM er koblet til pin 9 av Arduino og RX av GSM er koblet til pin 8 av Arduino og jord-til-jord-tilkobling er også tilkoblet. Strøm- og datatilkoblingen til sensoren er optimalisert for redusert ledningsbelastning under prototyping.

Vær oppmerksom på tilkoblingene nøye og sett inn sensoren fra A0 til A2 i riktig retning som vist nedenfor.

Hvis du snur retningen på sensoren, blir det 'NO DATA' på den serielle skjermen. Hvis omvendt retning holdes i lengre tid, kan det til og med skade sensoren. Så vær forsiktig med sensortilkoblingen.

Her er en ferdig forfatterens prototype:

Strøm alltid GSM-modemet med ekstern strømforsyning. EN 9V 500mA strømadapter vil være nok for GSM-modem. Seriell skjerm er ikke obligatorisk for dette prosjektet, da det kommer til å være et frittstående prosjekt. Vi trenger bare seriell skjerm mens vi tester prototypen.

Lage en DC UPS-system , skjemaer er tilgjengelig på dette nettstedet, og prøv å gjøre strømknappen lett tilgjengelig utenfor chassiset til prosjektet, slik at GSM-modem kan slås PÅ etter et kort strømbrudd.

Den eksterne strømknappen kan lages ved å lodde ledninger fra pinnene på strømknappen på GSM-modemet. DC UPS vil redusere nødvendigheten av å slå GSM-modemet på etter hvert strømbrudd. Det gir plug and forget slags funksjon. La oss nå se hvordan hele oppsettet fungerer.

I tilfelle brann stiger romtemperaturen raskt på kort tid, sensoren har muligheten til å måle form 0 til 50 grader Celsius.

Når temperaturen stiger over den forhåndsinnstilte terskelverdien i programmet (innen 0 til 50), sender den SMS-varsel som sier 'Brannvarsel: 45,00 grader Celsius'. 45 grader Celsius er temperaturen i rommet under sending av SMS. Temperaturen vil nå utover 100 grader Celsius innen få minutter etter brannulykke. To SMS-varsler sendes for redundans, i tilfelle hvis den sendte meldingen mislyktes.

Hvis sensoren mislyktes eller sensoren kobles fra Arduino, blir informasjonen sendt til brukeren via SMS to ganger og sier 'Ingen data fra sensor / sensor koblet fra'

Programmet stopper i 30 minutter etter å ha sendt SMS-varsel for brann eller sensorfrakobling. Den sjekker igjen for unormitet i romtemperatur og tilkobling av sensortråd etter 30 minutter, hvis noen eksisterer, sender den SMS-varsel igjen og venter i ytterligere 30 minutter.

Når hele oppsettet er fullført og slått PÅ, sender GSM-modemet test-SMS som sier 'Dette er en test-SMS fra GSM-modem' hvis du mottar denne meldingen til mottakernummeret, det betyr at prosjektet ditt fungerer bra.

Program:

//--------------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---------------//

Merk: Du må plassere mottakernummeret på 3 steder i programmet som er beskrevet i programmet som

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Erstatt x med mobilnummer

• Still inn terskeltemperaturen

int th = 45 // innstilt terskeltemperatur

Terskeltemperaturen må være høy, større enn vanlig temperatursvingninger i rommet For eksempel: DHT11 har en maksimal målekapasitet på 50 grader Celsius, så terskeltemperaturen kan settes fra 45 til 47. Høy terskelverdi er satt slik at den ikke sender falsk utløst SMS-varsel for små endringer i romtemperatur.

Hvis du er i tvil eller spørsmål angående det omtalte GSM-brann-SMS-varslingssystemet, ikke nøl med å legge dem frem gjennom dine verdifulle kommentarer.




Forrige: Hvordan lage en induksjonsvarmerkrets Neste: 6 beste IC 555 inverterkretser utforsket