M5Stackで自動水やり機

Automatic plant watering ・ 自动浇水

土の水分を測って、乾いたら自動でポンプが水をやる。家庭菜園の鉄板。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Unit WateringMoisture sensor + pumpgrove_analogofficial page — $11.5

配線

作り方

M5Stack Core2とWatering Unitで作る、自動水やり装置です。土壌の水分を静電容量式センサーで検出し、内蔵ポンプで自動的に水を供給します。Core2が水分量を監視し、乾燥したらポンプを駆動します。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Watering Unit(静電容量式水分センサー+ポンプ)、Groveケーブル(黒色、ユニットに付属)、USB-Cケーブル(Core2とパソコン接続用)、水を入れる容器、植物の鉢。
  2. Watering Unitのセンサーとチューブを設置する — Watering Unitの水分センサー(基板上の金属部分)を、植物の根元付近の土に差し込みます。ポンプの吸水チューブを水容器に入れ、出水チューブの先を植物の根元に向けます。水が電子部品にかからないように注意してください。
  3. Groveケーブルで接続する — Watering Unitはアナログ(黒色)ポートで接続します。Groveケーブルの一端をWatering Unitのポートに、もう一端をCore2の黒色Port.B(アナログ/GPIOポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  4. パソコンに接続してMicroPythonを書き込む — USB-CケーブルでCore2をパソコンに接続します。UIFlowまたはThonnyなどのツールで、Core2にMicroPythonファームウェアがインストールされていることを確認し、以下のコードをデバイスにコピーして実行します。
  5. しきい値を調整する — コードを実行すると、画面に水分値が表示されます。土が乾いているときと、水やり直後の値をメモします。希望する乾燥レベルでポンプが動作するよう、コード内のDRY_THRESHOLDを調整します(値が大きいほど乾燥)。
  6. 動作テストを行う — 土が乾燥している状態(またはセンサーを空中に出す)で、値がしきい値を超え、ポンプが数秒間動作することを確認します。水やり後、値が下がりポンプが停止することを確認してください。

サンプルコード(micropython)

# M5Stack Core2 + Watering Unit (automatic plant watering)
# Wiring: Watering Unit -> Core2 black Port.B (analog/GPIO)
import time
from machine import Pin, ADC
from m5stack import lcd

# Port.B pins on Core2: analog input pin 36, pump control pin 26
moist = ADC(Pin(36))
moist.atten(ADC.ATTN_11DB)   # read full 0-3.3V range
pump = Pin(26, Pin.OUT)

DRY_THRESHOLD = 2500   # adjust after calibration (higher = drier)
WATER_SECONDS = 3      # pump run time

while True:
    value = moist.read()        # raw moisture reading
    lcd.clear()
    lcd.print('Moisture: %d' % value, 10, 20)
    if value > DRY_THRESHOLD:    # soil is too dry
        lcd.print('Watering...', 10, 60)
        pump.on()               # turn pump on
        time.sleep(WATER_SECONDS)
        pump.off()              # turn pump off
    time.sleep(5)               # wait before next check

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。