この記事の結論
- 土壌水分センサーには抵抗式と静電容量式があり、電極が腐食しにくい静電容量式が初心者におすすめ
- analogRead()で読み取った値としきい値を比較し、乾いたらLEDやブザーで知らせるのが基本の仕組み
- 乾いた状態・湿った状態の値は製品ごとに差があるため、自分のセンサーで実測するキャリブレーションが必須
- 発展として、リレーモジュールと小型ポンプを組み合わせた自動水やりの考え方にも触れる
観葉植物やハーブを育てていると、「気づいたら土がカラカラだった」ということはよくあります。
Arduinoと土壌水分センサーを組み合わせれば、土の乾き具合をLEDやブザーで知らせてくれる、簡単な「スマートプランツ」の入り口を作れます。
この記事では、センサーの選び方から配線・コードの基本、発展としての自動水やりの考え方までを順番に整理します。
土壌水分センサーとは何ができる部品か
抵抗式と静電容量式の違い
土壌水分センサーには、大きく分けて「抵抗式」と「静電容量式」の2種類があります。
抵抗式は2本の金属電極がむき出しになっていて、土の水分量に応じて電極間の抵抗値が変わる仕組みです。
抵抗式は価格が安い反面、電極が土に常時触れることで徐々に腐食し、数週間〜数か月で値がおかしくなりやすいという弱点があります。
鉢植えに挿しっぱなしで使うなら、この弱点は無視できません。
すでに抵抗式を持っている場合は、腐食を遅らせる使い方として、測定するときだけ電源を入れる方法があります。
センサーのVCCをArduinoの5Vに直結せず、空いているデジタルピンにつなぎ、測定の直前だけdigitalWrite(HIGH)で電源を入れます。
そこから数百ミリ秒待ってanalogRead()で読み取ったら、すぐにdigitalWrite(LOW)で電源を切ります。
常時通電と比べて電極が水分にさらされる時間を大幅に短縮できるため、腐食の進行をゆるやかにできます。
初心者には、電極部分が基板の絶縁層(ソルダーレジスト)で覆われていて土に直接触れない、静電容量式をおすすめします。
静電容量式は、土に含まれる水分量によってセンサー先端の静電容量(電気を蓄える能力)が変化する仕組みで、電極が直接土に触れないぶん長持ちしやすいのが特徴です。

価格帯と入手のしやすさ
静電容量式の土壌水分センサーモジュールは、1個あたりおおむね200〜400円程度で購入できます。
抵抗式はさらに安く、100円台から見つかることもありますが、上で触れた腐食のリスクを踏まえたうえで選んでください。
センサーとArduinoをつなぐ基本の考え方は、センサー・モーターの基礎知識の記事で解説しているアナログ入力の仕組みがそのまま使えます。
紹介した商品:静電容量式 土壌水分センサーモジュール
オーディオファン 静電容量式土壌水分センサー(2点セット)
電極が絶縁樹脂でコーティングされ、腐食しにくい静電容量式タイプです。
Amazon ¥682(2点セット) / 楽天 ¥682(2点セット)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
配線とコードの基本
配線(VCC・GND・AOUT)
土壌水分センサーモジュールには、VCC(電源)・GND・AOUT(アナログ出力)の3本のピンがあります。
VCCをArduinoの5V(または3.3V、モジュールの対応電圧を確認)へ、GNDをGNDへ、AOUTをアナログ入力ピン(A0など)へつなぎます。
配線が終わったら、analogRead(A0)でセンサーの値(0〜1023の範囲)を読み取れます。

乾いた値・湿った値を実測するキャリブレーション
土壌水分センサーは、製品や配線によって出力される数値の範囲が異なるため、そのまま決め打ちのしきい値を使うと誤判定しやすくなります。
この2つの値の中間あたりに「乾いたと判定するしきい値」を設定するのが、キャリブレーションの基本的な考え方です。
しきい値判定でLED・ブザーを鳴らす
センサーの値としきい値をif文で比較し、値がしきい値を超えたら(=乾いていたら)LEDを点灯させたり、ブザーを鳴らしたりするコードを組みます。
「if (センサーの値 > しきい値) { LED点灯・ブザーを鳴らす }」という、条件分岐の考え方さえ押さえれば、コード自体は難しくありません。
実際にキャリブレーション〜しきい値判定〜通知までをまとめた最小のスケッチは、次のようになります。
const int SENSOR_PIN = A0;
const int LED_PIN = 8;
const int BUZZER_PIN = 9;
const int THRESHOLD = 500; // 実測した乾燥値・湿潤値の中間に合わせて調整
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int value = analogRead(SENSOR_PIN);
Serial.println(value);
if (value > THRESHOLD) {
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1000, 500);
} else {
digitalWrite(LED_PIN, LOW);
}
delay(3000);
}
常時ブザーを鳴らし続けると耳障りになるため、一度鳴らしたら数秒〜数十秒だけ鳴らして止める、といった工夫を入れると実用的になります。
LEDの選び方・ブザーの鳴らし方は、それぞれ別の記事で詳しく整理しています。
数時間おきにセンサーの値を確認し、乾いていたら通知する、というくり返しの処理にすれば、鉢植えを見張ってくれるミニ装置として使えます。
発展編:リレー+小型ポンプで自動水やりに挑戦する
リレーモジュールでポンプのON・OFFを制御する考え方
通知だけでなく、乾いたら自動で水をあげるところまで発展させたい場合は、リレーモジュールと小型のDCポンプを組み合わせます。
リレーは、Arduinoからの小さな信号で、ポンプに流れる大きな電流のON・OFFを切り替えるスイッチのような部品です。
しきい値を上回ったら(乾いていたら)リレーをONにしてポンプを数秒動かし、水をあげたら一定時間は再判定しない、という流れを組むのが基本形です。

紹介した商品:リレーモジュール(5V・2回路タイプ)
YMS PARTS 5V リレーモジュール 2回路タイプ(4個入)
Arduinoの信号でポンプの大きな電流のON・OFFを切り替えるスイッチ役の部品です。
Amazon ¥750(5個入・1チャンネル) / 楽天 ¥1,250(4個入・2回路)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
紹介した商品:小型DC水中ポンプ
TBDBNR 水中ポンプ ミニウォーターポンプ(2個入り、DC3〜5V)
リレー経由でON・OFFを切り替える、自動水やりに使う小型ポンプです。
Amazon ¥722(2個入) / 楽天 ¥1,380(単品)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
水回りならではの注意点
小型DCポンプはArduino本体の5V出力だけでは電流が不足することが多く、電池やACアダプタによる外部電源が必要になります。
水を扱う工作は、Arduino本体・リレー・配線の接続部分に水がかからない位置にしっかり固定することが最優先です。
水受け皿の外に水がこぼれる可能性も考え、電子部品は鉢よりも高い位置か、離れた場所に設置してください。
外部電源の基本的な選び方は、別の記事で詳しく整理しています。
ここまでできると水やりの負担はぐっと減りますが、最初の一歩としては通知だけの構成から始めて、動作に慣れてからポンプを追加する順番をおすすめします。
まとめ:土の状態の目安としきい値の決め方
最後に、土壌水分センサーの値の目安と、対応するアクションの例を表にまとめます。
| 土の状態(目安) | センサー値の傾向(値が大きいほど乾燥) | 対応アクションの例 |
|---|---|---|
| かなり乾燥(水切れ気味) | キャリブレーションした乾燥値に近い | LED点灯+ブザーで通知、必要ならポンプで水やり |
| やや乾燥 | 乾燥値と湿潤値のほぼ中間より乾燥寄り | 様子見、しきい値の再確認 |
| 適度に湿っている | 中間よりやや湿潤寄り | 特に対応不要 |
| 過湿(水のやりすぎ) | キャリブレーションした湿潤値に近い | しばらく水やりを控える |
取り組む前に、以下の点がなんとなくつかめているか確認してみてください。
- 抵抗式と静電容量式の違い、腐食しにくいのは静電容量式だという見当がついている
- 自分のセンサーで乾燥時・湿潤時の値を実測してから、しきい値を決める順番が身についている
- ポンプまで発展させる場合は、外部電源と水濡れ対策が必要になることが分かっている


コメント