Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Componentes y suministros

Sistema de monitorización de incendios forestales en tiempo real con alertas SMSItead Gboard Pro 800 SIM800 GSM/GPRS Module 3.3V ATmega2560 Mainboard para Arduino Starter×1
Sistema de monitorización de incendios forestales en tiempo real con alertas SMSArduino UNO×1
Sistema de monitorización de incendios forestales en tiempo real con alertas SMSSensor DHT11 Temperatura y Humedad (3 pines)×2
Sistema de monitorización de incendios forestales en tiempo real con alertas SMSCables jumper (genéricos)×1

Aplicaciones y servicios en línea

Sistema de monitorización de incendios forestales en tiempo real con alertas SMSArduino IDE

Acerca de este proyecto

El proceso de detección de incendios forestales se inicia en cualquiera de los nodos colocados en árboles dentro del bosque. El bosque tiene una red de nodos a distancias adecuadas, capaces de comunicarse mediante dispositivos (módulo RF en nuestro caso) y Arduino. Si se detecta algún cambio por encima de un valor umbral en parámetros atmosféricos (subida de temperatura, contaminación por humo, etc.) cerca de un nodo (nodo origen), la información se pasa al nodo intermedio más cercano hasta llegar al terminal principal. El terminal principal usa un módem GSM para enviar la información a un teléfono móvil (centro de monitorización de incendios).

Parte transmisora del modelo físico

El módulo de detección funciona en tres etapas:

  1. Lectura de parámetros ambientales: temperatura y humo. Sensores convierten datos analógicos a digitales. Leen temperatura, humedad y calidad del aire, enviando la info al siguiente nodo.
  2. Transmisión entre nodos: el proceso continúa hasta llegar al nodo final o terminal principal.
  3. Notificación al centro: transmisión de la información a la unidad de monitorización.

Cada nodo tiene sensor de temperatura/humedad, sensor de humo y microcontrolador (Arduino). Los sensores interactúan con Arduino y almacenan información para comparación. Hay valores umbral predefinidos. El microprocesador compara lecturas a intervalos regulares con los umbrales. Si los valores superan el umbral, el nodo transmite al siguiente nodo cercano, que a su vez transmite al siguiente, regulando el flujo de mensajes.

Modelo físico del aparato

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Parte transmisora (detalle)

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Lecturas en el Monitor Serie

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Mensajes recibidos por el módulo GSM

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Código

Códigos Arduino para lado receptor y transmisor C/C++

Este código configura el Arduino receptor para monitorización de temperatura y humedad. Si los valores superan un umbral, se envía SMS a la estación base. Si hay subida de valores en el nodo transmisor, se comunica vía módulo RF transmisor (en Arduino Uno transmisor) al módulo RF receptor (en Arduino Uno receptor). Nota: el código tiene dos partes: "Receiver side arduino" y "Transmitter side arduino".

########( PARTE-1 )###### CÓDIGO ARDUINO LADO RECEPTOR ##########################
// Incluir librería RadioHead Amplitude Shift Keying
#include <SoftwareSerial.h>
#include <RH_ASK.h>
// Incluir librería SPI dependiente
#include <SPI.h>
#include <DHT.h>

SoftwareSerial mySerial(4, 3); // RX, TX para 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("Receptor Humedad = "); Serial.print(hum); Serial.print('\n');
  Serial.print("Receptor Temperatura = "); Serial.println(temp);

  int analogSensor = analogRead(smokeA0);
  String smk;
  if (analogSensor > sensorThres) {
    Serial.print("Humo en Receptor"); Serial.print('\n');
    smk = "Humo";
  } else {
    Serial.print("Limpio en Receptor"); Serial.print('\n');
    smk = "Limpio";
  }

  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("Humedad: "); Serial.print(str_humid);
  Serial.print(" - Temperatura: "); Serial.println(str_temp);
  Serial.print(" - Calidad Aire: "); Serial.println(str_smk);

  // Detección en receptor
  if (hum >= 60 && temp >= 25) {
    Serial.print("Incendio detectado en Receptor ");
    sendSMS("FIRE ALERT !!", "Incendio en Nodo Receptor", String(temp), String(hum), smk);
  }

  // Detección en transmisor
  if (str_humid.toInt() >= 60 && str_temp.toInt() >= 25) {
    Serial.print("Incendio detectado en Transmisor ");
    sendSMS("FIRE ALERT !!", "Incendio en Nodo Transmisor", str_temp, str_humid, 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); // Cambia el número
  mySerial.println(alert); Serial.println('\n');
  mySerial.println(location); Serial.println('\n');
  mySerial.println("Temperatura: " + temp); Serial.print('\n');
  mySerial.println("Humedad: " + hum); Serial.print('\n');
  mySerial.println("Calidad Aire: " + air);
  delay(100);
  mySerial.println((char)26); // CTRL+Z
  delay(1000);
}

#######( PARTE-2 )############ CÓDIGO ARDUINO LADO TRANSMISOR ############
#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 + "," + "Humo";
  if (str_smk == "0") str_out = str_humid + "," + str_temp + "," + "Limpio";

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

Esquemáticos

Sistema de monitorización de incendios forestales en tiempo real con alertas SMS

Proceso de manufactura

  1. Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
  2. Construya un Sistema Rápido y Fiable de Detección de Incendios con Samsung SAMIIO, Arduino UNO y Raspberry Pi
  3. Sistema Inteligente de Monitorización para Hoteles y Hogares con Controles Automatizados en la Nube
  4. Sistema de Asistencia RFID Fiable con Arduino y Python
  5. Robot de Detección Humana con Arduino Uno: Integración de Sensores Paso a Paso
  6. Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
  7. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  8. SERENA: Sistema de Alarma Personalizado Arduino Mega 2560 con Pantalla TFT LCD Táctil
  9. Sistema automático de riego para plantas con Arduino
  10. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  11. Sistema IoT Avanzado con IA para Detección Temprana de Incendios Forestales y Monitorización de Salud de Árboles