„GSM Fire SMS Alert Project“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame straipsnyje mes sukursime GSM priešgaisrinės grandinės sistemą naudodami „Arduino“ ir DHT11 jutiklį, kuris tekstiniu pranešimu (SMS) įspės vartotoją apie gaisro pavojų patalpoje, kurioje ji yra įdiegta.

DHT11 jutiklio naudojimas

Mes naudojame DHT11 jutiklis nujausti neįprastą temperatūros kilimą aplink vietovę. Mes galime tiksliai nustatyti slenksčio temperatūrą programoje, jei temperatūra pakyla virš nustatytos ribos, GSM modemas pradeda siųsti perspėjimo SMS gavėjui.



Kaip tai veikia

GSM priešgaisrinės grandinės sąranką sudaro 3 dalys: jutiklis „Arduino“, kuris yra projekto smegenys, ir GSM modemas, siunčiantis SMS įspėjimą.

Sąrankos laidai yra tokie patys kaip ir kitų GSM paremti projektai kuris buvo aptartas šioje svetainėje. Vienintelis skirtumas yra DHT11 jutiklio pridėjimas prie „Arduino“.



GSM TX yra prijungtas prie „Arduino“ 9 kontakto, o „RX“ yra prijungtas prie „Arduino“ 8 kontakto ir taip pat prijungtas žemės ir žemės ryšys. Jutiklio maitinimo ir duomenų ryšys yra optimizuotas, kad prototipų kūrimo metu būtų sumažinta laidų spūstis.

Atidžiai atkreipkite dėmesį į jungtis ir įdėkite jutiklį nuo A0 iki A2 teisinga kryptimi, kaip parodyta žemiau.

Pakeitus jutiklio orientaciją, nuosekliame monitoriuje pasirodys „DUOMENYS“. Jei atvirkštinė orientacija laikoma ilgesnį laiką, jutiklis gali net sugadėti. Taigi, būkite atsargūs dėl jutiklio jungties.

Štai baigtas autoriaus prototipas:

Visada maitinkite GSM modemą naudodamiesi išoriniu maitinimo šaltiniu. A 9V 500mA maitinimo adapteris pakaks GSM modemui. Serijinis monitorius šiam projektui nėra privalomas, nes tai bus atskiras projektas. Serijinis monitorius mums reikalingas tik bandant prototipą.

Padaryti DC nuolatinės srovės sistema , schemas galite rasti šioje svetainėje ir pasistenkite, kad maitinimo mygtukas būtų lengvai pasiekiamas už jūsų projekto rėmo, kad GSM modemas būtų įjungtas po trumpo elektros tiekimo sutrikimo.

Išorinį maitinimo mygtuką galima atlikti lituojant laidus iš maitinimo mygtuko kaiščių ant GSM modemo. DC UPS sumažins būtinybę įjungti GSM modemą po kiekvieno maitinimo sutrikimo. Tai suteikia „plug and pamiršti“ savybę. Dabar pažiūrėkime, kaip veikia visa sąranka.

Gaisro atveju kambario temperatūra greitai pakyla per trumpą laiką, jutiklis gali išmatuoti formą nuo 0 iki 50 laipsnių Celsijaus.

Kai temperatūra pakyla virš programoje nustatytos ribinės vertės (nuo 0 iki 50), ji siunčia SMS įspėjimą sakydama „Gaisro pavojus: 45,00 laipsniai Celsijaus“. 45 laipsnių Celsijaus temperatūra yra patalpos temperatūra siunčiant SMS, o temperatūra viršija 100 laipsnių Celsijaus per kelias minutes po gaisro avarijos. Du SMS įspėjimai siunčiami dėl atleidimo iš darbo, jei nepavyksta išsiųsti vieno iš išsiųstų pranešimų.

Jei jutiklis nepavyko arba jutiklis atjungiamas nuo „Arduino“, informacija siunčiama vartotojui SMS žinute du kartus sakant „Nėra duomenų iš atjungto jutiklio / jutiklio“

Išsiuntus SMS įspėjimą dėl gaisro ar jutiklio atjungimo, programa sustabdoma 30 minučių. Po 30 minučių jis vėl patikrina, ar nėra nenormalių kambario temperatūros ir jutiklio laido jungčių, jei tokių yra, vėl siunčia SMS įspėjimą ir laukia dar 30 minučių.

Kai visa sąranka bus baigta ir įjungta, GSM modemas siunčia bandomąją SMS žinutę: „Tai bandomoji SMS žinutė iš GSM modemo“, jei gaunate šį pranešimą gavėjo numeriu, tai reiškia, kad jūsų projektas veikia gerai.

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

Pastaba: gavėjo numerį turite įdėti į 3 programos vietas, kurios programoje apibūdinamos kaip

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Pakeiskite x mobiliojo telefono numeriu

• Nustatykite slenkstinę temperatūrą

int th = 45 // nustatyta slenkstinė temperatūra

Ribinė temperatūra turi būti nustatyta aukšta, didesnė nei įprasta kambario temperatūros svyravimas . Pvz .: DHT11 maksimali matavimo galia yra 50 laipsnių Celsijaus, todėl slenksčio temperatūrą galima nustatyti nuo 45 iki 47. Aukšta slenksčio vertė nustatoma taip, kad ji nesiųstų klaidingo suaktyvinto SMS įspėjimo apie nedidelius kambario temperatūros pokyčius.

Jei turite daugiau abejonių ar klausimų dėl aptariamos GSM priešgaisrinės signalizacijos grandinės sistemos, nedvejodami pateikite jas naudodamiesi vertingais komentarais.




Pora: Kaip suprojektuoti indukcinio šildytuvo grandinę Kitas: 6 geriausios ištirtos IC 555 keitiklio grandinės