Arduino炎センサー火災警報器プロジェクト

Arduino炎センサー火災警報器プロジェクト

Arduino炎センサー火災警報器プロジェクト このプロジェクトでは、炎センサー・モジュール(炎の存在を検知する)、アクティブ・ブザー・モジュール(音を鳴らす)、2色LEDモジュール(視覚的に表示する)とインターフェイスしたArduinoを使って、基本的な火災警報システムを構築する。このプロジェクトの仕組みとしては、炎センサーが近くの炎の存在を検知すると、ブザーを作動させ、炎が検知されなくなるまでビープ音とLEDの点滅を繰り返す。炎センサーの仕組みについては、紫外線(UV)、赤外線(IR)、紫外線/赤外線(UV/IR)、マルチスペクトル赤外線(MSIR)、視覚炎画像炎センサーなど、炎センサーの種類によってさまざまな仕組みがある。 

今回使用した炎センサー DIY PCBAボード Arduino対応炎センサで最も一般的なIRタイプ(HW-491)です。基本的にIRセンサーは、炎から放射される赤外線を検出することで動作し、内蔵のフォトダイオードが特定の波長範囲を検出すると、Arduinoボードにデジタル信号(1)を送信します。Arduinoマイコンが炎センサーからのHIGH信号を受信すると、このプロジェクトは、150msごとにビープ音を鳴らすアクティブ・ブザーと、炎の存在を示すために150msごとに赤色に点滅する2色LEDモジュールを作動させるようにプログラムされている。炎がない場合は、ブザーは鳴らず、LEDは緑色に点灯します。注意すべき重要な点は、炎センサーが炎の存在を正しく検知していない場合、モジュールの内蔵ポテンショメータを回して感度を調整する必要があることです。

このプロジェクトは、火災警報回路の一部としての炎センサーモジュールの非常に実用的なアプリケーションを反映している。 & 産業用PCBA が使用される。多くの場合、市販の火災報知器は、入力デバイスとして炎センサーを持ち、それが出力デバイス(スピーカー、LED、炎抑制システムなど)に接続され、トリガーされると消費者に炎の存在を知らせるという点で、同様の技術に依存しているかもしれない。したがって、このようなプロジェクトをPCBに統合し、住宅内のいくつかの表面に取り付けることができるポータブル火災警報器として小さな筐体に入れることは、間違いなく有用で実行可能なアイデアである。ブレッドボード上のこの回路のコンパクトさは、表面実装部品(SMT)を使用してこのプロジェクト用にカスタムPCBを設計する際にさらに強化され、この回路はスタンドアロン製品として形にすることができる。現在、多くの市販製品は、表面実装部品(SMT)を利用して組み立てられている(PCBA)。 SMTアセンブリ これらは、PCBAボード上のフォーム・ファクターをはるかに小さくし、その結果、電気密度を高めることができるからだ。以上が、このプロジェクトの構築に必要な部品である:

  • Arduino Nano(他のArduino互換ボードでも可)
  • USBケーブル(Arduinoボード対応)
  • ブレッドボード
  • オス-オス・ジャンパー・ワイヤー (8)
  • HW-491 フレーム・センサー・モジュール
  • HW-512 アクティブ・ブザー・モジュール
  • HW-480 赤/緑2色LEDモジュール(コモンカソード)
  • 220Ω抵抗 (2)

炎センサー火災警報器プロジェクト回路配線図

Arduinoボードによって、ボードを接続するためのブレッドボードが必要な場合と不要な場合があります。この例では、Arduino Nanoを使用しているためブレッドボードが必要ですが、例えばArduino Unoを使用している場合は、ブレッドボード上のコンポーネントからボードのピンに直接ジャンパーワイヤーを差し込むことができます。 

この特定のプロジェクトに必要なコンポーネントは、モジュールがプロジェクトの大部分を占めるため、他のいくつかのプロジェクトと非常によく似ています。炎センサーモジュールのピン配置についてですが、ほとんどのモデルは、デジタル出力(DO)とアナログ出力(AO)ピンを備えた4ピン構成になっています。このDIYプロジェクトでは、デジタル出力(DO)ピンは、センサーの主な目的が炎を検出したかどうかに応じてHIGHまたはLOW信号を送り返すことであるため、使用されるだけです。センサーが3ピン構成の場合は、標準の出力/信号ピンを使用してください。使用するLEDモジュールに関して、このモジュールからの2つの出力に220Ωの抵抗が2つ直列に接続されているのは、+5ボルトの電源電圧を印加したときにLEDが焼き切れるのを防ぐためです。LEDモジュールの代わりに通常のLEDを使用する場合も、LEDをショートから保護するために抵抗が必要です。配線の回路図も以下に掲載する。

  • HW-491炎センサーモジュール:デジタル出力(DO)/信号ピンをArduinoボードのD3に接続し、プラス(+)ピンを+5Vに、GND(G)ピンをGNDに接続する。
  • HW-480 赤/緑2色LEDモジュール:赤色LED信号の出力ピン(R)に直列に220Ωの抵抗を1つブレッドボードに挿入し、緑色LED信号の出力ピン(G)に直列に220Ωの抵抗をもう1つ挿入する。赤色出力ピン(R)をD5に、緑色出力ピン(G)をD6に接続します。LEDモジュールのマイナス(-)ピンをArduinoのGNDに接続します。
  • HW-512アクティブ・ブザー・モジュール:プラス(+)ピンをD4に、マイナス(-)ピンをArduinoのGNDに接続します。

炎センサー火災警報回路コードプログラミング

コード詳細

イント センサーピン 3;

イント ブザーピン 4;

イント redPin 5;

イント グリーンピン 6;

 

イント 炎

 

ボイド セットアップ()

{

 シリアル.始める(9600);

 ピンモード(sensorPin、INPUT);

 ピンモード(ブザーピン、OUTPUT);

 ピンモード(赤ピン、OUTPUT);

 ピンモード(グリーンピン、OUTPUT);

}

 

 

ボイド ループ()

{

 炎 デジタルリード(センサーピン);

 もし (1)

 {

   シリアル.プリントルン(「炎を検知);

   デジタルライト(赤ピン、HIGH);

   デジタルライト(グリーンピン、LOW);

   デジタルライト(ブザーピン、HIGH);

   遅延(150);

   デジタルライト(赤ピン、LOW);

   デジタルライト(ブザーピン、LOW);

   遅延(150);

 }

 その他

 {

   シリアル.プリントルン(「炎は検出されなかった);

   デジタルライト(赤ピン、LOW);

   デジタルライト(グリーンピン、HIGH);

   デジタルライト(ブザーピン、LOW);

 }

 遅延(500);

}

コードの説明

  • このコードには、以前のプロジェクトで取り上げられた多くのコンセプトが含まれており、特にif-else文、digitalWrite()関数(様々なモジュールの状態を定義するため)、シリアル・モニター・コマンドの使用が特徴的である。
  • まずはじめに、コードの最初のブロックでは、各モジュールがArduinoボード上で接続されるデジタルピンを定義している。4つのデジタルピンが使用されているので、それぞれに後で使用する特定の名前が付けられている(例えば、炎センサーが接続されているD3ピンを表すsensorPin)。追加の整数(flame)が定義され、これは特定の値には設定されないが、炎センサーから受信される信号(0または1)のプレースホルダーとして機能する。例えば、炎センサーが炎の存在を検出した場合、センサーは1またはHIGHの信号をArduinoに送り返し、この情報はflame変数に格納されます。
  • ボイド・セットアップ・セクションでは、シリアル通信のボーレートを9600に設定し、Arduino IDEのシリアル・モニターに出力されるシリアル・データをデバッグ用にセットアップする。次に、炎センサーをデジタル入力デバイスとして設定する(炎の有無でデジタル信号(1または0)をArduinoに送信する)。次に、アクティブ・ブザー・モジュールと2色LEDモジュールのピンをデジタル出力デバイスとして設定する(Arduinoボードがこれらのモジュールにデジタル信号(1または0)を送信する)。
  • voidループ部分については、先に定義した炎の整数を、炎センサーから受信しているデジタル入力値に代入しています。これは、炎センサであるsensorPinの入力信号に炎変数を代入するdigitalRead()関数を使用することで行われる。 
  • ここで、if-else文を使用し、if文が真になるたびに出力モジュール(2色LEDとブザーモジュール)を特定の状態に設定する。この場合、炎変数が1と等しい場合(炎センサーが炎を検知した場合)、LEDは赤色に切り替わり、ブザーは点灯する(音が鳴る)。炎を感知するとブザーが鳴り、LEDが赤く点滅し続けるようにするため、delay()関数でLEDとブザーのデジタル状態が交互に切り替わる間に150msのインターバルを入れている。また、デバッグ目的(炎センサーの校正など)のために、短いメッセージがシリアルモニターに出力される。
  • しかし、これはif-else文なので、if文が真にならない場合(炎センサーが炎を感知しない場合)には、LEDは緑色に変わり、ブザーは鳴らなくなる。この場合も、シリアル・モニターにクイック・メッセージが送信される。最後に、ループの最後に500msの短い遅延があります。

次のステップ

今は FSテクノロジー このプロジェクトが完成すれば、ホームオートメーションシステム、ポータブル火災報知器、消火ユニットなど、より大規模なプロジェクトに簡単に統合し、その基礎を形成することができる。コードで扱った主要な原理は、信号を処理/中継するマイクロコントローラーとしてArduinoを使用した、デジタル入力/出力デバイス間の通信である。この場合、炎の有無でArduinoにデジタル信号を送るのは炎センサーで、その情報をどう処理するか処理した後、Arduinoは出力デバイス(2色LEDモジュールとアクティブ・ブザー・モジュール)に独自のデジタル信号を送る。このプロジェクトの冒頭で述べたように、より永続的なアプリケーションのためには、このプロジェクトをPCBに移行することを検討するとよいでしょう。しかし スルーホールPCBアセンブリ がうまく機能すれば、SMT PCBAは間違いなく完成品のコストと全体的なサイズを削減できる。

DIYエレクトロニクスプロジェクトブログ