はじめに
農業IoT開発の休憩がてら、水センサーが使えそうだなと思って使い方を勉強してみました。
タイトルは【農業IoT・AgriTechデバイス開発#】ではなく以前の【超初心者がIoT開発に挑んでみる#】にしています。
ちなみに農業IoT・AgriTechデバイス開発】シリーズは以下の記事が最新となります。
水センサーについて
今回は下のような水分センサーを使いました。正確にいうと筆者が購入したものは若干違うものですが、基本的な使い方は同じだと思います。
この水センサーは、乾いている時は出力ピン(SIGピン)が抵抗でプルアップされて電位が高い状態になります。この状態の時、SIGピンとGNDピン間に水がつくとSIGピンとGNDピンがショートして、SIGピンの電位がGNDと同電位になり出力が低下します。
つまり、乾いている状態だと1(=High)、濡れている状態だと0(=Low)ということですね。
この原理により水をセンシングできるというわけです。
スケッチ
今回のスケッチは以下のようにしました。
#include <M5Unified.h>
constexpr int WATER_SENSOR = 36; // PortB想定
void setup() {
auto cfg = M5.config(); //デバイスの初期化
M5.begin(cfg); //デバイスの初期化
pinMode(WATER_SENSOR, INPUT); //WATER_SENSOR を入力として使う設定
//M5Stackの画面設定
M5.Display.fillScreen(TFT_BLACK);
M5.Display.setTextSize(3);
M5.Display.setTextColor(TFT_WHITE, TFT_BLACK);
}
void loop() {
int v = digitalRead(WATER_SENSOR); //指定ピン(WATER_SENSOR)のデジタル値(HIGH/LOW)を取得
M5.Display.setCursor(40, 100);
//三項演算子 v ? "DRY" : "WET"はv==HIGH(1)なら DRY、v==LOW(0)なら WETを表示。
M5.Display.printf("STATE: %s ", v ? "DRY" : "WET"); // %sの後ろの空白3つで上書き消去
delay(500);
}
結果
うまく動作すれば下のような状態になると思います。意外と敏感に動いてくれました。

最後に
今回は農業IoT開発の合間に水センサーの勉強をしてみました。動作自体は簡単にできました。
雨センサー等として農業IoTにも活用できそうです。
それでは、今回はこの辺で。
おすすめの書籍
もっと詳しくM5Stackについて知りたい!という方はこちらの書籍がおすすめです。とても詳しく載っていてわかりやすいです。
とりあえず何か作ってみたい!という方にはこちらの書籍がおすすめです。書いてある通りにやるだけでお手軽にIoTデバイスを作ることができます。
Arduinoで電子工作したい方にはこちらもおすすめです!Arduinoでどんなことができるのか、一目でわかる一冊になっています。
※Amazonのアソシエイトとして、当メディア(Nラボ備忘録)は適格販売により収入を得ています。
他記事のご紹介
当ブログではさまざまな記事を投稿しています。最近はPythonで物理シミュレーションをやってみたり、JavaScriptの記事も人気が出てきています。ぜひご覧ください。




コメント