これは Grove インターフェース互換のマグネットスイッチモジュールです。CT10 密閉型リードスイッチをベースにしています。CT10 は単極単投(SPST)タイプで、通常開のルテニウム接点を持っています。このセンサーは両端型であり、電磁石、永久磁石、またはその両方の組み合わせで作動させることができます。マグネットスイッチは、近接に基づいて回路をオン・オフするデザインを求める設計者にとって素晴らしいツールです。
https://wiki.seeedstudio.com/ja/Grove-Water_Sensor
M5StickC Plus2 × Grove 水センサー(Water Sensor)資料(Grove直挿し版)
1) 準備
- M5StickC Plus2
- Grove – Water Sensor
- Groveケーブル
2) 接続
- Grove端子にそのまま挿す(これだけ)
この水センサーは「濡れると導通して値が変わる」タイプ。
水が付くとLOW(0)、乾いてるとHIGH(1)になります(仕様通りだと“反転”です)。
3) 最小サンプルコード(デジタル判定・画面表示)
M5のGrove信号線は GPIO32/33のどちらかを使います。前回DHTが33で動いたので、まず 33 からでOK。
#include <M5Unified.h>
const int WATER_PIN = 33; // まず33(ダメなら32に変更)
void setup() {
M5.begin();
M5.Display.setTextSize(2);
pinMode(WATER_PIN, INPUT);
}
void loop() {
int v = digitalRead(WATER_PIN);
// 仕様:濡れるとLOW、乾くとHIGH(反転に注意)
bool wet = (v == LOW);
M5.Display.setCursor(0, 0);
if (wet) {
M5.Display.println("WATER: YES ");
} else {
M5.Display.println("WATER: NO ");
}
M5.Display.printf("RAW: %d \n", v);
delay(100);
}
4) 動作確認
- 書き込み
- センサーの電極部に 水滴をつける(指で触るだけだと反応が弱いことあり)
WATER: NO→WATER: YESになれば成功

5) よくあるトラブル
A) 反応しない
WATER_PINを 33 → 32 に変えて再実行- 水滴が少なすぎる/電極が汚れてる → もう少し濡らす・拭く
B) ずっと YES(濡れてる扱い)
- 電極が濡れたまま/汚れ・イオン(汗や飲み物)で導通してる
→ 真水で軽く洗って乾かす(授業だとこれが地味に効く)
6) 注意(授業用に最低限)
- 電極を濡らしっぱなしにすると腐食しやすい(実験後は拭く)
- Grove直挿しは簡単だけど、センサーによっては電圧周りが雑になるので「今回は簡単のため直挿し」でOK
7) 発展(やると教材として強い)
- 「濡れた回数」カウント
- 水滴量を見たい → 本当はアナログ入力で読む方が向いてる(※その場合はGrove端子ではなくADCピンに配線)