火災警報システムは、商業ビルや工場で非常に一般的です。これらのデバイスには通常、建物内の炎、ガス、または火災を常に監視し、これらのいずれかを検出するとアラームをトリガーするセンサーのクラスターが含まれています。火災を検出する最も簡単な方法の1つは、IR火炎センサーを使用することです。これらのセンサーには、IR光に敏感なIRフォトダイオードがあります。さて、火災が発生した場合、火災は熱を発生するだけでなく、IR光線も放出します。はい、すべての燃える炎はある程度のIR光を放出します。この光は人間の目には見えませんが、炎センサーはそれを検出できます。 Arduinoのようなマイクロシステムに火災が検出されたことを警告します。
この記事では、火炎センサーをArduinoと接続し、Arduinoと火炎センサーを使用して火災警報システムを構築するためのすべての手順を学習します。火炎センサーモジュールには、光を検出するフォトダイオードと感度を制御するオペアンプがあります。火災を検出し、検出時にHIGH信号を提供するために使用されます。Arduinoは信号を読み取り、ブザーとLEDをオンにしてアラートを出します。ここで使用されている火炎センサーは、IRベースの火炎センサーです。また、同じコンセプトを使用して消防ロボットの火災を検出しました。興味がある場合は、確認することもできます。
火炎センサー
火炎検出器が火炎又は火災の存在を検出して応答するように設計されたセンサです。検出された炎への応答は設置によって異なりますが、アラームの鳴動、燃料ライン(プロパンや天然ガスラインなど)の非アクティブ化、および消火システムのアクティブ化が含まれる場合があります。このプロジェクトで使用されているIR火炎センサーを以下に示します。これらのセンサーは、火災センサーモジュールまたは火炎検出器センサーとも呼ばれます。
火炎検出方法にはさまざまな種類があります。それらのいくつかは次のとおりです。紫外線検出器、近赤外アレイ検出器、赤外線(IR)検出器、赤外線サーマルカメラ、UV / IR検出器など。
火が燃えると、少量の赤外線が放出されます。この光は、センサーモジュールのフォトダイオード(IRレシーバー)によって受信されます。次に、オペアンプを使用してIRレシーバーの両端の電圧の変化をチェックします。これにより、火災が検出された場合、出力ピン(DO)は0V(LOW)を示し、火災がない場合、出力ピンは次のようになります。 5V(HIGH)。
このプロジェクトでは、IRベースの火炎センサーを使用しています。これは、高速で高感度のNPNシリコンフォトトランジスタであるYG1006センサーに基づいています。700nmから1000nmの波長の赤外光を検出でき、検出角度は約60°です。火炎センサーモジュールは、フォトダイオード(IRレシーバー)、抵抗器、コンデンサー、ポテンショメーター、および集積回路内のLM393コンパレーターで構成されています。感度は、搭載されているポテンショメータを変えることで調整できます。動作電圧は3.3v〜5v DCで、デジタル出力を備えています。出力のロジックハイは、炎または火の存在を示します。出力が論理的に低い場合は、炎や火がないことを示します。
以下は、火炎センサーモジュールのピンの説明です。
ピン |
説明 |
Vcc |
3.3 –5V電源 |
GND |
接地 |
Dout |
デジタル出力 |
火炎センサーの用途
- 水素ステーション
- バーナーの燃焼モニター
- 石油とガスのパイプライン
- 自動車製造施設
- 原子力施設
- 航空機格納庫
- タービンエンクロージャ
必要なコンポーネント
- Arduino Uno(任意のArduinoボードを使用できます)
- 火炎センサーモジュール
- 導いた
- ブザー
- 抵抗器
- ジャンパー線
回路図
下の画像はArduinoの火炎センサーの回路図で、火炎センサーモジュールをArduinoに接続する方法を示しています。
Arduinoでの火炎センサーの動作
Arduino Unoは、ATmega328pマイクロコントローラーをベースにしたオープンソースのマイクロコントローラーボードです。14個のデジタルピン(うち6個のピンはPWM出力として使用可能)、6個のアナログ入力、オンボード電圧レギュレーターなどがあります。ArduinoUnoには、32KBのフラッシュメモリ、2KBのSRAM、1KBのEEPROMがあります。16MHzのクロック周波数で動作します。Arduino Unoは、他のデバイスと通信するためのシリアル、I2C、SPI通信をサポートしています。以下の表は、ArduinoUnoの技術仕様を示しています。
マイクロコントローラー |
ATmega328p |
動作電圧 |
5V |
入力電圧 |
7〜12V(推奨) |
デジタルI / Oピン |
14 |
アナログピン |
6 |
フラッシュメモリー |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
クロック速度 |
16MHz |
火炎センサは、火災の存在を検出する火炎によって放出された赤外線(IR)波長に基づいて、あるいは炎。炎が検出された場合はロジック1を出力として提供し、それ以外の場合はロジック0を出力として提供します。Arduino Unoは、センサーの出力ピンのロジックレベルをチェックし、ブザーとLEDのアクティブ化、アラートメッセージの送信などの追加タスクを実行します。
また、他の火災警報プロジェクトも確認してください。
- サーミスタを使用した火災警報器
- AVRマイクロコントローラーを使用した火災警報システム
- Arduinoベースの消防ロボット
コードの説明
このプロジェクトの完全なArduinoコードは、この記事の最後にあります。コードは意味のある小さなチャンクに分割され、以下で説明されています。
コードのこの部分では、Arduinoに接続されている火炎センサー、LED、ブザーのピンを定義します。火炎センサーはArduinoのデジタルピン4に接続されています。ブザーはArduinoのデジタルピン8に接続されています。LEDはArduinoのデジタルピン7に接続されています。
変数「 flame_detected 」は、火炎センサーから読み取られたデジタル値を保存するために使用されます。この値に基づいて、炎の存在を検出します。
intブザー= 8; int LED = 7; int Flame_sensor = 4; int Flame_detected;
コードのこの部分では、Arduinoのデジタルピンのステータスを設定して構成します
火炎検出回路の状態を表示するためのPCとのシリアル通信のボーレート。
void setup() { Serial.begin(9600); pinMode(ブザー、出力); pinMode(LED、OUTPUT); pinMode(flame_sensor、INPUT); }
このコード行は、火炎センサーからのデジタル出力を読み取り、それを変数「 flame_detected 」に格納します。
Flame_detected = digitalRead(flame_sensor);
「 flame_detected 」に保存されている値に基づいて、ブザーとLEDをオンにする必要があります。コードのこの部分では、「 flame_detected 」に格納されている値を0または1と比較します。
1に等しい場合は、炎が検出されたことを示します。ブザーとLEDをオンにしてから、ArduinoIDEのシリアルモニターにアラートメッセージを表示する必要があります。
0に等しい場合は、炎が検出されていないことを示しているため、LEDとブザーをオフにする必要があります。このプロセスは、火または炎の存在を識別するために毎秒繰り返されます。
if(flame_detected == 1) { Serial.println( "炎が検出されました…!すぐにアクションを実行してください。"); digitalWrite(ブザー、HIGH); digitalWrite(LED、HIGH); delay(200); digitalWrite(LED、LOW); delay(200); } else { Serial.println( "炎が検出されませんでした。涼しくしてください"); digitalWrite(ブザー、LOW); digitalWrite(LED、LOW); } delay(1000);
このコンセプトに基づいて、自動的に火災を検知し、水を汲み出して消火する消防ロボットを構築しました。これで、Arduinoと火炎センサーを使用して火災検出を行う方法がわかりました。質問がある場合は、下のコメントセクションに残してください。
以下の完全なコードとデモビデオを確認してください。