知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

「植物の自動水やり機」に使うIoT OnOffの代わりにGitHubで見つけたMYHELLOIOTを使う方法

「M5StackではじめるIoT電子工作」の作例として載っている「植物の自動水やり機」はIoT OnOffというスマホアプリを使っています。

しかし、最近App StoreからIoT OnOffが消えてしまいました。

 

Goolge Playではこの手のアプリがたくさん見つかりますが、App Storeだと無料のアプリでは見つけることができませんでした。

そこで、捜索範囲をアプリ以外にも広げたところ、GitHubでPWA(Progressive Web Apps)で動作するMQTTダッシュボードを見つけました。

 

MQTTダッシュボード「MYHELLOIOT」

MYHELLOIOTはPWAで動作するMQTTダッシュボードです。iOSAndroidWindowsmacOSLinuxなどのOSに関係なく、主要なブラウザで動作することができます。

 

使い勝手はお世辞にもいいとは言えず、ダッシュボードを作るためにはJSXコードを書く必要があります。幸いサンプルJSXコードが幾つか用意されているので、それを参考にすれば使えないことはない感じになっています。

 

MYHELLOIOTはGitHub上でホストされていて、次のURLにアクセスすれば直ぐに使うことができます。

https://adrianromero.github.io/myhelloiot/

 

アクセスするとこんな画面が表示されます。

 

メニュー

各メニューをクリックすると次の画面が表示されます。

  • About
    「MYHELLOIOT」の説明が書かれた最初に表示される画面
  • Credentials
    MQTTブローカーのユーザー認証情報設定画面

  • MQTT Connection

    MQTTブローカーの設定画面


    ※MQTTブローカーはウェブソケットを使って接続する必要があります。

  • Dashboard
    「About」メニューのサンプルコードのリンクをクリックすると、自動的に「Dashboard」のメニューに書き込まれます。
    上矢印アイコンからファイルをアップロードすることもできます。

 

「植物の自動水やり機」に使うIoT OnOffの代わりにMYHELLOIOTを使う方法

「about」メニューの画面キャプチャに付けた「①接続設定」から「③接続ボタン」の順番に作業を行いますが、事前に「②JSXコード入力」に使うJSXコードを準備します。

 

JSXコードの準備

  1. 「自動水やり機.jsx」のJSXコードをテキストエディタにコピーします。
  2. 5箇所ある「subtopic="トピック名"」を修正します。
    トピック名は"年月日時分/plant/moist"という形式になっているので、5箇所の年月日時分"202211031040"を修正開始時の年月日時分で置き換えます。
    Arduinoソースコード"WaterringPotted.ino"の7行目、"(IoT OnOffのDevice IDに置き換える)"の部分を同じ年月日時分に修正してください。
  3. 「自動水やり機.jsx」というファイル名で保存します。。

 

自動水やり機.jsx

<Dashboard title="自動水やり機">
  <PanelFlex>
    <Card title="土壌水分(小さいほど大きい)">
      <InputUnit subtopic="202211031040/plant/moist"
        format={NumberValueFormat({
          style: "decimal",
        })}
      />
    </Card>
    <Card title="水残量不足(1:真 4:偽)">
      <InputUnit subtopic="202211031040/plant/empty"
        format={ValueFormat({
        })}
      />
    </Card>
    <Card title="土壌水分設定">
      <ViewUnit
        subtopic="202211031040/plant/limit"
        format={NumberIconFormat({
          style: "decimal",
        })}
      />
      <SliderUnit
        pubtopic="202211031040/plant/limit"
        puboptions={{ retain: true }}
        subtopic="202211031040/plant/limit"
        limits={{ min: 1000, max: 3000, step: 10 }}
      />
    </Card>
    </PanelFlex>
</Dashboard>

 

①接続設定

「About」メニュー画面の「Sets Mosquito test broker url」をクリックします。

すると、「MQTT Connection」メニュー画面(MQTTブローカーの設定画面)が「test.mosquitto.org」を使う設定になります。

 

②JSXコード入力

Dashboard」メニュー画面を表示して「上矢印アイコン」をクリックすると、ファイルを選択するウインドウが表示されるので、準備しておいた「自動水やり機.jsx」を選択してアップロードします。

 

③接続ボタン

画面の最上部右側にいつも表示されている「Connect」ボタンをクリックします。

すると、画面がダッシュボード画面に切り替わります。

「自動水やり機」が動いていれば、「土壌水分」と「水残量不足」の値が表示されます。

 

ブローカー名が表示されている部分をクリックすると、接続情報と切断用の「Disconnect」ボタンが表示されます。