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

Arduinoを使用した早期洪水検知システム–ソースコード

初期の洪水 監視 システム–回路とプロジェクトのソースコード

開発途上国と非開発途上国の両方で、洪水は人と動物の生命と財産の損失を引き起こす大規模な自然災害です。海の地震、ハリケーン、降雨、その他の自然災害による洪水は、毎年世界中の多くの地域で発生しています。

降雨時には、さまざまな地理的地域の管理されていない排水システムが洪水につながり、多くの人命が失われます。洪水について早期に警戒できるシステムがあれば、人々の命を救うことができます。技術を駆使して水位の上昇を検知し、事前に警戒して多くの人を避難させるシステム。

このプロジェクトでは、池、ダム、貯水池の水位を検出し、ブザーを使用してアラートを送信するために使用できるプロトタイプを提供します。これは、Arduino UNO、超音波センサー、ブザー、LCD、およびいくつかの接続ワイヤーを使用する小規模なプロトタイプです。

関連プロジェクト:

洪水を早期に検出するための回路図

必要なコンポーネント

関連プロジェクト:

では、この基本的な回路で使用されているコンポーネントについて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++言語は、習得と使用が非常に簡単なボードのプログラミングに使用されます。

関連プロジェクト:

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)ピン用のピン。

関連プロジェクト:

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モジュールとオブジェクトの間の距離がわかります。

関連記事:

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モジュールのピンの説明:
グラウンドピン VEE LCDのコントラストを変更するためのピン 登録選択:データモードまたはコマンドモード 読み取りまたは書き込みモード LCDを有効にする データとコマンドはこれらのピンを使用して供給されます バックライトLEDのアノード バックライトLEDのカソード
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);
}
}

関連プロジェクト:


産業技術

  1. C# を使用して
  2. データセンターの漏水検知システムとしてのSymphonyLinkの使用
  3. LM35を使用した温度ベースのデバイス制御システム
  4. Arduinoのみを使用するDTMFデコーダー
  5. PythonでArduinoとRFIDを使用した出席システム
  6. ArduinoUnoを使用した人間検出ロボティクスシステム
  7. Arduino警報システム:SERENA
  8. 森林火災監視および検出システム(SMSアラート付き)
  9. Arduino、Windows、Azureをベースにした転倒検知システム
  10. Arduinoベースの衝突検出警告システム
  11. 業界でBiz4intelliasIoTを利用した漏水検知システムを使用する5つの利点