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

森林火災監視および検出システム(SMSアラート付き)

コンポーネントと消耗品

>
Itead Gboard Pro 800 SIM800 GSM / GPRSモジュール3.3vATmega2560メインボードArduinoスターターの場合
× 1
Arduino UNO
× 1
DHT11温度および湿度センサー(3ピン)
× 2
ジャンパー線(汎用)
× 1

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

>
Arduino IDE

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

森林火災の検出プロセスは、森林内の樹木に植えられたノードのいずれかで開始されます。フォレストには、互いに適切な距離に配置されたノードのネットワークがあり、ノードには、デバイス(この場合はRFモジュール)を介して、Arduinoを使用して通信する機能があります。ノード(ソースノード)の近くの大気パラメータ(温度上昇、煙による空気の汚染など)にしきい値を超える変化が見つかった場合、情報はメイン/に到達するまで最も近い中間ノードに渡されます。ヘッド端子。メイン/ヘッド端末はGSMモデムを使用して、情報を携帯電話(森林火災監視センター)に渡します。

物理モデルの送信機部分

森林火災検知モジュールは、3つの異なる段階で機能します。最初の段階は、温度や煙などの外部環境パラメータを読み取ることで構成されます。最初の段階は、アナログデータを検知してデジタルデータに変換するために使用されるいくつかのセンサーの助けを借りて行われます。センサーは、温度、湿度、空気の質などのパラメーターを読み取り、この情報を次に近いノードに送信します。このプロセスは、情報がプロセス全体の第2段階であるfinalnodeまたはメインターミナルに到達するまで続きます。第3段階は、森林火災監視ユニットへの情報の送信で構成されます。

各ノードには、温度および湿度センサー、煙センサー、およびマイクロコントローラーユニットがあります。 Arduinoはマイクロコントローラーデバイスとして使用されています。センサーはArduinoと対話し、比較プロセスのために情報を保存します。これらの各パラメーターには、事前定義されたしきい値があります。マイクロプロセッサは、一定の時間間隔でセンサー値をしきい値と比較します。比較に基づいて、センサーの入力値がしきい値を超えた場合、ノードは情報を次の近くのノードに送信し、次に、ノードは情報を他の近くのノードに送信します。このようにして、メッセージフローはこのモデルで規制されます。

装置の物理モデル

<図>

物理モデルの送信機部分

<図>

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

<図>

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

<図>

コード

  • 受信機側と送信機側のArduinoモジュールコード
受信機と送信機側のArduinoモジュールコード Python
このコードは、温度と湿度を監視するために受信側のArduinoモジュールを構成します。値がしきい値を超えると、SMSがベースステーションに送信され、同じことを警告します。送信機側ノードで値の上昇がある場合、これは送信機側ArduinoUnoのRF送信機モジュールを介して受信側ArduinoUnoのRF受信機モジュールに通信されます。以下のコードは、「受信機側arduino」用と「送信機側arduino」用の2つの部分で構成されていることに注意してください。
 ########(PART-1)######受信機側Arduinoコード########################## // RadioHead振幅偏移変調ライブラリを含める#include  #include  / /依存するSPIライブラリを含める#include  #include  SoftwareSerial mySerial(4、3); // Constants#define DHTPIN 2 //接続しているピン#defineDHTTYPE DHT11 // DHT11int smokeA0 =A5; //しきい値intsensorThres =400; //変数を定義しますDHTdht(DHTPIN、DHTTYPE); //通常の16mhzArduinoのDHTセンサーを初期化します// Variablesfloathum; //湿度値を保存しますfloattemp; //温度値を格納します//出力文字列を定義しますStringstr_humid; String str_temp; String str_smk; String str_out; //振幅偏移変調オブジェクトを作成RH_ASKrf_driver; void setup(){pinMode(smokeA0、INPUT); dht.begin(); // ASKオブジェクトを初期化します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);文字列smk; //しきい値に達しているかどうかを確認しますif(analogSensor> SensorThres){Serial.print( "Smoke at Reciever"); Serial.print( '\ n'); smk ="煙"; } else {Serial.print( "Clean at Reciever"); Serial.print( '\ n'); smk ="クリーン"; } //バッファを予想されるメッセージのサイズに設定しますuint8_tbuf [20]; uint8_t buflen =sizeof(buf); //受信したパケットが正しいサイズかどうかを確認しますif(rf_driver.recv(buf、&buflen)){str_out =String((char *)buf); for(int i =0; i  =60 &&temp>
 =25){Serial.print( "受信者で火災が検出されました"); mySerial.println( "AT + CMGF =1"); // GSMモジュールをテキストモードに設定delay(1000); // 1000ミリ秒または1秒の遅延mySerial.println( "AT + CMGS =\" + 918744984131 \ "\ r"); // xを携帯電話番号delay(1000);に置き換えます。 mySerial.println( "FIRE ALERT !!"); Serial.println( '\ n'); mySerial.println( "受信者ノードでの起動"); Serial.println( '\ n'); mySerial.println( "Temperature:" + String(temp)); Serial.print( '\ n'); mySerial.println( "湿度:" + String(hum)); Serial.print( '\ n'); mySerial.println( "Air Quality:" + smk); delay(100); mySerial.println((char)26); // CTRL + ZのASCIIコードdelay(1000); } if(str_humid.toInt()> =60 &&str_temp.toInt()> =25){Serial.print( "送信機で火災が検出されました"); mySerial.println( "AT + CMGF =1"); // GSMモジュールをテキストモードに設定delay(1000); mySerial.println( "AT + CMGS =\" + 918744984131 \ "\ r"); // xを携帯電話番号delay(1000);に置き換えます。 mySerial.println( "FIRE ALERT !!"); Serial.println( '\ n'); mySerial.println( "送信機ノードでの起動"); Serial.println( '\ n'); mySerial.println( "Temperature:" + str_temp); Serial.print( '\ n'); mySerial.println( "湿度:" + str_humid); Serial.print( '\ n'); mySerial.println( "Air Quality:" + String(str_smk)); delay(100); mySerial.println((char)26); // CTRL + ZのASCIIコードdelay(1000); }} #######(PART-2)############送信機側Arduinoコード#################### #################################################### ################### include  #include  #include  // Constants#define DHTPIN 2 //どのピン接続している#define DHTTYPE DHT11 // DHT11DHT dht(DHTPIN、DHTTYPE); //通常の16MHzのDHTセンサーを初期化しますArduinointsmokeA0 =A5; //しきい値intsensorThres =400; //変数を定義しますfloathum; //湿度値をパーセントフロート温度で保存します; //温度値をCelciusfloatsmkに格納します; //出力文字列を定義しますStringstr_humid; String str_temp; String str_smk; String str_out; //振幅偏移変調ObjectRH_ASKrf_driverを作成します; //通常の16mhzArduinoのDHTセンサーを初期化しますvoidsetup(){dht.begin(); pinMode(smokeA0、INPUT); // ASKオブジェクトを初期化しますrf_driver.init(); } void loop(){delay(2000); // DHT-22センサーが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"; } //出力文字を作成しますconstchar * msg =str_out.c_str(); rf_driver.send((uint8_t *)msg、strlen(msg)); rf_driver.waitPacketSent(); } 

回路図


製造プロセス

  1. ラズベリーパイで温度を監視する
  2. Samsung SAMIIO、Arduino UNO、RaspberryPiで数分で火災探知機を作る
  3. 自動制御を備えた住宅/ホテル監視システム
  4. PythonでArduinoとRFIDを使用した出席システム
  5. ArduinoUnoを使用した人間検出ロボティクスシステム
  6. K30センサーによるCO2モニタリング
  7. Arduinoでコインアクセプターを制御する
  8. Arduino警報システム:SERENA
  9. Arduinoを使用した自動植物散水システム
  10. LEDを制御するBluetoothを搭載したArduino!
  11. デュアルパーパスIoT森林管理システム