見出し画像

【SALZ製作日誌】2020.04.22 第2回ロードテスト結果

初期ロードテスト結果後、次の一手を考えている間装置をそのままにしておくのはもったいないので、少し手を加えた後ロードテストを継続しておりました。

今回はその結果をお伝えいたします。

変更点:
・GoogleSpreadシート
  不要なメッセージを省き、情報の密度を高めました。
・給水口をストレートパイプに変えました。
  針金で給水ホースを固定するようにしました。
・温湿度計モジュールを取り除きました。

下部トレーに水抜きのコックを取り付けようか悩みましたが、今回は見送ることにしました。工作ベタな私がこれをやると、漏水が発生する可能性があります。ようやくこういったことも予見できるようになってきました。なので余計なことはとりあえずしないことにしました。

今回は、前回作製したグラフ、EXCELで作成したのですが、結構気に入っています。結果を急いだため、横軸が「分」になってしまい、何日何時何分かわからないと言った不便さはありますが、我ながらきれいに作成できました。

今回は、BIツールのTableauを使って集計したいと思います。

[Tableau Desktop Public Editionについて]

まず最初に、Google スプレッドシートとTableauと接続し、今までのログデータを分析しようと思いました。

[Tableau PublicでGoogle スプレッドシートのデータを開いたところ]

今回分析したいデータは「IFTTT_Maker_Webhooks_Events (5)」です。

[489行から処理したデータが始まっています]

[給水時のログはモーターやサーボのON/OFF情報が複数あります]

このファイルには、前回のデータも入っているため、489行目から処理させたいこと、IFTTTで送られるデータの順序が入れ替わっていることもあるので、ログIDでソートしてから処理したいこと。給水時の情報をスマートにしたいこと。などが要件です。

このようなデータクリーニングが、Tableauに取り込んでからできるか検討してみました。

今調べたところでは、無料で利用できるTableau Publicだけでは難しいようで、Tableau Prep Builderが必要なようでした。でもどこまでできるのかも不明です。

前処理を何とかGoogle Spreadsheetでしておきたい。
でも、できる限りIFTTTから飛んでくるシートをいじらずに処理を行いたい。
今後を見据えた目論見です。

[シート1]にIFTTTからのデータを落としているのですが、シートを追加し、[分析用]シートを作成しました。

各セルを「 ='シート1'!A489」のような形で参照し、下の行にコピペしました。また、日時でてこずらないよう、「 =SPLIT(A1," ")」を使用して、「March 23, 2020 at 06:43AM」を「March」「23,」「2020」「at」「06:43AM」に分割しました。

[ [分析用]シート 不要な 1-488行目を除外しました ]

各セルに参照を埋め込むことがあまりエレガントではないのではないかと思うようになり、[分析用2]シートも作成することにしました。

A1のセルに「=SORT(Importrange( シート名id, "シート1!A489:E2000"), 3, 1)」を書きました。

[ [分析用2]シート ソートの結果が残念! 0, 1, 10, 100, 101,... ]

C列のソートが文字列としてソートされてしまって残念な結果に。
今回はこの方法を見送りました。

とにかく前へ進んでみることにしました。
Tableauでの処理です。

[Tableau Desktop の画面]

よく見ると、右上に「フィルター0|追加」と書かれています。
「追加」を押してみると

[フィルターの[追加]を押してみたところ]

条件設定ができるようです。
ということは、ある程度、データの整理をした状態で、Tableauに持ち込むこともできそうです。

うまくいけば、[シート1]シートを元にフィルタが作れるかもと思い、チャレンジしてみましたが、結果は出ませんでした。日時フィールドに対して、複数のフィルタを持たせることができず、また、複数の条件を書く方法が見つからなかったため、断念しました。

ここは、仕方がない。[分析用]シートを取り込んで、処理を続けます。
ずっと気になっていた日時の表記。「March 23, 2020 at 06:43AM」のような文字列ですが、

Tableauでは、難なく日時として認識してくれました。

SPLITで分解する必要はありませんでした。

年に一回程度使うか使わないかのTableauですが、やはり使い方を忘れていました。思うようにデータを操作するまで、時間が掛かりました。

Tableauのコツは、「ドラッグ」です。表示したい項目をその場所まで、ドラッグしてやればよいのです。


これがなかなか思い出せませんでした。
ようやく、水分量、水分量の移動平均、給水ONになった日時をグラフ化できました。

[ワークシートの初期画面]

[日時を列へドラッグします]

[水分量を行へドラッグします]

[日時の単位を時間に設定します]

[水分量を行へ再度ドラッグし、移動平均のグラフを作ります]

[水分量を右クリックし、二重軸をチェックします。]

[このように一つのグラフにまとまりました]

[アナリティクスからリファレンスラインを選び、グラフにドロップします]

[給水の日時を設定します]

[Tableauでの画面]

[完成したグラフ]

さてここからが、本題のデータの分析です。

SALZは日に2~3回の水やりが不在時でも可能となる装置を目的にしています。
ところが、実験では水やりの頻度が3~4日になっています。
春先でまだあまり土が乾いていないのか。
用土が赤玉土オンリーのため保水性がよいのか。
日当たりがそれほど良くないので、乾きが遅いのか。
乾きの判定をシビアにしているので、カラカラに乾くまで待ち続けてしまっているのではないか。

考えられる原因はいくつか挙げられます。そのいずれでもあり、いずれでもない感じがいたします。

水分計のグラフを見ると、水分量の振れが0.7ぐらいの幅で発生しているようです。
このノイズを取り除くため、移動平均で変化を大観しています。気温変化や天候により、鉢の乾き方が変わってきていると思いますが、給水後、しばらく数値が安定した後、右肩下がりで減少しています。

嬉しいことにSALZは約一カ月間きちんと動作し続けました。

[obnizの制御を行っているスマホの画面]

モニタはエラーと警告のメッセージで埋まり操作はできませんが、この健気さがとてもいとおしい。このことがいちばんの収穫です。

この記事が気に入ったらサポートをしてみませんか?