Proiect GSM Fire SMS Alert

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest articol vom construi un sistem de circuit de alertă la incendiu GSM utilizând senzorul Arduino și DHT11, care va avertiza utilizatorul prin mesaj text (SMS) cu privire la un pericol de incendiu în incinta unde este instalat.

Utilizarea senzorului DHT11

Folosim Senzor DHT11 pentru a sesiza creșterea neobișnuită a temperaturii în jurul zonei locale. Putem seta cu precizie temperatura pragului în program, dacă temperatura crește peste pragul prestabilit, modemul GSM începe să trimită SMS de alertă destinatarului.



Cum functioneaza

Configurarea circuitului de alertă de incendiu GSM este formată din 3 părți, senzorul, Arduino, care este creierul proiectului și modemul GSM care trimite alertă SMS.

Cablajul configurării este același ca și celelalte Proiecte bazate pe GSM despre care s-a discutat în acest site web. Singura diferență este adăugarea senzorului DHT11 la Arduino.



TX-ul GSM este conectat la pinul # 9 al Arduino și RX al GSM este conectat la pinul # 8 al Arduino și conexiunea de la masă la masă este, de asemenea, conectată. Conexiunea de alimentare și de date a senzorului este optimizată pentru reducerea congestiei cablurilor în timpul prototipării.

Vă rugăm să rețineți conexiunile cu atenție și să introduceți senzorul de la A0 la A2 în orientare corectă, așa cum este ilustrat mai jos.

Inversarea orientării senzorului va afișa „NICIUN DAT” pe monitorul serial. Dacă se păstrează orientarea inversă pentru o perioadă lungă de timp, poate chiar deteriora senzorul. Deci, fiți precauți în legătură cu conexiunea senzorului.

Iată un prototip de autor completat:

Alimentați întotdeauna modemul GSM cu sursă de alimentare externă. A Adaptor de alimentare 9V 500mA va fi suficient pentru modemul GSM. Monitorul serial nu este obligatoriu pentru acest proiect, deoarece va fi un proiect independent. Avem nevoie de monitor serial numai în timp ce testăm prototipul.

A face o Sistem DC UPS , schemele sunt disponibile pe acest site web și încercați să faceți butonul de alimentare ușor accesibil în afara șasiului proiectului dvs., astfel încât modemul GSM să poată fi pornit după o scurtă întrerupere a alimentării.

Butonul de alimentare extern poate fi realizat prin lipirea firelor de la pinii butonului de alimentare de pe modemul GSM. UPS-ul DC va reduce necesitatea pornirii modemului GSM după fiecare pană de curent. Oferă tipul de funcție plug and forget. Acum să vedem cum funcționează întreaga configurare.

În caz de incendiu, temperatura camerei crește rapid într-o perioadă scurtă, senzorul are capacitatea de a măsura forma de la 0 la 50 grade Celsius.

Când temperatura crește peste valoarea pragului prestabilit în program (în intervalul 0-50), acesta trimite o alertă SMS spunând „Alertă de incendiu: 45,00 grade Celsius”. 45 de grade Celsius este temperatura camerei în timpul trimiterii SMS-urilor, temperatura ar depăși 100 de grade Celsius în câteva minute după accidentul de incendiu. Două alerte SMS sunt trimise pentru redundanță, în cazul în care cea a mesajului trimis eșuează.

Dacă senzorul a eșuat sau senzorul este deconectat de la Arduino, informațiile sunt trimise utilizatorului prin SMS de două ori spunând „Nu există date de la senzor / senzor deconectat“

Programul se oprește timp de 30 de minute după trimiterea unei alerte SMS pentru incendiu sau deconectare a senzorului. Verifică din nou dacă există anomalii la temperatura camerei și conexiunea cablului senzorului după 30 de minute, dacă există, trimite din nou alertă SMS și așteaptă încă 30 de minute.

Când întreaga configurare este finalizată și pornită, modemul GSM trimite SMS de testare spunând „Acesta este un SMS de testare de la modemul GSM” dacă primiți acest mesaj către numărul destinatarului, înseamnă că proiectul dvs. funcționează bine.

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

Notă: Trebuie să plasați numărul destinatarului în 3 locuri în program, care este descris în program ca

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Înlocuiți x cu numărul de telefon mobil

• Setați temperatura pragului

int th = 45 // setat temperatura prag

Temperatura prag trebuie setată ridicată, mai mare decât de obicei fluctuația de temperatură a camerei De exemplu: DHT11 are o capacitate maximă de măsurare de 50 grade Celsius, deci temperatura pragului poate fi setată de la 45 la 47. Valoarea pragului ridicat este setată astfel încât să nu trimită o alarmă falsă declanșată prin SMS pentru modificări mici ale temperaturii camerei.

Dacă aveți îndoieli sau întrebări suplimentare cu privire la sistemul de circuit de alertă GSM incendiu discutat, vă rugăm să nu ezitați să le expuneți prin comentariile dvs. valoroase.




Precedent: Cum să proiectați un circuit de încălzire cu inducție Următorul: 6 cele mai bune circuite invertor IC 555 explorate