はじめに
電子工作を実用的に使ってみたい人向けの記事です。今回は土壌センサーを紹介します。家庭菜園や農業において、土壌の水分量を把握することは非常に重要です。ラズベリーパイPicoを使って土壌センサーを活用すれば、土壌の状態を簡単にモニタリングできます。この記事では、土壌センサーの種類と動作原理を紹介し、それらをRaspberry Pi Picoで使用する方法を解説します。
土壌センサーの種類と動作原理
土壌センサーにはいくつかの種類があり、それぞれ異なる原理で動作します。主に以下の3種類が一般的です。
抵抗式土壌水分センサー
抵抗式センサーは、土壌の電気抵抗を測定することで水分量を推定します。水を含んだ土壌は電気を通しやすく、乾燥した土壌は電気抵抗が大きくなります。この特性を利用して、センサーの電極間の抵抗値を測定し、水分量を推定します。
メリット
・安価で手軽に導入可能
・回路がシンプル
デメリット
・電極が腐食しやすく、寿命が短い
・計測精度が湿度や塩分濃度の影響を受けやすい
静電容量式土壌水分センサー
静電容量式センサーは、電極間の静電容量(キャパシタンス)の変化を測定することで、土壌の水分量を推定します。水分を多く含む土壌は誘電率が高くなるため、センサーの静電容量が増加します。
メリット
・電極が腐食しにくく、長寿命
・土壌の塩分濃度の影響を受けにくい
デメリット
・抵抗式に比べるとやや高価
・高周波信号を扱うため、回路設計がやや複雑
TDR(時間領域反射率法)土壌水分センサー
TDR(Time Domain Reflectometry)方式のセンサーは、パルス波を電極に送信し、その反射時間を測定することで土壌の誘電率を求め、水分量を算出します。これは非常に精度の高い測定方法です。
メリット
・高精度で信頼性が高い
・温度や塩分濃度の影響を受けにくい
デメリット
・非常に高価で、一般的なDIY用途には向かない
・回路設計やデータ処理が複雑
配線
アナログ出力(AO)はラズベリーパイのアナログGPIOに接続してください。
RaspberryPi Pico | 土壌センサ |
VSYS(39番) | VCC |
GND(38番) | GND |
GP0(1番) | DO |
GP26(31番) | AO |
乾燥状態になったらLEDを点灯する
乾燥状態になったらpicoの内蔵LEDを点灯させます。
しきい値は可変抵抗の調整や必要な水分の具合で必要に応じて変えてみてください。
from machine import ADC, Pin
import time
sensor = ADC(Pin(26)) # 土壌センサーをGP26(ADC0)に接続
led = Pin(25, Pin.OUT) # 内蔵LED(GP25)を出力モードで設定
THRESHOLD = 45000 # しきい値(乾燥時の判定基準、要調整)
while True:
value = sensor.read_u16() # 16ビットADC値を取得(0~65535)
voltage = value * 3.3 / 65535 # 電圧に変換
print(f"Soil Moisture: {value} (Voltage: {voltage:.2f}V)")
if value > THRESHOLD: # 乾燥している場合
led.on() # 内蔵LEDを点灯(乾燥時に警告)
else:
led.off() # 内蔵LEDを消灯(湿っている場合)
time.sleep(1) # 1秒ごとに測定
まとめ
Raspberry Pi Picoと土壌センサーを組み合わせることで、手軽に土壌水分を測定できました。若干高価になりますが、実際に使うなら静電容量式が良いと思います。以前紹介したリレーと接続すればポンプポンプと連動させることができます。また環境データもセンサーで取得できますので、自動給水システムやIoT農業にも応用できると思います。ぜひ試してみてください。


COLIAO
容量性土壌水分センサー 耐腐食性土壌湿度検出モジュール 湿気検出 庭 水やり DIY 電子 Raspberry Pi デュポンワイヤー付き
COLIAO-Capacitive Soil Moisture Sensor
コメント