Arduinoと戯れる!

Arduino 入門 Lesson 59 【土壌水分検出センサ】

arduino-lesson59-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 59
【土壌水分センサ】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

補足情報
回路図を追加しました。

 

本記事はLesson 59 【土壌水分センサ】です。

こちらも、電子部品箱を整理していて発見。

Lesson 58の感雨・水位センサと一緒に購入した記憶が・・・。

だいぶ前に買って放置してました。

せっかく見つけたので、こちらも遊んでみたいと思います。

土壌水分センサ・土壌湿度センサ」として売られています。

土壌の湿度(水分量)を測定するセンサです。

 

本Lessonで使用する「土壌水分センサ・土壌湿度センサ」は、基板にプリントされたプローブが可変抵抗器として機能します。

抵抗値は土壌の含水量に応じて変化する。

土壌の水分量によって導電率が変化し、抵抗値がかわるというしくみです。

原理としては、Lesson 58の感雨・水位センサと同じ。

プローブの作りが異なるだけと考えても差し支えありません。

 

抵抗の変化は電圧として出力されます。

その電圧の変化をLM393を介して、D0(デジタル出力)から0、1を出力します。

LM393はこれまでのLessonでもよく出てきた部品ですね!

おなじみのコンパレータです!

Lesson 58の感雨・水位センサと同様に、モジュールのA0(アナログ出力)をUNOのアナログピンにつなげば、AD変換されたデジタル値を読み取ることも可能。

 

ちなみに、抵抗とバイポーラトランジスタを持っていればLesson 58の感雨・水位センサのような回路を構築してセンサとすることもできます。

 

本Lessonで使用する「土壌水分センサ・土壌湿度センサ」はセンサ部であるプローブとLM393が搭載されたモジュールで構成されています。

以下が同等品。
※prime対応品(出荷元:Amazon)

 

ほかに、一体化されていて方式も異なる静電容量式もあります。

抵抗式よりも、耐食性に優れているため本格的な導入はこちらがおすすめ。

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

本Lessonで使用する「土壌水分センサ・土壌湿度センサ」は2本のプローブ間の抵抗を測定するというもの。

2本のプローブ線がプリントされており、その間が可変抵抗器の役割を果たします。

その変化をLM393が搭載されたモジュールで読み取るというしくみ。

その電圧をArduinoのデジタルピン、アナログピンで読み取ればOK。

原理は簡単です。

 

Lesson 59 目標

本Lessonの目標は以下です。

1.土壌水分センサ・土壌湿度センサ の使い方を学習する
2.土壌水分センサ・土壌湿度センサ の仕組みを理解する(理解しなくてもOKです)
3.土壌水分センサ・土壌湿度センサ を動かすスケッチを描く
4.土壌水分センサ・土壌湿度センサ を動かして遊ぶ

いつものように、遊ぶことが重要です。

 

土壌水分センサ・土壌湿度センサ」ですが、LM393搭載のモジュールを間に挟むためArduinoでの制御は単純です。

リレー、小型ポンプと組み合わせればなどと組み合わせて、植木鉢に自動で水を上げるといったことができます。

 

準備

ではLessonの準備に取り掛かりましょう。

電子部品は「土壌水分センサ・土壌湿度センサ」のみ。

 

必要なもの

※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

Jumper wire、抵抗は今後も頻繁に利用します。

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

抵抗も単品で揃えるよりはセットをおすすめします。

 

使用部品説明

土壌水分センサ・土壌湿度センサ」について説明していきます。
※以下、土壌水分センサと表記

 

土壌水分センサ 実物写真

下の写真が「土壌水分センサ」の実物写真です。

本Lessonで使用するものは、プローブ部分であるセンサ部、電圧を読み取りLM393にてコンパレートすることで出力を0、1へ変換するモジュール部の2つで構成されています。

2本のプローブ線があることがわかります。
表面はニッケルメッキ?でしょうか。

arduino-lesson59-01

 

センサ部とLM393が搭載されたモジュールは下記のようにつないでください。

センサ部は特にプラス、マイナスはありません。

arduino-lesson59-02

 

土壌水分センサ 回路図

土壌水分センサ」の回路図を示します。

 

あいかわらず、この手の電子部品はデータシートをさがすのが大変・・・。

自分でテスタを使って配線をおいかけて回路図を起こします。

回路じたいは単純ですが、回路の知識が必要となるため興味がないかたは飛ばしてください。

 

簡単に説明すると、10kΩのポテンショメータの出力をリファレンス電圧とする。

リファレンス電圧とA0(10kΩで分圧された電圧)とをコンパレータで比較。
※コンパレータとは比較回路です!

リファレンス電圧  A0 :D0出力が「H
リファレンス電圧  A0 :D0出力が「L

 

※管理人がテスタで配線おいかけていますので、間違えている場合もあります!

arduino-lesson59-03

 

土壌水分センサ 仕様

遊び、学習で使う分には気にする特性はとくにありません。

 

■仕様抜粋(一例)

項目仕様
動作電圧3.3V ~ 5.0V
LM393搭載部D0:デジタル出力
A0:アナログ出力

 

本Lessonは遊び、学習を想定しています。

Arduinoの仕様範囲内で使用していれば問題になることもありません。

遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、「土壌水分センサ」を動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

Arduinoの使用ピンは以下。

  • デジタル入力:D7、D13(Lチカ:なしでもOK)
  • アナログ入力:A0
  • 5V、GND

 

回路図がこちら。

arduino-lesson59-04

 

こちらがブレッドボード図。

arduino-lesson59-05

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は「土壌水分センサ・土壌湿度センサ」のみとなります。

プローブ部分が一体であると考えれば、部品はある意味、1個です。

接続は簡単です。

土壌水分センサ・土壌湿度センサ」と接続するジャンパーワイヤーはM-Fを使用してます。

ブレッドボードを使うかどうかはお好みで。

 

使用するポートは

  • デジタル入力:D7、D13(Lチカ:なしでもOK)
  • アナログ入力:A0
  • 5V、GND

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson59-06

 

毎回ブレッドボードにLEDをセットするのも面倒なので「Lチカ」自作しています。

おすすめです。

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

本Lessonのスケッチは単純。

デジタル入力ピン、アナログ入力ピンで「土壌水分センサ・土壌湿度センサ」の出力電圧を読み取るのみ。

思い出しましょう!
デジタル入力ピンで電圧を読み取る → 0、1判定
アナログ入力ピンで電圧を読みとる → AD変換

Arduinoのアナログ入力ピンは読み取った電圧をデジタル値に変換してくれます。

スケッチは、D0およびA0をデジタル変換した値をシリアルモニタに出力させるだけです。

//Lesson 59 土壌水分センサ・土壌湿度センサ
//土壌の水分検出ができるスケッチ
//実使用するのであれば、電力低減を考える必要あり(下記スケッチでは考えていない)
//https://omoroya.com/

// Sensor pins
const int sensorPinA = A0; //アナログ入力ピンの定義
const int sensorPinD = 7;  //デジタル入力ピンの定義
const int ledPin = 13;     //デジタル出力ピンの定義

void setup() {
  pinMode(ledPin, OUTPUT); //13番ピンを出力指定  
  Serial.begin(9600);      //シリアル通信のデータ転送レートを9600bpsで指定
}

void loop() {
  int val_d = digitalRead(sensorPinD); //D0の値を読み取り
  int val_a = analogRead(sensorPinA);  //A0の値を読み取り(感度調整のため)

  //D0の値を表示
  Serial.print("Digital Output: ");
  Serial.println(val_d);
  //A0の値を表示(例:A0の値が500以下でD0出力が0となるように調整など)
  Serial.print("Analog Output: ");
  Serial.println(val_a);

  //土壌が乾きすぎていたらLチカON
  if (val_d == HIGH) {
    digitalWrite(ledPin, HIGH);
    Serial.println("The soil is too dry.");
    delay(1000);
    digitalWrite(ledPin, LOW);
  } else {
    Serial.println("The soil is sufficiently moist.");
  }

  delay(5000);       //測定する時間を指定。実際に測定するなら長くする。
  Serial.println();
}

 

動作確認

では、さっそく動作を確認していきます。

まず、ビーカーに乾いた土を入れます。

次に、「土壌水分センサ・土壌湿度センサ」を入れて徐々に水を注いでいきます。

その状態をシリアルモニタで観察。

 

■シリアルモニタの値とセンサの状態

値は参考値です。
十分に水が注がれると、D0の出力が0となります。Lチカ
乾いている:ON
湿っている:OFF
LEDを追加することで、シリアルモニタがなくても土壌の状態を確認できます!

土壌シリアルモニタLチカ
乾いているarduino-lesson59-07ON
十分に湿っているarduino-lesson59-08OFF

 

土壌の乾き具合を検出できます。
安価であるため、遊ぶにはもってこいのセンサです。

 

まとめ

本Lessonは、以下を目標としました。

1.土壌水分センサ・土壌湿度センサ の使い方を学習する
2.土壌水分センサ・土壌湿度センサ の仕組みを理解する(理解しなくてもOKです)
3.土壌水分センサ・土壌湿度センサ を動かすスケッチを描く
4.土壌水分センサ・土壌湿度センサ を動かして遊ぶ

 

土壌水分センサ・土壌湿度センサ」を使って土壌に水を与える状況を可視化する。

さらに、応用して自動で水を上げるといったことまですると面白いかも。

 

Lesson 59 【土壌水分センサ】 はここまで。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 60は 【SDカードスロット モジュール】。

SDカードをArudinoで操作して遊びます。

データロガーの作成への第一歩になるLesson。

Arduino 入門 Lesson 60 【SDカードスロット モジュール】その1
本記事はLesson 60 【SDカードスロット モジュール】その1です。今回はセンサではなくて、SDカードの読み取り、書き込みについて。センサで遊んでいると、センサから得られたデータを記憶する観測装置(データロガー)の作成がしたい・・・と…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで2000ポイントもらえるキャンペーンも実施中!
※いつもは1000ポイント、今なら2000ポイントです!

\Amazonギフト券 2000ポイントキャンペーン/
Amazonチャージ 初回購入で2000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

タイトルとURLをコピーしました