シンプルな雨検知システムは、Arduinoを雨センサーとインターフェースすることで簡単に構築できます。センサーはそれに降る雨を検出し、Arduinoボードはそれを感知して必要なアクションを実行できます。このようなシステムは、農業や自動車の分野など、さまざまな分野で使用できます。降雨検知を使用して、灌漑プロセスを自動的に調整できます。また、連続降雨データ農民がこのスマートシステムを使用して、絶対に必要な場合にのみ自動的に作物に水をやるのを助けることができます。同様に、自動車部門では、雨検知システムを使用してフロントガラスのワイパーを全自動にすることができます。また、ホームオートメーションシステムは、雨検知を使用して、窓を自動的に閉じ、室温を調整することもできます。このチュートリアルでは、ブザー付きのArduinoを使用して基本的な雨センサーを構築します。次に、この設定を使用して、その上に必要なものを構築できます。また、雨センサーモジュールは、用途に応じて雨滴センサー、雨量計センサー、雨水センサーとも呼ばれますが、これらはすべてこのプロジェクトで使用されているものと同じセンサーを指し、すべて同じ原理で動作します。
また、555タイマーのみを使用して、簡単なレインアラームと自動カーワイパーを作成しました。Arduinoを使用したくない場合は、それも確認することをお勧めします。そうは言っても、このプロジェクトに戻って、Arduino雨量計の構築を始めましょう。
必要な材料
- Arduino UNO
- 雨センサー
- ブザー
- ブレッドボード
- 接続線
雨センサー
雨滴モジュールは2枚のボード、すなわち雨ボードとコントロールボードで構成されています。
レインボードモジュールは、乾燥条件下でそれらは電源電圧に対して高い耐性を提供するように設計された2つの銅トラックで構成され、このモジュールのこの出力電圧は5Vであろう。このモジュールの抵抗は、ボードの湿り具合の増加に応じて徐々に減少します。以下のように抵抗が減少し、その出力電圧も低下するモジュール上の湿りに対して。レイン基板モジュールは、下に示すように、制御基板に接続するために使用される二つのピンから構成されています。
コントロールボードモジュールは感度を制御し、アナログ出力をデジタル出力に変換します。アナログ値がコントロールボードのしきい値を下回っている場合、出力はデジタルローになり、アナログ値がしきい値よりも高い場合、出力はデジタルハイになります。この比較と変換には、LM393オペアンプコンパレータが使用されます。オペアンプコンパレータは、2つの異なる電圧値を比較するために使用できる興味深い回路です。この回路では、スマート電子キャンドル、レーザーセキュリティアラーム、ラインフォロワーロボットなどの多くのプロジェクトですでに使用されています。
レイン制御モジュール下に示されている雨基板モジュールを接続するアルドゥイーノ即ちVCC、GND、D0、A0と2本のピンを接続する4本のピンから構成されています。要約すると、レインボードモジュールは雨水を検出し、コントロールボードモジュールは感度を制御し、アナログ値を比較してデジタル値に変換するために使用されます。
雨センサーの働き
作業用レインセンサモジュールは、理解するのは簡単です。晴れた日には、レインボードモジュールが乾燥しているため、供給電圧に対して高い抵抗を提供します。この電圧は、レインボードモジュールの出力ピンに5Vとして表示されます。 Arduinoのアナログピンで読み取った場合、この5Vは1023として読み取られます。雨の間、雨水はレインボードの湿り気を増加させ、その結果、供給に提供される抵抗が減少します。抵抗が徐々に減少すると、出力電圧が低下し始めます。
レインボードが完全に濡れていて、それによって提供される抵抗が最小の場合、出力電圧は可能な限り低くなります(約0)。Arduinoのアナログピンで読み取った場合、この0Vは0値として読み取られます。レインボードモジュールが部分的に濡れている場合、このレインボードモジュールの出力はそれが提供する抵抗に比例します。レインボードモジュールによって提供される抵抗が出力が3Vになるようなものである場合、読み取られるアナログ値は613になります。ADCを見つける式は、ADC =(アナログ電圧値X 1023)/ 5で与えられます。この式を使用することにより、任意のアナログ電圧をtArduinoアナログ読み取り値に変換できます。
回路図
以下の回路図は、Arduinoを使用したレインドロップセンサーの回路接続を示しています。設計はプロテウスを使用して行われ、物理モジュールは回路図に示されているモジュールと同様です。
回路図に示されている雨量計モジュールは、制御盤に接続されています。制御盤のVCCピンは5V電源に接続されています。グランドピンはグランドに接続されています。必要に応じて、D0ピンをArduinoの任意のデジタルピンに接続し、そのピンをプログラムで出力ピンとして宣言する必要があります。 D0ピンで直面する問題は、出力電圧の正確な値を取得できないことです。出力がスレッショルド電圧を超えると、制御モジュールは出力の変化を感知できます。レインボードモジュールの出力電圧に大きな変化があったとしても、ブザーを操作する必要があります。これらの理由により、A0ピンはArduinoのアナログピンに接続されており、出力の変化を簡単に監視できます。ユーザーへの信号として使用されるブザー、Arduinoの任意のデジタルピンに接続できます。ブザーが5V以上を必要とする場合は、リレー回路またはトランジスタを接続してから、負荷を接続してみてください。
コードの説明
雨センサーのArduinoコードは、ArduinoIDEを使用して記述されています。このプロジェクトの完全なコードは、ページの最後に記載されています。
#define降雨A0#defineブザー5int値; int set = 10;
ピンA0を降雨、ピン5をブザーとして定義し、変数「value」と「set」を整数として宣言し、その変数設定値を10に設定します。この値は、必要な操作レベルに応じて変更できます。雨が少なくてもブザーを鳴らしたい場合は、最小値に設定してください。
void setup(){Serial.begin(9600); pinMode(ブザー、出力); pinMode(rainfall、INPUT); }
シリアル通信を初期化し、ブザーを設定します。降雨ピンを出力ピンと入力ピンとして設定します。
void loop(){value = analogRead(rainfall); Serial.println(value); 値= map(value、0,1023,225,0);
関数analogReadは、雨センサーの値を読み取ります。関数マップは、出力ピンからの雨センサーの値をマップし、0から225の範囲の値を変数に割り当てます。
if(value> = set){Serial.println( "raindetected"); digitalWrite(buzzer、HIGH);
センサーの読み取り値が設定値よりも大きい場合、プログラムはループに入り、シリアルモニターにメッセージを出力し、ブザーをオンにします。
else {digitalWrite(buzzer、LOW);
プログラムは、値が設定値よりも小さい場合にのみelse関数に入ります。この機能は、設定値がセンサーの値よりも高い場合にブザーをオフにし、雨が降っていないことを示します。
Arduinoベースの雨検知システムの動作
このシステムは、雨が降ると雨水がトリガーとして機能し、ブザーがオンになります。で雨ドロップセンサーArduinoのコード、我々はピン5、およびA0は、ブザーや降雨であることを定義しました。これを行うことで、関数の定義された部分のピンを変更でき、コードの残りの部分は変更されません。これにより、プログラマーはピンを簡単に編集できるようになります。
voidループでは、 analogRead コマンドがセンサーから値を読み取ります。次の行で、コマンド Serial.println(value)は 、シリアルモニターに値を出力します。これは、デバッグ時に役立ちます。 map関数は、0〜225の範囲で入力値をマップします。 マップ の関数形式は マップ です(値、最小値、最大値、最小値にマップされる値、最大値にマップされる値)。ブザーは、設定値とセンサーの出力に応じてオンまたはオフに切り替わります。この値は、if関数で設定値と比較されます。設定値よりも大きい場合はブザーが鳴ります。設定値よりも小さい場合はブザーが鳴りません。
完全な作業は、以下にリンクされているビデオで見つけることができます。これは多くのアプリケーションの1つであり、同じ原理がフロントガラスのワイパー、その他のホームオートメーション、農業セクターなどにも見られます。プロジェクトを理解し、何か役立つものを構築することを楽しんでいただけたでしょうか。ご不明な点がございましたら、以下のコメントセクションを使用するか、その他の技術的な質問についてはフォーラムをご利用ください。