Projekt alarmu SMS GSM Fire

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym artykule zamierzamy zbudować system obwodu alarmowego GSM wykorzystujący czujnik Arduino i DHT11, który zaalarmuje użytkownika za pomocą wiadomości tekstowej (SMS) o zagrożeniu pożarowym w lokalu, w którym jest zainstalowany.

Korzystanie z czujnika DHT11

Używamy Czujnik DHT11 do wykrywania nietypowego wzrostu temperatury w okolicy. W programie możemy precyzyjnie ustawić temperaturę progową, jeśli temperatura wzrośnie powyżej zadanego progu modem GSM zaczyna wysyłać alarmowy SMS do odbiorcy.



Jak to działa

Konfiguracja obwodu alarmu pożarowego GSM składa się z 3 części, czujnika, Arduino, który jest mózgiem projektu oraz modemu GSM, który wysyła ostrzeżenie SMS.

Okablowanie konfiguracji jest takie samo jak inne Projekty oparte na GSM które zostało omówione na tej stronie. Jedyną różnicą jest dodanie czujnika DHT11 do Arduino.



TX GSM jest podłączony do pinu # 9 Arduino, a RX GSM jest podłączony do pinu # 8 Arduino, a połączenie uziemienia jest również podłączone. Zasilanie i połączenie danych czujnika jest zoptymalizowane pod kątem zmniejszenia przeciążenia okablowania podczas prototypowania.

Zwróć szczególną uwagę na połączenia i włóż czujnik od A0 do A2 w prawidłowej orientacji, jak pokazano poniżej.

Odwrócenie orientacji czujnika spowoduje wyświetlenie komunikatu „NO DATA” na monitorze szeregowym. Jeśli odwrotna orientacja jest utrzymywana przez dłuższy czas, może nawet uszkodzić czujnik. Dlatego uważaj na podłączenie czujnika.

Oto gotowy prototyp autora:

Zawsze zasilaj modem GSM zewnętrznym źródłem zasilania. ZA Zasilacz 9V 500mA wystarczy dla modemu GSM. Monitor szeregowy nie jest obowiązkowy dla tego projektu, ponieważ będzie to projekt samodzielny. Monitor szeregowy potrzebujemy tylko do testowania prototypu.

Zrobić System DC UPS , schematy są dostępne na tej stronie internetowej i postaraj się, aby przycisk zasilania był łatwo dostępny poza obudową twojego projektu, tak aby modem GSM mógł być włączony po krótkiej awarii zasilania.

Zewnętrzny przycisk zasilania można wykonać poprzez przylutowanie przewodów z pinów przycisku zasilania na modemie GSM. DC UPS ograniczy konieczność włączania modemu GSM po każdej awarii zasilania. Daje rodzaj funkcji „podłącz i zapomnij”. Zobaczmy teraz, jak działa cała konfiguracja.

W przypadku pożaru temperatura w pomieszczeniu gwałtownie rośnie w krótkim czasie, czujnik ma możliwość pomiaru od 0 do 50 stopni Celsjusza.

Gdy temperatura wzrośnie powyżej ustawionej w programie wartości progowej (w zakresie od 0 do 50) wysyła ostrzeżenie SMS o treści „Alarm pożarowy: 45,00 stopni Celsjusza”. 45 stopni Celsjusza to temperatura w pomieszczeniu podczas wysyłania SMS-ów, która w ciągu kilku minut po pożarze osiągnie ponad 100 stopni Celsjusza. Dwa powiadomienia SMS są wysyłane do redundancji w przypadku niepowodzenia jednej z wysłanych wiadomości.

Jeśli czujnik ulegnie awarii lub czujnik zostanie odłączony od Arduino, informacja jest wysyłana do użytkownika SMS-em dwukrotnie mówiąc „Brak danych z czujnika / czujnik odłączony”

Program zatrzymuje się na 30 minut po wysłaniu powiadomienia SMS o pożarze lub odłączeniu czujnika. Po 30 minutach sprawdza ponownie, czy nie występują nieprawidłowości w temperaturze pokojowej i podłączeniu przewodu czujnika, jeśli takie istnieją, ponownie wysyła ostrzeżenie SMS i czeka przez kolejne 30 minut.

Gdy cała konfiguracja jest zakończona i włączona, modem GSM wysyła SMS testowy z napisem „To jest SMS testowy z modemu GSM”. Jeśli otrzymasz tę wiadomość na numer odbiorcy, oznacza to, że projekt działa poprawnie.

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

Uwaga: numer odbiorcy należy umieścić w 3 miejscach w programie, co jest opisane w programie jako

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Zastąp x numerem telefonu komórkowego

• Ustaw temperaturę progową

int th = 45 // ustaw temperaturę progową

Temperaturę progową należy ustawić jako wysoką, wyższą niż zwykle wahania temperatury w pomieszczeniu Na przykład: DHT11 ma maksymalną pojemność pomiarową 50 stopni Celsjusza, więc temperaturę progową można ustawić w zakresie od 45 do 47. Wysoka wartość progowa jest ustawiona tak, że nie będzie wysyłał fałszywego powiadomienia SMS o małych zmianach temperatury w pomieszczeniu.

Jeśli masz dalsze wątpliwości lub pytania dotyczące omawianego systemu obwodów alarmowych SMS przeciwpożarowych GSM, nie wahaj się ich przesłać w cennych komentarzach.




Poprzedni: Jak zaprojektować obwód nagrzewnicy indukcyjnej Dalej: Zbadano 6 najlepszych obwodów falownika IC 555