工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

リアルタイム森林火災監視システム: SMSアラート機能付き

必要な部品と材料

リアルタイム森林火災監視システム: SMSアラート機能付き Itead Gboard Pro 800 SIM800 GSM/GPRSモジュール 3.3V ATmega2560 メインボード (Arduino用) × 1
リアルタイム森林火災監視システム: SMSアラート機能付き Arduino UNO × 1
リアルタイム森林火災監視システム: SMSアラート機能付き DHT11温湿度センサー (3ピン) × 2
リアルタイム森林火災監視システム: SMSアラート機能付き ジャンパーワイヤー (汎用) × 1

アプリとオンラインサービス

リアルタイム森林火災監視システム: SMSアラート機能付き Arduino IDE

このプロジェクトについて

森林火災の検出プロセスは、森林内の木に設置された任意のノードで開始されます。森林には適切な間隔でノードネットワークが配置され、各ノードはデバイス (このケースではRFモジュール) とArduinoを通じて通信可能です。何らかのノード (送信元ノード) 付近で大気パラメータ (温度上昇、煙による大気汚染など) が閾値を超える変化を検知すると、その情報は最寄りの中継ノードを経由してメイン/ヘッド端末まで伝達されます。メイン端末はGSMモデムを使用して携帯電話 (森林火災監視センター) に情報を送信します。

物理モデルの送信部

森林火災検出モジュールは3つの段階で動作します。第1段階は温度や煙などの外部環境パラメータの読み取りです。センサーを使用して温度、湿度、空気質を検知し、アナログデータをデジタルデータに変換して次のノードに送信します。このプロセスは最終ノードまたはメイン端末 (第2段階) に情報が到達するまで続きます。第3段階は、情報を森林火災監視ユニットに送信する段階です。

各ノードには温湿度センサー、煙センサー、マイクロコントローラーユニット (Arduino) を搭載。センサーはArduinoと連携し、情報を比較処理用に保存します。各パラメータには事前定義された閾値があり、マイクロプロセッサーが定期的にセンサー値と閾値を比較。入力値が閾値を超えると、そのノードは隣のノードに情報を送信し、さらに次のノードへと伝達されます。こうしてメッセージフローが制御されます。

装置の物理モデル

リアルタイム森林火災監視システム: SMSアラート機能付き

送信部の物理モデル (詳細)

リアルタイム森林火災監視システム: SMSアラート機能付き

シリアルモニターでの読み取り

リアルタイム森林火災監視システム: SMSアラート機能付き

GSMモジュールで受信したメッセージ

リアルタイム森林火災監視システム: SMSアラート機能付き

コード

受信側と送信側Arduinoモジュールコード Python

このコードは受信側Arduinoモジュールを温湿度監視用に設定し、値が閾値を超えた場合にSMSを基地局に送信します。送信側ノードで値の上昇があった場合、送信側Arduino UnoのRF送信モジュールから受信側Arduino UnoのRF受信モジュールへ通信されます。注意: 以下のコードは「受信側Arduino」と「送信側Arduino」の2部構成です

########( PART-1 )###### 受信側 Arduino CODE ##########################
// RadioHead ASKライブラリをインクルード
#include <SoftwareSerial.h>
#include <RH_ASK.h>
// 依存するSPIライブラリをインクルード
#include <SPI.h>
#include <DHT.h>

SoftwareSerial mySerial(4, 3); // GSM用シリアル

// 定数
#define DHTPIN 2        // 接続ピン
#define DHTTYPE DHT11   // DHT11
int smokeA0 = A5;       // 煙センサーピン
int sensorThres = 400;  // 閾値

// 変数定義
DHT dht(DHTPIN, DHTTYPE); // 16MHz Arduino用にDHTセンサー初期化
float hum;   // 湿度値格納
float temp;  // 温度値格納

// 出力文字列
String str_humid;
String str_temp;
String str_smk;
String str_out;

// ASKオブジェクト作成
RH_ASK rf_driver;

void setup() {
  pinMode(smokeA0, INPUT);
  dht.begin();
  rf_driver.init();        // ASKオブジェクト初期化
  Serial.begin(9600);      // シリアルモニター
  mySerial.begin(115200);  // GSMモジュール用
}

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);
  
  // 受信側で火災検知
  if (hum >= 60 && temp >= 25) {
    Serial.print("Fire Detected at Reciever ");
    sendSMS("Fire at Reciever Node", temp, hum, smk);
  }
  
  // 送信側からのデータで火災検知
  if (str_humid.toInt() >= 60 && str_temp.toInt() >= 25) {
    Serial.print("Fire Detected at Transmitter ");
    sendSMS("Fire at Transmitter Node", str_temp.toFloat(), str_humid.toFloat(), str_smk);
  }
}

// SMS送信ヘルパー関数
void sendSMS(String location, float temp, float hum, String airQuality) {
  mySerial.println("AT+CMGF=1");  // テキストモード設定
  delay(1000);
  mySerial.println("AT+CMGS=\"+918744984131\"\r"); // 電話番号を置き換え
  delay(1000);
  mySerial.println(" FIRE ALERT !! ");
  Serial.println('\n');
  mySerial.println(location);
  Serial.println('\n');
  mySerial.println("Temperature: " + String(temp));
  Serial.print('\n');
  mySerial.println("Humidity: " + String(hum));
  Serial.print('\n');
  mySerial.println("Air Quality: " + airQuality);
  delay(100);
  mySerial.println((char)26); // CTRL+Z (ASCII 26)
  delay(1000);
}

#######( PART-2 )############ 送信側 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;
float temp;
float smk;
String str_humid;
String str_temp;
String str_smk;
String str_out;

RH_ASK rf_driver;

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

void loop() {
  delay(2000); // DHT安定化待ち
  hum = dht.readHumidity();
  temp = dht.readTemperature();
  
  str_humid = String(hum);
  Serial.print(hum);
  str_temp = String(temp);
  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();
}

回路図

リアルタイム森林火災監視システム: SMSアラート機能付き

製造プロセス

  1. Raspberry Piでサーバークローゼットの温度を正確に監視
  2. Samsung SAMI、Arduino UNO、Raspberry Piで高速・信頼性の高い火災検知システムを構築
  3. スマートホテル&ホーム監視システム:クラウドベース自動制御
  4. Python連携で信頼性向上: Arduino RFID勤怠管理システム
  5. Arduino Unoベースの人間検知レスキューロボット:センサー統合ステップバイステップ
  6. K30 CO2センサで室内空気質をリアルタイム監視する
  7. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  8. SERENA:Arduino Mega 2560とTFT LCDタッチスクリーン搭載カスタムアラームシステム
  9. Arduinoで作る全自動植物水やりシステム - 湿度センサーとRTCで最適制御
  10. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  11. AI搭載IoTシステムで森林火災を超早期検知・樹木健康を監視