GSM Fire SMS Alert-Projekt

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In diesem Artikel werden wir ein GSM-Brandmeldesystem mit Arduino- und DHT11-Sensor erstellen, das den Benutzer per SMS über eine Brandgefahr in dem Gebäude informiert, in dem es installiert ist.

Verwenden des DHT11-Sensors

Wir benutzen DHT11 Sensor zur Erfassung eines ungewöhnlichen Temperaturanstiegs in der Umgebung. Wir können die Schwellentemperatur im Programm genau einstellen, wenn die Temperatur über den voreingestellten Schwellenwert steigt, das GSM-Modem beginnt mit dem Senden einer Alarm-SMS an den Empfänger.



Wie es funktioniert

Das GSM-Feueralarmschaltkreis-Setup besteht aus 3 Teilen: dem Sensor, Arduino, dem Gehirn des Projekts, und dem GSM-Modem, das SMS-Alarme sendet.

Die Verkabelung des Setups ist dieselbe wie bei anderen GSM-basierte Projekte was auf dieser Website diskutiert wurde. Der einzige Unterschied ist die Hinzufügung eines DHT11-Sensors zu Arduino.



Der TX des GSM ist mit Pin 9 von Arduino verbunden, und der RX des GSM ist mit Pin 8 von Arduino verbunden, und die Masse-Masse-Verbindung ist ebenfalls verbunden. Die Strom- und Datenverbindung des Sensors ist für eine geringere Überlastung der Verkabelung beim Prototyping optimiert.

Bitte beachten Sie die Anschlüsse sorgfältig und setzen Sie den Sensor von A0 nach A2 in der richtigen Ausrichtung ein, wie unten dargestellt.

Wenn Sie die Ausrichtung des Sensors umkehren, wird auf dem seriellen Monitor „NO DATA“ ausgegeben. Wenn die umgekehrte Ausrichtung über einen längeren Zeitraum beibehalten wird, kann der Sensor sogar beschädigt werden. Seien Sie also vorsichtig mit dem Sensoranschluss.

Hier ist ein fertiger Prototyp des Autors:

Versorgen Sie das GSM-Modem immer mit einer externen Stromversorgung. EIN 9V 500mA Netzteil wird für GSM-Modem ausreichen. Der serielle Monitor ist für dieses Projekt nicht obligatorisch, da es sich um ein eigenständiges Projekt handelt. Wir benötigen nur beim Testen des Prototyps einen seriellen Monitor.

Mach ein DC-USV-System Auf dieser Website finden Sie Schaltpläne. Versuchen Sie, den Netzschalter außerhalb des Gehäuses Ihres Projekts leicht zugänglich zu machen, damit das GSM-Modem nach einem kurzen Stromausfall eingeschaltet werden kann.

Der externe Netzschalter kann durch Löten von Drähten aus den Stiften des Netzschalters am GSM-Modem hergestellt werden. Eine DC-USV reduziert die Notwendigkeit, das GSM-Modem nach jedem Stromausfall einzuschalten. Es gibt Plug-and-Forget-Funktionen. Nun wollen wir sehen, wie das gesamte Setup funktioniert.

Im Brandfall steigt die Raumtemperatur in kurzer Zeit schnell an, der Sensor kann von 0 bis 50 Grad Celsius messen.

Wenn die Temperatur den im Programm voreingestellten Schwellenwert überschreitet (innerhalb von 0 bis 50), wird eine SMS mit der Meldung „Feueralarm: 45,00 Grad Celsius“ gesendet. 45 Grad Celsius ist die Temperatur des Raums während des Versendens von SMS. Die Temperatur würde innerhalb von Minuten nach einem Brandunfall über 100 Grad Celsius liegen. Zwei SMS-Warnungen werden aus Redundanzgründen gesendet, falls die gesendete Nachricht fehlschlägt.

Wenn der Sensor ausgefallen ist oder der Sensor von Arduino getrennt wird, werden die Informationen zweimal per SMS an den Benutzer gesendet und sagen: „Keine Daten vom Sensor / Sensor getrennt“.

Das Programm wird 30 Minuten lang angehalten, nachdem eine SMS-Warnung für einen Brand oder eine Unterbrechung des Sensors gesendet wurde. Es prüft nach 30 Minuten erneut auf Anomalien bei Raumtemperatur und Sensorkabelverbindung, falls vorhanden, sendet erneut eine SMS-Warnung und wartet weitere 30 Minuten.

Wenn das gesamte Setup abgeschlossen und eingeschaltet ist, sendet das GSM-Modem eine Test-SMS mit der Meldung „Dies ist eine Test-SMS vom GSM-Modem“. Wenn Sie diese Nachricht an die Empfängernummer senden, bedeutet dies, dass Ihr Projekt ordnungsgemäß funktioniert.

Programm:

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

Hinweis: Sie müssen die Empfängernummer an 3 Stellen im Programm platzieren, die im Programm als beschrieben sind

('AT + CMGS = ' + 91xxxxxxxxx ' r') // Ersetzen Sie x durch die Handynummer

• Stellen Sie die Schwellentemperatur ein

int th = 45 // Schwellentemperatur einstellen

Die Schwellentemperatur muss höher als üblich eingestellt werden Temperaturschwankungen des Raumes Zum Beispiel: DHT11 hat eine maximale Messkapazität von 50 Grad Celsius, sodass die Schwellentemperatur zwischen 45 und 47 eingestellt werden kann. Der hohe Schwellenwert wird so eingestellt, dass keine falsch ausgelösten SMS-Warnungen für kleine Änderungen der Raumtemperatur gesendet werden.

Wenn Sie weitere Zweifel oder Fragen bezüglich des besprochenen GSM-Feuer-SMS-Warnschaltungssystems haben, zögern Sie bitte nicht, diese durch Ihre wertvollen Kommentare darzulegen.




Zurück: So entwerfen Sie einen Induktionsheizkreis Weiter: 6 beste IC 555-Wechselrichterschaltungen untersucht