Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Waldbrandüberwachungs- und -erkennungssystem (mit SMS-Warnungen)

Komponenten und Verbrauchsmaterialien

Itead Gboard Pro 800 SIM800 GSM / GPRS-Modul 3,3 V ATmega2560 Mainboard Für Arduino-Starter
× 1
Arduino UNO
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (3 Pins)
× 2
Jumper (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Der Prozess der Waldbranderkennung beginnt an jedem der auf einem Baum im Wald gepflanzten Knoten. Der Wald verfügt über ein Netzwerk von Knoten, die in geeigneten Abständen voneinander platziert sind. Die Knoten können über Geräte (in unserem Fall RF-Modul) und mithilfe von Arduino kommunizieren. Wird in der Nähe eines Knotens (Quellknoten) eine Änderung der atmosphärischen Parameter (Temperaturanstieg, Luftverschmutzung mit Rauch usw.) über einen Schwellenwert hinaus festgestellt, wird die Information an einen nächstgelegenen Zwischenknoten weitergeleitet, bis sie den Hauptknoten erreicht. Kopfterminal. Das Haupt-/Hauptterminal verwendet ein GSM-Modem, um die Informationen an ein Mobiltelefon (die Waldbrandmeldezentrale) weiterzugeben.

SENDER TEIL DES PHYSIKALISCHEN MODELLS

Das Waldbranderkennungsmodul arbeitet in drei verschiedenen Stufen. Die erste Stufe besteht darin, einige externe Umgebungsparameter wie Temperatur und Rauch zu lesen. Die erste Stufe wird mit Hilfe einiger Sensoren durchgeführt, die verwendet werden, um analoge Daten zu erfassen und in digitale Daten umzuwandeln. Die Sensoren lesen Parameter wie Temperatur, Luftfeuchtigkeit und Luftqualität und senden diese Informationen dann an den nächstgelegenen Knoten. Dieser Vorgang wird fortgesetzt, bis die Informationen den Endknoten oder das Hauptterminal erreichen, was die zweite Stufe des Gesamtprozesses ist. Die dritte Stufe besteht in der Übermittlung der Informationen an die Waldbrandüberwachungsstelle.

Jeder Knoten verfügt über einen Temperatur- und Feuchtigkeitssensor, einen Rauchsensor und eine Mikrocontrollereinheit. Als Mikrocontroller wurde Arduino verwendet. Die Sensoren interagieren mit dem Arduino und speichern die Informationen für den Vergleichsprozess. Für jeden dieser Parameter gibt es einen vordefinierten Schwellenwert. Der Mikroprozessor vergleicht die Sensorwerte in regelmäßigen Zeitabständen mit den Schwellwerten. Basierend auf dem Vergleich, wenn die Eingangswerte der Sensoren den Schwellenwert überschreiten, überträgt der Knoten die Informationen an den nächsten nahegelegenen Knoten, der wiederum die Informationen an den anderen nahegelegenen Knoten überträgt. Auf diese Weise wird der Nachrichtenfluss in diesem Modell geregelt.

PHYSIKALISCHES MODELL DES GERÄTS

SENDER TEIL DES PHYSIKALISCHEN MODELLS

SERIELLES LESEN IM SERIELLEN MONITOR

VOM GSM-MODUL EMPFANGENE NACHRICHTEN

Code

  • Arduino-Modulcodes auf Empfänger- und Senderseite
Arduino-Modulcodes auf Empfänger- und SenderseitePython
Dieser Code konfiguriert das Arduino-Modul der Empfangsseite für die Temperatur- und Feuchtigkeitsüberwachung. Wenn die Werte einen Schwellenwert überschreiten, wird eine SMS an die Basisstation gesendet, die sie darüber informiert. Wenn am senderseitigen Knoten ein Wertanstieg auftritt, wird dies über das RF-Sendermodul auf der Senderseite des Arduino Uno an das RF-Empfängermodul auf der Empfangsseite des Arduino Uno kommuniziert. BEACHTEN SIE, dass der folgende Code aus zwei Teilen besteht, einen für "Receiver Side Arduino" und den anderen für "Sender Side Arduino"
######## ( PART-1 )###### Empfängerseite Arduino CODE ##########################// RadioHead Amplitude Shift Keying Library einschließen#include #include / / Abhängige SPI-Bibliothek einschließen #include  #include SoftwareSerial mySerial(4, 3); // Konstanten #define DHTPIN 2 // mit welchem ​​Pin wir verbunden sind #define DHTTYPE DHT11 // DHT11int smokeA0 =A5; // Ihr Schwellenwertint sensorThres =400; // Definiere VariablenDHT dht(DHTPIN, DHTTYPE); // Initialisieren Sie den DHT-Sensor für normales 16-MHz-Arduino // Variablesfloat-Brummen; // Speichert den Feuchtigkeitswertfloat temp; //Speichert Temperaturwert // Definiere Ausgabestrings String str_humid;String str_temp;String str_smk;String str_out; // Amplitudenumtastungsobjekt erstellenRH_ASK rf_driver;void setup () { pinMode (smokeA0, INPUT); dht.begin(); // ASK-Objekt initialisieren rf_driver.init(); // Serial Monitor Serial.begin (9600) einrichten; mySerial.begin(115200);} Void Schleife () { Verzögerung (2000); hum =dht.readHumidity(); temp=dht.readTemperature(); Serial.print ( "Empfängerfeuchtigkeit ="); Serial.print (brummen); Serial.print ('\n'); Serial.print ( "Empfängertemperatur ="); Serial.println (temp); int analogSensor =analogRead(smokeA0); Zeichenfolge smk; // Überprüft, ob der Schwellenwert erreicht wurde if (analogSensor> sensorThres) { Serial.print ("Smoke at Reciever"); Serial.print ('\n'); smk ="Rauch"; } Else {Serial.print ( "Beim Empfänger säubern"); Serial.print ('\n'); smk ="Sauber"; } // Puffer auf Größe der erwarteten Nachricht setzen uint8_t buf[20]; uint8_t buflen =sizeof(buf); // Prüfen, ob das empfangene Paket die richtige Größe hat if (rf_driver.recv(buf, &buflen)) { str_out =String((char*)buf); for (int i =0; i =60 &&Temp>
=25) {Serial.print ("Feuer am Empfänger erkannt"); mySerial.println("AT+CMGF=1"); // Setzt das GSM-Modul in die Textmodusverzögerung (1000); // Verzögerung von 1000 Millisekunden oder 1 Sekunde mySerial.println("AT+CMGS=\"+918744984131\"\r"); // x durch Handynummer ersetzen delay(1000); mySerial.println("FEUERWARNUNG!! "); Serial.println('\n'); mySerial.println("Feuer am Empfängerknoten"); Serial.println('\n'); mySerial.println("Temperatur:" + String(temp)); Serial.print ('\n'); mySerial.println("Feuchtigkeit:" + String(hum)); Serial.print ('\n'); mySerial.println("Luftqualität:" + smk); Verzögerung (100); mySerial.println ((char) 26); // ASCII-Code von STRG + Z-Verzögerung (1000); } if (str_humid.toInt()>=60 &&str_temp.toInt()>=25) {Serial.print("Feuer am Sender erkannt"); mySerial.println("AT+CMGF=1"); // Setzt das GSM-Modul in die Textmodusverzögerung (1000); mySerial.println("AT+CMGS=\"+918744984131\"\r"); // x durch Handynummer ersetzen delay(1000); mySerial.println("FEUERWARNUNG!! "); Serial.println('\n'); mySerial.println("Feuer am Senderknoten"); Serial.println('\n'); mySerial.println("Temperatur:" + str_temp); Serial.print ('\n'); mySerial.println("Luftfeuchtigkeit:" + str_humid); Serial.print ('\n'); mySerial.println("Luftqualität:" + String(str_smk)); Verzögerung (100); mySerial.println ((char) 26); // ASCII-Code von STRG + Z-Verzögerung (1000); } }########(TEIL-2)############ Senderseitiger Arduino-Code #################### ################################################ ###################include  #include  #include //Konstanten#define DHTPIN 2 // Welcher Pin wir sind verbunden mit #define DHTTYPE DHT11 // DHT11DHT dht(DHTPIN, DHTTYPE); // Initialisieren Sie den DHT-Sensor für normales 16-MHz-Arduinoint smokeA0 =A5; // Ihr Schwellenwertint sensorThres =400; // Variablen definieren float hum; // Speichert den Feuchtigkeitswert in Prozentfloattemp; // Speichert den Temperaturwert in Celciusfloat smk; // Ausgabestrings definieren String str_humid;String str_temp;String str_smk;String str_out; // Amplitude Shift Keying Object erstellenRH_ASK rf_driver; // DHT-Sensor für normales 16-MHz-Arduino initialisieren void setup () {dht.begin (); pinMode (smokeA0, INPUT); // ASK-Objekt initialisieren rf_driver.init(); aufrechtzuerhalten. Void Schleife () { Verzögerung (2000); // Verzögerung, damit der DHT-22-Sensor das Brummen stabilisieren kann =dht.readHumidity (); // Feuchtigkeitswert abrufen temp=dht.readTemperature(); // Temperaturwert abrufen // Feuchtigkeit in String umwandeln str_humid =String(hum); Serial.print (brummen); // Temperatur in String umwandeln str_temp =String(temp); Serial.print (temp); int analogSensor =analogRead(smokeA0); // Überprüft, ob der Schwellenwert erreicht wurde if (analogSensor> sensorThres) { str_smk ="1"; aufrechtzuerhalten. Sonst { str_smk ="0"; } // Feuchte und Temperatur kombinieren if(str_smk =="1") { str_out =str_humid + "," + str_temp + "," + "Rauch"; } if(str_smk =="0") { str_out =str_humid + "," + str_temp+ "," + "Clean"; } // Ausgabezeichen erstellen const char *msg =str_out.c_str(); rf_driver.send((uint8_t *)msg, strlen(msg)); rf_driver.waitPacketSent(); }

Schaltpläne


Herstellungsprozess

  1. Überwachen der Temperatur mit Raspberry Pi
  2. Erstellen Sie mit Samsung SAMIIO, Arduino UNO und Raspberry Pi in wenigen Minuten einen Brandmelder
  3. Heim-/Hotelüberwachungssystem mit automatischer Steuerung
  4. Anwesenheitssystem mit Arduino und RFID mit Python
  5. Robotersystem zur Erkennung von Menschen mit Arduino Uno
  6. CO2-Überwachung mit K30-Sensor
  7. Münzprüfer mit Arduino steuern
  8. Arduino-Alarmsystem:SERENA
  9. Automatisches Pflanzenbewässerungssystem mit Arduino
  10. Dual-Purpose-IoT-Waldverwaltungssystem