Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Système de surveillance d'incendie forestier en temps réel avec alertes SMS

Composants et fournitures

Système de surveillance d incendie forestier en temps réel avec alertes SMS Itead Gboard Pro 800 SIM800 GSM/GPRS (ATmega2560) × 1
Système de surveillance d incendie forestier en temps réel avec alertes SMS Arduino UNO × 1
Système de surveillance d incendie forestier en temps réel avec alertes SMS Capteur température/humidité DHT11 (3 broches) × 2
Système de surveillance d incendie forestier en temps réel avec alertes SMS Fils de connexion (genériques) × 1

Applications et services en ligne

Système de surveillance d incendie forestier en temps réel avec alertes SMS Arduino IDE

À propos de ce projet

La détection d'incendie forestier démarre au niveau des nœuds installés sur les arbres. La forêt est maillée de nœuds espacés, capables de communiquer entre eux (module RF) via Arduino. Si un nœud source détecte un dépassement de seuil sur les paramètres atmosphériques (température, fumée...), l'information est relayée de nœud en nœud jusqu'au terminal principal. Celui-ci utilise un modem GSM pour alerter le centre de surveillance par SMS.

Partie émettrice du modèle physique

Le module de détection fonctionne en trois étapes :

  1. Acquisition : lecture de paramètres environnementaux (température, humidité, qualité d'air) via capteurs convertissant l'analogique en numérique. Transmission au nœud suivant.
  2. Relais : l'information progresse jusqu'au nœud final / terminal principal.
  3. Notification : le terminal principal envoie l'alerte SMS au centre de surveillance.

Chaque nœud intègre : capteur température/humidité, capteur de fumée, microcontrôleur (Arduino). Les seuils sont prédéfinis. Le microcontrôleur compare les valeurs capteurs aux seuils à intervalles réguliers. Si dépassement, transmission au nœud suivant, et ainsi de suite.

Modèle physique de l'appareil

Système de surveillance d incendie forestier en temps réel avec alertes SMS

Partie émettrice (schéma)

Système de surveillance d incendie forestier en temps réel avec alertes SMS

Lecture série dans le moniteur série

Système de surveillance d incendie forestier en temps réel avec alertes SMS

Messages reçus par le module GSM

Système de surveillance d incendie forestier en temps réel avec alertes SMS

Code

Codes Arduino côté récepteur et émetteur

Note : le code ci-dessous est en C++ pour Arduino (l'étiquette "Python" d'origine est une erreur). Il contient deux parties : "Récepteur" et "Émetteur".

PARTIE 1 : Code Arduino côté récepteur

// Inclure la bibliothèque RadioHead ASK
#include <SoftwareSerial.h>
#include <RH_ASK.h>
#include <SPI.h>
#include <DHT.h>

SoftwareSerial mySerial(4, 3); // RX, TX pour module GSM

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

// Variables
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("Humidité Récepteur = "); Serial.println(hum);
  Serial.print("Température Récepteur = "); Serial.println(temp);
  
  int analogSensor = analogRead(smokeA0);
  String smk;
  if (analogSensor > sensorThres) {
    Serial.println("Fumée au Récepteur");
    smk = "Fumée";
  } else {
    Serial.println("Air pur au Récepteur");
    smk = "Propre";
  }
  
  // Réception RF
  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("Humidité: "); Serial.print(str_humid);
  Serial.print(" - Température: "); Serial.println(str_temp);
  Serial.print(" - Qualité air: "); Serial.println(str_smk);
  
  // Détection incendie au récepteur
  if (hum >= 60 && temp >= 25) {
    sendSMS("FIRE ALERT !!", "Fire at Receiver Node", temp, hum, smk);
  }
  
  // Détection incendie à l'émetteur (données reçues)
  if (str_humid.toInt() >= 60 && str_temp.toInt() >= 25) {
    sendSMS("FIRE ALERT !!", "Fire at Transmitter Node", str_temp.toFloat(), str_humid.toFloat(), str_smk);
  }
}

void sendSMS(String alert, String location, float temp, float hum, String airQuality) {
  Serial.print(location); Serial.println(" détecté");
  mySerial.println("AT+CMGF=1"); delay(1000);
  mySerial.println("AT+CMGS=\"+918744984131\"\r"); delay(1000); // Remplacez par votre numéro
  mySerial.println(alert); Serial.println();
  mySerial.println(location); Serial.println();
  mySerial.println("Temperature : " + String(temp)); Serial.println();
  mySerial.println("Humidity : " + String(hum)); Serial.println();
  mySerial.println("Air Quality : " + airQuality);
  delay(100);
  mySerial.println((char)26); // CTRL+Z
  delay(1000);
}

PARTIE 2 : Code Arduino côté émetteur

#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();
  
  str_humid = String(hum);
  str_temp = String(temp);
  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();
}

Schémas

Système de surveillance d incendie forestier en temps réel avec alertes SMS

Processus de fabrication

  1. Surveillance précise de la température dans un placard serveur avec Raspberry Pi
  2. Construire un système de détection d'incendie rapide et fiable avec Samsung SAMI, Arduino UNO et Raspberry Pi
  3. Système de surveillance intelligent pour hôtels et maisons avec contrôles automatisés basés sur le cloud
  4. Système de pointage RFID fiable avec Arduino et Python (base de données phpMyAdmin)
  5. Robot de détection humaine basé sur Arduino Uno : Intégration capteurs étape par étape
  6. Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
  7. Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
  8. SERENA : Système d'Alarme Arduino Mega 2560 Personnalisé avec Écran Tactile TFT LCD
  9. Système IoT avancé piloté par IA pour détection ultra-précoce feux de forêt et surveillance santé arbres