スマート灌漑システム–回路図とコード
Arduinoベースのスマート灌漑システム
インドは、人口の70%が生計を農業に依存している国です。今日では、すべての作業は機械を使用することで最も簡単な方法で行うことができます。間違いなく、自動化は生産性を高め、多くの時間と労力を節約します。灌漑は、この分野への投資から最大の利益を生み出すための農業の最も重要な部分です。しかし、農民が仕事を楽にするために農業分野で使用できるいくつかの機械があります。残念ながら、そのような機械はコストが高いため、農家は手頃な価格ではありません。必要なのは、農業目的で簡単に使用できるシンプルで低コストの機械だけです。
この投稿では、低コストの材料を使用して設計された、スマートでシンプルな灌漑システムについて説明します。この灌漑システムの目的は、土壌の水分含有量を検出し、モーターポンプを自動的に稼働させることです。
農業分野とは別に、私たちの不在時に植物を世話するために、私たちの家には自動化された植物灌漑システムも必要です。この記事では、自宅で快適に座っているときに植物に自動的に水をまくために使用できるスマート灌漑システムプロジェクトの設計プロセスについて説明します。このスマート灌漑システムデバイスを使用して、給水スケジュールと実行時間を調整できます。
水の損失の約50%は、過剰な水やりを引き起こす従来の灌漑システムの非効率性が原因で発生します。この問題を克服するために、土壌の水分レベルをチェックし、植物に自動的に水を供給するスマート灌漑システムを設計します。回路が土壌に十分な水分を見つけると、モーターポンプが停止します。
また、GSMモジュールを使用して、土壌および送水ポンプの水分状態について定期的に更新しています。このプロジェクトは信頼性が高く、畑での灌漑プロセスから人的資源を排除するのに役立ちます。
前述のように、土壌水分センサーを使用して土壌の水分を検知しました。プロジェクトを開始する前に、回路の動作を明確に理解するために、回路で使用されている主要なコンポーネントを見てみましょう。
- 関連プロジェクト:自動植物散水および灌漑システム–回路、コード、およびプロジェクトレポート
土壌水分センサー
土壌水分センサーには、土壌中の水分量を測定するために使用される2つのプローブがあります。これらの2つのプローブは、電流が土壌を通過できるようにし、土壌に存在する水分値を取得します。
土壌に水が存在する場合、抵抗が少なくなるため、土壌は電気を通します。その結果、センサーが感知する水分レベルが高くなります。乾燥した土壌は電気の伝導性が悪いです。土壌中の水分が少ないと、電気の伝導が少なくなるため、抵抗が大きくなります。これが水分レベルが低くなる理由です。
技術仕様:
- 入力電圧– 3.3-5V
- 出力電圧-0-4.2V
- 入力電流-35mA
- 出力電圧-アナログ/デジタル
土壌水分センサーのピン配列:
- Vcc-電源
- A0-アナログ出力
- D0-デジタル出力
- GND-アース
関連プロジェクト:雨警報回路–雪、水、雨の検出器プロジェクト
上記のように、土壌水分センサーは、プローブとして機能する2枚の導電性プレートで構成されています。土壌水分センサーは単に2枚の導電板として機能します。最初のプレートは+5v電源に接続されています。 2番目のプレートは地面に直接接続されています。出力は、土壌水分センサーピンの最初の端子から直接取得されます。
土壌水分センサーは、開回路と閉回路の原理で動作します。土壌が乾燥すると、電流が流れなくなり、開回路のように機能します。土壌が湿っているとき、電流はある端子から別の端子に流れ始め、閉回路として機能します。水分センサーをArduinoUNOボードに接続しました。この記事の後半で、回路のインターフェースとシミュレーションコードについて説明します。
- 関連プロジェクト:水位インジケーターの回路図-2つの簡単なプロジェクト
土壌水分センサーのアプリケーション:
このデバイスは、手作業による植物の散水プロセスの必要性をなくすために、家庭菜園や芝生で使用できます。灌漑用の水を定期的に供給するために、内部の植物に使用できます。
このプロジェクトの2番目に重要な部分は、通信用にArduinoマイクロコントローラーと一緒に使用されるGSMモジュールです。
TTL SIM800 GSMモジュール:
灌漑システムプロジェクトでSIM800 GSMモジュールを使用し、Arduinoとインターフェイスしてメッセージを送受信しました。 GSMモジュールは基本的にGSMモデムです。このデバイスはPCBに接続され、ボードからさまざまなタイプの出力を受け取ります。私たちのプロジェクトでは、GSMモジュールとArduinoのインターフェースがあり、TTL出力が取得されます。このクアッドバンドGSMモジュールは、GSM 850MHz、EGSM 900MHz、DCS 1800MHz、PCS1900MHzの範囲の周波数で動作します。 GSMモジュールはArduinoおよびマイクロコントローラーと高い互換性があります。 TTL SIM800 GSMモジュールは、スマートフォンのPDAなど、ほぼすべてのデバイスに適合するように24 * 24*3mmのサイズで組み立てられています。
アジアでは、ほとんどの携帯電話事業者は900MHZ帯域で動作しています。 GSMモジュールは、単一のGSMモデムをPCBに接続することによって製造されます。次に、RS232出力のプロビジョニングが提供されます。デバイスに適したGSMモジュールを選択する前に、プロジェクトのGSM電力要件を再確認してください。また、TTL対応の出力ピンを常に選択して、Arduinoと直接インターフェースします。不便はありません。
- 関連プロジェクト:スマートホームオートメーションシステム–回路とソースコード
技術仕様:
- クワッドバンドベース
- 必要な電圧-9VDC-12VDC
- 電源スイッチングレギュレータベース
- 必要な電力-1MA
- 動作温度--40〜+85℃
GSM 800モジュールの機能:
- コーディングスキーム-CS-1、CS-2、CS-3、CS-4Txパワー
- 消費電力が少ない
- マイク入力とレシーバー出力を含むオーディオチャンネルを装備
これで、土壌水分センサーとGSMモジュールの両方のデバイスの動作について十分な知識が得られました。次に、両方のコンポーネントをArduinoマイクロコントローラーとインターフェースする必要があります。
- 関連記事:スマートWiFiサーキットブレーカー–建設、設置、作業
ArduinoUNOボード
Arduino UNOボードの詳細を明らかにする前に、Arduinoメガ、ArduinoDueなどのさまざまなバージョンのArduinoボードが市場に出回っていることをお知らせします。私たちのプロジェクトのArduinoUNOは、マイクロコントローラーとのインターフェースが最も安価で簡単なためです。このマイクロコントローラは、14個のデジタルI/Oピンと6個のアナログピンで構成されています。 Arduino UNOマイクロコントローラーは、TXピンとRxピンを使用したシリアル通信もサポートしています。 Arduinoを使用する最大の利点は、要件に応じてソフトウェアとArduinoボードを最適化および変更できることです。
土壌水分センサーとGSMモジュールのArduinoとのインターフェース
この回路のインターフェースは単純です。回路図に従う必要があります。
まず、土壌水分センサーのアナログピンをArduinoのアナログピン1に接続します。次に、センサーのVCCとGNDをArduinoの5VとGNDに接続します。
次に、モジュールにSIMカードを挿入します。次に、GSMモジュールを電源に接続する必要があります。 5Vのモジュールがある場合は12Vのモジュールを使用しているので、Arduinoの5Vで直接電力を供給できます。回路図に示すように12V電源を接続します。次に、モジュールのGNDピンをArduinoのGNDに接続します。モジュールのSTピンをArduinoのデジタルピン9に接続し、モジュールのSRピンをArduinoのデジタルピン10に接続します。また、検出された水分レベルを表示するためにLCDを接続しました。回路図のようにLCDを接続し、ポットを接続してLCDのコントラストを操作します。
- 関連プロジェクト:Arduinoと超音波センサーを使用した距離測定
リレードライバ図を使用してリレーとトランジスタを接続します。
次に、リストに記載されている以下のコンポーネントを収集し、回路図に示すように回路を接続します。
- ArduinoUNOボード
- GSMモジュール
- ワイヤーの接続
- トランジスタ
- 16×2LCDディスプレイ
- 電源
- リレー
- ポンプ
- 土壌水分センサー
- 抵抗器
- ターミナルコネクタ
- 電圧レギュレータ
プログラミングコードの説明
このプロジェクトのプログラミング部分は非常に簡単です。まず、LCDと水分センサーのライブラリを定義する必要があります。次の行では、デジタルピン9と10にそれぞれ接続されているセンサーの送信機ピンと受信機ピンを定義しました。
#include
#include
SoftwareSerial mySerial(9,10);
これで、ピン番号を使用する代わりにそれらを使用するためのいくつかの変数を定義しました:
int M_Sensor = A0;
int W_led = 7;
int P_led = 13;
次の行では、Arduinoに接続されているLCDピンを定義しました:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
セットアップ関数では、最初にlcd.begin()関数でLCDを初期化し、mySerial.begin()関数を使用して水分センサーを初期化しました。 LCDには16列と2行があり、これはLCD全体を使用することを示しているため、16.2を通過しました。次に、デジタルピン13のピンモードを初期化して、ポンプステータスLEDとリレーに接続される出力として定義し、ピン7を水位LEDに接続される入力ピンとして定義しました。
void setup()
{
lcd.begin(16, 2);
mySerial.begin(9600);
pinMode(7,INPUT);
pinMode(13,OUTPUT);
}
次に、ループ関数について説明します。最初の行では、LCDをクリアして、以前の出力がクリアされた場合にクリアします。次の行では、水分センサーの値を取得して、「Moist」という名前の変数に格納しています。
lcd.clear();
int Moist = analogRead(M_Sensor);
次の行では、乾燥した、湿った、湿った土壌の条件を紹介しました:
if (Moist> 700) // for dry soil
{
lcd.setCursor(11,0);
lcd.print("DRY");
lcd.setCursor(11,1);
lcd.print("SOIL");
if (digitalRead(W_led)==1) //test the availability of water in storage
{
digitalWrite(13, HIGH);
lcd.setCursor(0,1);
lcd.print("PUMP:ON");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:ON”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
else
{
digitalWrite(13, LOW);
lcd.setCursor(0,1);
lcd.print("PUMP:OFF");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
}
if (Moist>= 300 && Moist<=700) //for Moist Soil
{
lcd.setCursor(11,0);
lcd.print("MOIST");
lcd.setCursor(11,1);
lcd.print("SOIL");
digitalWrite(13,LOW);
lcd.setCursor(0,1);
lcd.print("PUMP:OFF");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
if (Moist < 300) // For Soggy soil
{
lcd.setCursor(11,0);
lcd.print("SOGGY");
lcd.setCursor(11,1);
lcd.print("SOIL");
digitalWrite(13,LOW);
lcd.setCursor(0,1);
lcd.print("PUMP:OFF");
mySerial.println(“AT+CMGF=1”);
delay(1000);
mySerial.println(“AT+CMGS=\”NUMBER”\r”);
delay(1000);
mySerial.println(“PUMP:OFF”);
delay(100);
mySerial.println((char)26);
delay(1000);
}
delay(1000);
}
- 関連記事:Arduino UNOを使用した可変電源–回路とコード
自動灌漑システムの動作
自動灌漑システムの動作は非常にシンプルで理解しやすいものです。このプロジェクトでは、Arduinoを使用して回路の動作全体を制御します。まず、土壌に水分が存在しない場合、土壌センサーの2つのプローブ間で伝導が発生します。その結果、トランジスタはオン状態のままになります。また、Arduinoのpin13は低いままです。その後、土壌の水分は正常であるため、Arduinoはユーザーにメッセージを送信します。モーターがオフになりました」。この状況では、モーターポンプは「オフ」状態のままになります。
土壌に水分がない場合、トランジスタQ2はオフになります。また、ピンD7がハイになります。その結果、Arduinoセンドはウォーターポンプを開始し、低水分が検出されたときにユーザーにメッセージを送信します。モーターがONになります。この場合も、土壌水分センサーによって検出された土壌に十分な水分があると、モーターポンプは自動的にオフになります。
- 関連プロジェクト:自動バスルーム照明スイッチの回路図と操作
スマート灌漑システムの機能
このスマート灌漑システムは、理想的な灌漑システムのすべての基準を満たしています。有益な機能のいくつかは次のとおりです。
- このスマート灌漑システムは、気象条件に簡単に適応し、それに応じて水分を感知して送水ポンプを操作します
- 土壌水分センサーは、土壌に存在する水分を感知することで高水流を簡単に感知するため、シャットダウンして自動的に起動します
- スマート灌漑システムを使用すると、現場に行かなくても水の流れをリモートで管理できます
- 回路に接続されたLCDには、土壌水分データが定期的に表示されます。これを使用して、さまざまなインスタンスの水分を記録できます。
関連プロジェクト:Arduinoによるオブジェクト検出機能付き自動ドアベル
ボトムライン
スマート灌漑システム 生産性と信頼性の面でも非常に役立ちます。また、このデバイスは設計が簡単で、簡単に入手できる電子部品を使用して組み立てることができます。ソフトウェアで使用されているArduinoマイクロコントローラーは非常に人気があり、不便を感じることなく簡単にインターフェースできます。土壌水分センサーを使用して、土壌の水分を検知しました。
GSMモジュールは、このプロジェクトで使用され、携帯電話でメッセージを送信してユーザーに通知します。また、Arduinoを使用したすべてのコンポーネントの動作とインターフェース方法についても説明しました。この低コストのスマート灌漑システムを設計して、日常生活の水を節約できるようになることを願っています。
関連プロジェクト:
- 電圧トリプラー回路の作り方
- エレクトロニクス最終年度プロジェクトのアイデアリスト
- 工学部の学生のための電子工学プロジェクトのアイデア
- 初心者向けのシンプルで基本的なエレクトロニクスミニプロジェクトのアイデア
- その他の電気電子工学プロジェクト
産業技術