Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Onderdelen en benodigdheden

Real-time Bosbrandbewakingssysteem met SMS-alarmen Itead Gboard Pro 800 SIM800 GSM/GPRS Module (ATmega2560) × 1
Real-time Bosbrandbewakingssysteem met SMS-alarmen Arduino UNO × 1
Real-time Bosbrandbewakingssysteem met SMS-alarmen DHT11 Temperatuur & Vochtigheid Sensor (3 pins) × 2
Real-time Bosbrandbewakingssysteem met SMS-alarmen Jumper wires (standaard) × 1

Apps en online diensten

Real-time Bosbrandbewakingssysteem met SMS-alarmen Arduino IDE

Over dit project

Het detectieproces van een bosbrand start bij een van de knooppunten (nodes) in een boom in het bos. Het bos heeft een netwerk van nodes op geschikte afstanden, die communiceren via RF-modules en Arduino. Als een knooppunt (bron-knooppunt) een verandering boven een drempelwaarde detecteert in atmosferische parameters (temperatuurstijging, rookverontreiniging, etc.), wordt de informatie doorgestuurd naar het dichtstbijzijnde tussenknooppunt, totdat het het hoofdknooppunt/hoofdterminal bereikt. Dit hoofdterminal gebruikt een GSM-modem om de informatie via SMS door te sturen naar het bosbrandbewakingscentrum.

Zenderdeel van het fysieke model

De bosbranddetectiemodule werkt in drie fasen:

  1. Fase 1 – Sensoren uitlezen: temperatuur, vochtigheid en luchtkwaliteit (rook) worden gemeten en geconverteerd van analoog naar digitaal. De data wordt doorgestuurd naar het volgende knooppunt.
  2. Fase 2 – Doorsturen: het proces herhaalt zich tot de data het eindknooppunt/hoofdterminal bereikt.
  3. Fase 3 – Alarm: het hoofdterminal stuurt de informatie via GSM naar het bewakingscentrum.

Elk knooppunt heeft een temperatuur/vochtigheidssensor, een rooksensor en een microcontroller (Arduino). De sensoren communiceren met de Arduino en slaan data op voor vergelijking. Er zijn vooraf gedefinieerde drempelwaarden. De microcontroller vergelijkt de sensorwaarden op vaste intervallen met de drempels. Bij overschrijding stuurt het knooppunt de info door naar het volgende knooppunt, enzovoort.

Fysiek model van het apparaat

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Zenderdeel – detail

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Seriële monitor uitlezing

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Ontvangen SMS-berichten via GSM-module

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Code

Ontvanger- en Zenderzijde Arduino Module Codes

Deze code configureert de ontvangende Arduino voor temperatuur/vochtigheidsmonitoring. Als waarden een drempel overschrijden, wordt een SMS verstuurd naar het basestation. Een waardestijging aan de zenderzijde wordt via RF-zender (op zender-Arduino) naar de RF-ontvanger (op ontvanger-Arduino) gecommuniceerd.

Let op: de code bestaat uit twee delen – één voor "Receiver side arduino" en één voor "Transmitter side arduino".

Deel 1: Ontvanger (Receiver) Code

########( PART-1 )###### Receiver Side Arduino CODE ##########################
#include <SoftwareSerial.h>
#include <RH_ASK.h>
#include <SPI.h>
#include <DHT.h>

SoftwareSerial mySerial(4, 3);

// Constanten
#define DHTPIN 2
#define DHTTYPE DHT11
int smokeA0 = A5;
int sensorThres = 400;

// Variabelen
DHT dht(DHTPIN, DHTTYPE);
float hum, temp;
String str_humid, str_temp, str_smk, str_out;
RH_ASK rf_driver;

void setup() {
  pinMode(smokeA0, INPUT);
  dht.begin();
  rf_driver.init();
  Serial.begin(9600);
  mySerial.begin(115200);
}

void loop() {
  delay(2000);
  hum = dht.readHumidity();
  temp = dht.readTemperature();
  Serial.print("Reciever Humidity = "); Serial.print(hum); Serial.print('\n');
  Serial.print("Reciever Temperature = "); Serial.println(temp);

  int analogSensor = analogRead(smokeA0);
  String smk;
  if (analogSensor > sensorThres) {
    Serial.print("Smoke at Reciever"); Serial.print('\n');
    smk = "Smoke";
  } else {
    Serial.print("Clean at Reciever"); Serial.print('\n');
    smk = "Clean";
  }

  uint8_t buf[20];
  uint8_t buflen = sizeof(buf);
  if (rf_driver.recv(buf, &buflen)) {
    str_out = String((char*)buf);
    for (int i = 0; i < str_out.length(); i++) {
      if (str_out.substring(i, i+1) == ",") {
        str_humid = str_out.substring(0, i);
        str_temp = str_out.substring(i+1, i+6);
        str_smk = str_out.substring(i+7, i+12);
        break;
      }
    }
  }

  Serial.print("Humidity: "); Serial.print(str_humid);
  Serial.print(" - Temperature: "); Serial.println(str_temp);
  Serial.print(" - Air Quality: "); Serial.println(str_smk);

  // Brand gedetecteerd op ontvanger
  if (hum >= 60 && temp >= 25) {
    Serial.print("Fire Detected at Reciever ");
    sendSMS("FIRE ALERT !!", "Fire at Reciever Node", String(temp), String(hum), smk);
  }

  // Brand gedetecteerd op zender
  if (str_humid.toInt() >= 60 && str_temp.toInt() >= 25) {
    Serial.print("Fire Detected at Transmitter ");
    sendSMS("FIRE ALERT !!", "Fire at Transmitter Node", str_temp, str_humid, String(str_smk));
  }
}

void sendSMS(String alert, String location, String temp, String hum, String air) {
  mySerial.println("AT+CMGF=1"); delay(1000);
  mySerial.println("AT+CMGS=\"+918744984131\"\r"); delay(1000); // Vervang door je nummer
  mySerial.println(alert); Serial.println('\n');
  mySerial.println(location); Serial.println('\n');
  mySerial.println("Temperature : " + temp); Serial.print('\n');
  mySerial.println("Humidity : " + hum); Serial.print('\n');
  mySerial.println("Air Quality : " + air);
  delay(100);
  mySerial.println((char)26); // CTRL+Z
  delay(1000);
}

Deel 2: Zender (Transmitter) Code

#######( PART-2 )############ Transmitter Side Arduino Code ############
#include <RH_ASK.h>
#include <SPI.h>
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int smokeA0 = A5;
int sensorThres = 400;

float hum, temp, smk;
String str_humid, str_temp, str_smk, str_out;
RH_ASK rf_driver;

void setup() {
  dht.begin();
  pinMode(smokeA0, INPUT);
  rf_driver.init();
}

void loop() {
  delay(2000);
  hum = dht.readHumidity();
  temp = dht.readTemperature();
  Serial.print(hum); Serial.print(temp);

  int analogSensor = analogRead(smokeA0);
  if (analogSensor > sensorThres) str_smk = "1"; else str_smk = "0";

  if (str_smk == "1") str_out = str_humid + "," + str_temp + "," + "Smoke";
  if (str_smk == "0") str_out = str_humid + "," + str_temp + "," + "Clean";

  const char *msg = str_out.c_str();
  rf_driver.send((uint8_t *)msg, strlen(msg));
  rf_driver.waitPacketSent();
}

Schema's

Real-time Bosbrandbewakingssysteem met SMS-alarmen

Productieproces

  1. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  2. Een Snel, Betrouwbare Brandsdetectiesysteem Bouwen met Samsung SAMIIO, Arduino UNO & Raspberry Pi
  3. Slim Hotel- & Thuismonitoringssysteem met Cloud-gebaseerde Geautomatiseerde Besturing
  4. Betrouwbaar Arduino RFID Aanwezigheidssysteem Aangedreven door Python
  5. Arduino Uno Gebaseerde Mensendetectie Robot: Stap-voor-stap Sensorintegratie
  6. K30 CO2-sensor: Real-time binnenluchtkwaliteitmonitoring met Arduino
  7. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  8. SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
  9. Arduino-gestuurd automatische plantenwateringssysteem
  10. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  11. Geavanceerd AI-aangedreven IoT-systeem voor vroege bosbranddetectie & boomgezondheidsmonitoring