V tomto článku se chystáme zkonstruovat systém požárního výstražného systému GSM využívající čidla Arduino a DHT11, který uživatele upozorní prostřednictvím textové zprávy (SMS) na nebezpečí požáru v prostorách, kde je nainstalován.
Použití senzoru DHT11
Používáme Senzor DHT11 pro snímání neobvyklého nárůstu teploty v okolí oblasti. Můžeme přesně nastavit prahovou teplotu v programu, pokud teplota stoupne nad nastavenou prahovou hodnotu, GSM modem začne odesílat výstražné SMS příjemci.
Jak to funguje
Nastavení obvodu požárního poplachu GSM se skládá ze 3 částí, snímače, Arduino, které je mozkem projektu, a GSM modemu, který odesílá výstrahu SMS.
Zapojení instalace je stejné jako ostatní Projekty založené na GSM o kterém se diskutovalo na tomto webu. Jediným rozdílem je přidání senzoru DHT11 do Arduina.
TX GSM je připojen k pinu č. 9 Arduina a RX GSM je připojen k pinu č. 8 Arduina a je také připojeno zemnění. Napájení a datové připojení snímače je optimalizováno pro snížení přetížení kabeláže při prototypování.
Pečlivě si zapamatujte zapojení a zasuňte snímač z A0 do A2 ve správné orientaci, jak je znázorněno níže.
Při obrácení orientace senzoru se na sériovém monitoru zobrazí „NO DATA“. Při dlouhodobém zachování obrácené orientace může dojít dokonce k poškození snímače. Buďte tedy opatrní ohledně připojení senzoru.
Zde je dokončený autorův prototyp:
Vždy napájejte GSM modem externím zdrojem napájení. A 9V 500mA napájecí adaptér bude stačit pro GSM modem. Sériový monitor není pro tento projekt povinný, protože se bude jednat o samostatný projekt. Sériový monitor potřebujeme pouze při testování prototypu.
Udělat Systém stejnosměrného napájení , schémata jsou k dispozici na této webové stránce a pokuste se snadno zpřístupnit tlačítko napájení mimo šasi vašeho projektu, aby bylo možné po krátkém výpadku napájení zapnout GSM modem.
Tlačítko externího napájení lze vyrobit pájením vodičů z kolíků tlačítka napájení na GSM modemu. DC UPS sníží nutnost zapnutí GSM modemu po každém výpadku napájení. Poskytuje funkce typu plug and forget. Nyní se podívejme, jak celé nastavení funguje.
V případě požáru teplota v místnosti rychle vzroste v krátkém období, snímač má schopnost měřit od 0 do 50 stupňů Celsia.
Když teplota stoupne nad nastavenou prahovou hodnotu v programu (v rozmezí 0 až 50), odešle výstrahu SMS s hlášením „Požární výstraha: 45,00 stupňů Celsia“. 45 stupňů Celsia je teplota místnosti během odesílání SMS, teplota by dosáhla nad 100 stupňů Celsia během několika minut po požáru. Pro redundanci se odešlou dvě výstrahy SMS, v případě, že jedna z odeslaných zpráv selže.
Pokud senzor selhal nebo se senzor odpojil od Arduina, informace se uživateli zašle dvakrát pomocí SMS se zprávou „Žádná data ze senzoru / senzor odpojen“
Program se zastaví po dobu 30 minut po odeslání výstrahy SMS na požár nebo odpojení senzoru. Po 30 minutách znovu zkontroluje abnormality teploty v místnosti a připojení čidla, pokud existují, znovu odešle výstrahu SMS a čeká dalších 30 minut.
Když je celé nastavení dokončeno a zapnuto, GSM modem pošle testovací SMS se zprávou „Toto je testovací SMS z GSM modemu“, pokud obdržíte tuto zprávu na číslo příjemce, znamená to, že váš projekt funguje dobře.
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---------------//
Poznámka: Číslo příjemce musíte umístit na 3 místa v programu, který je v programu popsán jako
('AT + CMGS = ' + 91xxxxxxxxx ' r') // Nahraďte x číslem mobilního telefonu
• Nastavte mezní teplotu
int th = 45 // nastavená prahová teplota
Prahová teplota musí být nastavena vysoko, vyšší než obvykle kolísání teploty v místnosti Například: DHT11 má maximální měřicí kapacitu 50 stupňů Celsia, takže prahovou teplotu lze nastavit od 45 do 47. Vysoká prahová hodnota je nastavena tak, aby při malých změnách teploty v místnosti neposílala falešně spuštěné výstrahy SMS.
Pokud máte další pochybnosti nebo dotazy týkající se diskutovaného výstražného obvodu GSM požární SMS, neváhejte je uvést prostřednictvím svých cenných komentářů.
Předchozí: Jak navrhnout obvod indukčního ohřívače Další: Prozkoumáno 6 nejlepších obvodů střídače IC 555