M5stackを使ったIoTで植物を制御してみる!ノンプログラミングで制御開発!

  • 2021年6月11日

こんにちは
セカンドセレクションのUmeharaです。今回は「植物をIoTで制御してみた」を紹介します。対象は観葉植物として、M5stackのセンサーをつなげ、データをサーバーに上げるところまで実施しました。植物(身近なもの)をWebにグラフ化することで水分量の可視化を実施しました。いずれは集めたデータをAIやディープラーニングと組み合わせることで何か面白い発見ができないかな・・・と考えています。

今回使った道具について

  • M5stack C-plus  3000円
  • M5stackセンサー(水分量を測るもの)600円
  • 人感センサー 400円
  • 観葉植物

上記4点を用意しました。

実は・・・本来やりたかったことは、

  1. 人が近づく⇒人感センサー作動
  2. 時刻をチェックしてあいさつ
  3. その後、水分量をチェックして分岐処理
  4. 「のどが乾いた(水がない)」or「おなかいっぱいです(水は足りてます)」としゃべる
  5. 植物に水をあげる
  6. 水分センサーが上昇したら、「ありがとう」としゃべる

と「しゃべる植物」を作成したかったのです。が、いろいろ試した結果、M5stackには内臓のスピーカーがあったもののwavファイル(音声ファイル)が読み取れなかったので、残念ながらデータをクラウドに吸い上げるのみになりました。そこで少し方向転換を行い、無料のクラウドであるambientにデータを表示してみてはどうか?というチャレンジになりました。

4000円で植物と会話できる未来はまだ遠いかもしれませんね。

M5stackとは

M5Stackは、中国のスタートアップ企業が出している小型のマイコンモジュールです。こういった既製品のマイコンを使うことでデータを取得し、簡単にインターネット上にデータをあげることが可能です。初心者に人気のマイコンボードには他にもArduino、Raspberry Pi、micro:bit、M5Stackなどがあります。
今回は、弊社で過去に使ったことがなかったという理由でM5stackを使用するとのことでした。M5stackの設定とセンサーの付け方さえできれば、誰でも行うことができると思います。
M5stackはIoT初心者にもお勧めなので、気になる方は購入してみてください。

いろいろ種類がございますが、M5stack Fireが画面が大きく、汎用性が高くて良いらしいです。

UIFlowの紹介

M5stack公式が提供している環境にUIFlowという開発環境があります。これはBlocklyというビジュアルプログラミング言語を使用してプログラムを構築できる環境です。実際に動く言語としてはPythonになりますが、元から処理単位でブロックのカタマリを作ってくれているので、プログラミングの知識はほとんど不要になっています。

UIFlowを使えばプログラミング初心者の方でもカタマリを組み合わせることにより、簡単にIoTシステムの開発を行うことができます。

詳しくは公式サイトをご覧ください。

データの可視化について

今回は、先にも挙げた通り、

  1. M5stackをM5.Flowで環境設定
  2. ambientというサイトにデータを送って可視化する

ところまでを行いました。※イメージ図は以下の通り

環境設定は先輩に指導してもらい、ブロックプログラミングの知識のみでできたので、まだあまり知識のない僕でも簡単にIoT植物制御を実施できました。

ambient

次に無料で使える「IoTデータの可視化サービス」、ambientのご紹介です。

マイコンなどから送られるセンサデータを受信し、蓄積し、可視化(グラフ化)します。

イメージとしてはExcelでグラフのボタンを押すと簡単に表が作れるようなものだと思ってください。「M5stackから送られるデータを簡単に可視化できます」というだけあって、ブロックプログラミングの中にambient専用ブロックが存在し、Webに簡単にデータをあげることが可能です。

通信方式の特徴として、Key-Valueの方式になっており、

「チャネル(グラフ)へ、パスワード(key)を使って、値(Value)を送ります」となっています。

グラフ作成まで自動生成してくれるツールなので、日々の業務でも取りたいデータとセンサーがあれば簡単に可視化できるかもしれません。工場などではFA(ファクトリーオートメーション)などでこういった無料のBIツールを活用していくことが近年推奨されています。

IoTに関して

今回のIoT制御を簡単に示すと

「M5stackを使って植物の水分量(データ)を収集し、ambientで可視化する」という実験でした。

改めて、IoT(Internet of Things)についてはご存知でしょうか?IoTという言葉のみが先行していると感じているので、少しだけ説明させていただきます。直訳すると、「モノのインターネット」ですが、もう少し詳しく説明するとモノをインターネットで制御(コントロール)・監視(モニター)するということです。センサーと通信機能がセットになって、インターネット経由でWebサーバーとつながります。

例えば、ドアが「今、開きっぱなしだよというサインを出す」、工場の機械が「調子が悪いよ。故障するかもしれないよというサインを出す」、植物が「のどが渇いたよ。水が欲しいよ。」とつぶやき始めます。これらの情報はインターネットを介し、スマホやパソコンに通知したり、アラームを出すことで活用することができます。

最近ではIoTを組み込んだ既製品でスマート〇〇という製品が流行っていますね。

まとめ

今回の「M5stackを使ったIoTで植物を制御してみた」では、M5stackを使い環境設定とデータをあげる仕組みの概要を紹介させていただきました。抽象化してしまうと「植物の水分量を可視化する」「植物の制御をしてみる」になってしまいますが、

セカンドセレクションでは、個人の趣味をデータを通して科学的に研究していきたいという想いがあります。今後も「おいしいコーヒーをデータ化して飲みたい」「きれいな花を咲かせるデータを取って共有したい」など、「自分の趣味を研究し共有できるような大人の自由研究室」を作りたいと考えています。

もし自分も小さな研究者としてIoTを広めていきたい!という方がいましたらお気軽にお問い合わせください。ぜひお待ちしております。

もしよろしければ他のSSブログSSコラムもご覧ください。

人気記事はこちらから

プログラミング未経験の新人が非接触体温計を開発してみた
プログラミング未経験の新人が顔認証システムを開発してみた
プログラミングとソフトウェア開発の違いを知っていますか?

最新情報をチェックしよう!