M5StickC Plusと水分測定センサ付き給水ポンプユニットをUIFlowで使用してみる(2)
応用例
「M5Stack用 水分測定センサ付き給水ポンプユニット」を使用したいちご栽培装置を作成してみました。M5StickC Plusは、電源供給と、ユニットとの接続の関係で、ひっくり返してポンプユニットに結束バンドで固定しています。
100円均一のタッパーの中央を切り抜き、植木鉢を底上げした状態にしてあります。
これは、水やり後の水が植木鉢下のトレイからあふれるので、それを受け、ポンプによる循環に再利用するためです。
タッパーの上部に開けた穴を通じて、タッパーの底部まで伸ばしたポンプユニットのチューブからポンプが水を吸い上げます。
吸い上げた後の水は土の上にぐるぐる巻になったチューブから出ます。チューブにはたくさんの穴を開けてあるので、まんべんなく土に水を与えられます。
横からみた写真です。植木鉢は底上げされています。植木鉢の下のトレイからあふれた水はタッパーの中にたまります。ポンプがそこから水を汲み上げ循環する仕組みです。
センサの値の整形
センサ自体は実測により、1500近辺から2000近辺の値を取ることが分かりました。
このままだと、数値が小さい方が湿っており、「値が大きいと乾いている」という直感に反する動き方をするため、最大値の2000からセンサの値を引くことにします。
これにより、値は40~530あたりを動くようになります。(これも実測)
この時点で、乾いていると40、湿っていると530になり、「値が大きいと湿っている」という、ほぼ直感に沿う動きになります。
最大を100、最小を0にしたいので、「マップ」ブロックを使用します。
これは、ある一定の範囲を、他の範囲にマッピング(割り当てる)するブロックです。「マップ」ブロックの場所ですが、ちょっと分かりにくい場所にあります。「Easy I/O」の中にあります。
「マップ」ブロックを使用して、40~530の範囲を0~100の範囲にマッピングします。これにより、0~100%の表記となります。
この値を「水分量」という名前の変数に入れ、動作の条件としています。
水分センサの水分量が40%を切るとポンプが作動しはじめ、水分量が上がって、60%を超えると停止するようプログラムしました。
今のところ順調に動作しています。
いちご、育つかなぁ。
内容的には、中学校技術・家庭科の技術分野、「計測・制御のプログラミングによる問題解決」でいけそうな感じです。