Arduinoを使用した早期洪水検知システム–ソースコード
初期の洪水 監視 システム–回路とプロジェクトのソースコード
開発途上国と非開発途上国の両方で、洪水は人と動物の生命と財産の損失を引き起こす大規模な自然災害です。海の地震、ハリケーン、降雨、その他の自然災害による洪水は、毎年世界中の多くの地域で発生しています。
降雨時には、さまざまな地理的地域の管理されていない排水システムが洪水につながり、多くの人命が失われます。洪水について早期に警戒できるシステムがあれば、人々の命を救うことができます。技術を駆使して水位の上昇を検知し、事前に警戒して多くの人を避難させるシステム。
このプロジェクトでは、池、ダム、貯水池の水位を検出し、ブザーを使用してアラートを送信するために使用できるプロトタイプを提供します。これは、Arduino UNO、超音波センサー、ブザー、LCD、およびいくつかの接続ワイヤーを使用する小規模なプロトタイプです。
関連プロジェクト:
- 雨警報回路–雪、水、雨の検出器プロジェクト
洪水を早期に検出するための回路図
必要なコンポーネント
- Arduino UNO
- HC-SR04超音波センサー
- ブザー
- 16×2LCDディスプレイ
- ジャンパーまたは接続ワイヤー
関連プロジェクト:
- Arduinoと超音波センサーを使用した距離測定
- Arduino UNOを使用した可変電源–回路とコード
では、この基本的な回路で使用されているコンポーネントについて1つずつ学習しましょう。
Arduino UNO
Arduinoは、エレクトロニクスプロジェクトの開発に使用されるオープンソースプラットフォームです。いつでも簡単にプログラム、消去、再プログラムできます。 Arduino UNO、Arduino Nano、Arduino Mega、Arduino lilypadなど、用途に応じて仕様が異なる多くのArduinoボードが市場に出回っています。
このプロジェクトでは、ArduinoUNOを使用して家電製品を自動的に制御します。 16MHzのクロック速度で動作するATmega328マイクロコントローラICが搭載されています。これは、USART、I2C、およびSPI通信プロトコルで動作できる強力な機能です。
このボードは通常、マイクロUSBケーブルを使用したソフトウェアArduinoIDEを使用してプログラムされます。 ATmega328には、事前にプログラムされたオンボードブートローダーが付属しており、外部ハードウェアを使用せずにコードを簡単にアップロードできます。エレクトロニクスプロジェクトや製品の製造に幅広い用途があります。 CおよびC++言語は、習得と使用が非常に簡単なボードのプログラミングに使用されます。
関連プロジェクト:
- 水位インジケーターの回路図-2つの簡単なプロジェクト
- SRF04を使用した全自動水位コントローラー
Arduino IDEを使用すると、プログラミングがはるかに簡単になります。コードを2つの部分、つまりvoid setup()とvoid loop()に分けます。関数voidsetup()は1回だけ実行され、主に何らかのプロセスを開始するために使用されますが、void loop()は、継続的に実行する必要があるコードの一部を構成します。
このモデルは、6つのアナログ入力ピンと14のデジタルGPIOピンで構成され、入力出力として使用できます。そのうちの6つは、pinMode()、digitalWrite()、を使用してPWM出力とアナログを提供します。 digitalRead()およびanalogRead()関数。 6つのアナログ入力チャネルチャネルはピンA0からA5であり、10ビットの分解能を提供します。
ボードは、5ボルトで動作するUSBケーブルを使用するか、7〜20ボルトで動作するDCジャックから電力を供給できます。低電力デバイスを操作するために3.3ボルトを生成するオンボード電圧レギュレータがあります。
ATmega328はUSART、SPI、およびI2C通信プロトコルで動作するため、USART通信、SDA(A4)、およびSCL(A5)用に0(Rx)および1(Tx)ピンがあります。 SPI通信プロトコル用のI2CおよびSS(10)、MOSI(11)、MISO(12)、およびSCK(13)ピン用のピン。
関連プロジェクト:
- Arduinoによるオブジェクト検出機能付き自動ドアベル
- Arduinoを使用した自動常夜灯
HC-SR04超音波センサー
HC-SR04は、人との接触がなくても多くの場所で距離を測定するのに役立つ超音波センサーです。レーダーやソナーと同じ原理で動作し、非常に正確な方法で距離を測定する効率的な方法を提供します。
理論的には最大450 cmの距離を測定できますが、実際には2cmから80cmまでの距離を3mmの精度で測定できます。 5ボルト、15mA未満の電流、40ヘルツの周波数で動作します。
HC-SR04には、1つの送信機と1つの受信機がインストールされています。距離は、私たち全員が学校で勉強した基本的な速度、距離、時間の式で計算されます。つまり、
距離=速度x時間
HC-SR04センサーの送信機は、空中で超音波を送信します。この波がセンサーの範囲内の物体によって反射された場合、空気中の反射波はセンサーの受信機によって受信されます。したがって、上記の式を使用して距離を計算するには、速度と時間を知る必要があります。
超音波の普遍的な速度は約330 m/sであることがわかっています。時間は、マイクロコントローラーの回路構築によって測定されます。超音波が受信機に戻るまでにかかる時間の間、エコーピンはハイになります。このようにして、物体とHC-SR04超音波センサーの間の距離を計算できます。
関連プロジェクト:
- 自動鉄道ゲート制御システム–回路とソースコード
- 車速検出回路–動作およびソースコード
HC-SR04とArduinoUNOのインターフェース
HC-SR04超音波センサーはArduino、PIC、Raspberry Piなどのすべてのマイクロコントローラーで使用できます。このプロジェクトでは、HC-SR04超音波センサーをArduinoUNOとインターフェースします。 。 HC-SR04モジュールには、VCC、GND、Trig、Echoの4つのピンがあります。
HC-SR04モジュールに5ボルト、GNDでArduinoUNOに電力を供給します。トリガーピンとエコーピンは入力ピンと出力ピンであるため、ArduinoUNOの入力ピンと出力ピンに接続する必要があります。したがって、距離を測定するには、まずトリガーピンを「高」に10マイクロ秒設定してから、「低」に設定します。
これにより、周波数40 kHzの超音波が生成され、オブジェクトに到達してモジュールの受信機に反射します。波が何かの物体を検出すると、すぐにモジュールのレシーバー部分に戻り、エコーピンはセンサーに戻る時間の間「ハイ」になります。
この期間に330 m / sの波の速度を掛けると、HC-SR04モジュールとオブジェクトの間の距離がわかります。
関連記事:
- スマートホームオートメーションシステム–回路とソースコード
- ArduinoPWMプログラミングとArduinoでのその機能
16×2LCDディスプレイ
16 X2LCDとArduinoUNOのインターフェースは非常に簡単です。市場にはさまざまな種類のLCDがありますが、このプロジェクトで使用しているLCDは16×2で、2行あり、各行に16文字を表示できます。
このモジュールには、日立のHD44780ドライバーが搭載されており、マイクロコントローラーとのインターフェースと通信に役立ちます。このLCDは、4ビットモードと8ビットモードで動作します。 4ビットモードでは、LCDとマイクロコントローラー間の接続を確立するために必要なデータピンは4つだけですが、8ビットモードでは8つのデータピンが必要です。
ここでは、必要な配線数が少なく、回路が単純化されているため、4ビットモードで使用します。 16×2LCDのピンの説明を見てみましょう。
16×2LCDモジュールのピンの説明:
LCDのピン | 説明 |
VSS | |
VCC | +5V電源 |
RS | |
RW | |
E | |
DB0-DB7 | |
LED + | |
LED- |
このLCDには独自のライトがないため、画面の後ろにディスプレイのバックライトとして機能するLEDがあります。このLCDとArduinoUNOのインターフェースは、Arduino IDEがLiquidCrystalライブラリを提供するため、非常に簡単です。LiquidCrystalライブラリには、ディスプレイ上のあらゆるものの初期化と印刷を容易にする多くの機能が組み込まれています。このプロジェクトで主に使用するLCD機能は次のとおりです。
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()
早期洪水検知システムとソースコードの動作
超音波センサーは、送信機と受信機が水位に面するように、あるベースレベルに配置されます。 ArduinoUNOはセンサーと水位の間の距離を測定します。
LCDはそれらの間の距離を印刷します。洪水レベルのベンチマークを設定し、水がベンチマークに達すると、ブザーを「高」に設定し、LCDが洪水について警告するテキストを印刷します。
コードの説明
#include
LiquidCrystal lcd(2,3,4,5,6,7);
lcd.begin(16,2);
LCDディスプレイ用の組み込みライブラリが含まれています。関数LiquidCrystallcd()は、ArduinoUNOに接続されているデータのピン番号を取得します。 Lcd.begin()は16×2LCDを開始します。
pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
ピン18と20はそれぞれトリガーとブザーの出力ピンに設定され、ピン19はエコーピンの入力に設定されます。
t=pulseIn(19,HIGH);
dist=t*340/20000;
時間変数't'は、トリガーピンがハイに設定されるまでの時間を検出します。これは、センチメートル単位の時間を計算し、変数'dist'に値を格納するためにさらに使用されます。
if(dist<40)
{
digitalWrite(20,HIGH);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Water level is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
このコードでは、水位と超音波センサーの間の距離が40cmになるように、洪水状態の条件を設定しました。そのため、水位が40 cm以下に達すると、ブザーがHIGHに設定されて警告が発せられ、LCDが洪水警報メッセージを印刷して表示します。
完全なソースコード:
#include
LiquidCrystal lcd(2,3,4,5,6,7);
float t = 0;
float dist = 0;
void setup()
{
lcd.begin(16,2);
pinMode(18,OUTPUT); //trigger pin
pinMode(19,INPUT); //echo pin
pinMode(20,OUTPUT); //buzzer
lcd.setCursor(0,1);
lcd.print(" Water Level Detector");
delay(2000);
}
void loop()
{
lcd.clear();
digitalWrite(20,LOW);
digitalWrite(18,LOW);
delayMicroseconds(2);
digitalWrite(18,HIGH);
delayMicroseconds(10);
digitalWrite(18,LOW);
delayMicroseconds(2);
t=pulseIn(19,HIGH);
dist=t*340/20000;
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Distance : ");
lcd.print(dist/100);
lcd.print(" m");
delay(1000);
if(dist<40)
{
digitalWrite(20,HIGH);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Water level is rising. Kindly evacuate");
delay(2000);
}
else
{
digitalWrite(20,LOW);
delay(2000);
}
}
関連プロジェクト:
- IC4017および555タイマーを使用した信号機制御電子プロジェクト
- 簡単な携帯電話充電器の回路図–230VACから5V
- 電子リレースイッチ回路– NPN、PNP、N&Pチャネルリレースイッチ
- 555タイマーと4017カウンターを使用したLEDルーレット回路図
- 電子回路ブレーカー–回路図と動作
- 赤外線モーションディテクターの回路図
- シンプルなタッチセンシティブスイッチ回路
- 555タイマーICを使用した基本的な電圧ダブラ回路図
- デュアル電源回路図– 230VAC〜±12VDC
- 簡単な携帯電話充電器の回路図–230VACから5V
産業技術
- C# を使用して
- データセンターの漏水検知システムとしてのSymphonyLinkの使用
- LM35を使用した温度ベースのデバイス制御システム
- Arduinoのみを使用するDTMFデコーダー
- PythonでArduinoとRFIDを使用した出席システム
- ArduinoUnoを使用した人間検出ロボティクスシステム
- Arduino警報システム:SERENA
- 森林火災監視および検出システム(SMSアラート付き)
- Arduino、Windows、Azureをベースにした転倒検知システム
- Arduinoベースの衝突検出警告システム
- 業界でBiz4intelliasIoTを利用した漏水検知システムを使用する5つの利点