見出し画像

盆栽計測装置「Bonsai Dock」作り込めるか? ~製作日誌2-盆カンへのつなぎ込み~

はじめに

盆栽計測装置「Bonsai Dock」はM5stack Japan Creative Contest 2024に出品した後、装置を稼働させながら、数値を取り続けておりました。
実際に使用しながら作り込み、そしてさらなる改良を目指しています。

今回はM5DialとGoogleスプレッドシートとAppSheetをつなぐお話です。

盆カンへのつなぎ込み

Bonsai Dockの完成時点では、Googleスプレッドシートの数値を表示するだけでした。もう少し作り込んでみたいと思います。

盆カン側でやりたいことはICタグのidから盆栽鉢idを取得し、それぞれの盆栽鉢の重さを管理することです。どこで何を管理するか。ここがシステムのキモです。

AppSheetで処理しやすいように、各項目名を再度見直しました。例えば「uid」などとしています。Bonsai Dockから送出されるデータをGASを使って、GoogleSpreadSheetで受け止めます。このGASを書き換えるたびにデプロイを行い、新しいURLを取得します。

GASの画面
デプロイの状況(今一つ理解できていません)
「Bonsai Dock」から飛んでくるデータ

ファイル名はTestのままですが、このデータはAppSheetで利用可能になっています。

あとはうまく組み合わせるだけです。

シート「ICタグM」


ICタグ
こんな感じでぶら下げます

これらの情報をもとに作り込みをしていきます。
ただ、ここで再びつまづきました。ぼんやりとやりたいことは見えています。

盆栽カルテに重量変化グラフを追加したい。

ただ、これを形にするまでに数日かかりました。
色々忘れていて、何をどこで追加すればよいのかが、全く見えてきません。

ノーコードのデメリットをここで垣間見た気がします。
一度作り上げてしまうと、中身のことを忘れてしまいます。
試行錯誤しながら、作り上げたものを見返してもあまり思い出せません。

「REF」をうまく使ってやる必要があるのですが、この部分の詳細が見えてこないでごにょごにょしていました。

数日悩んで、ようやく解決できたと思います。テーブル「BonsaiDock」にVirtual Column「盆栽鉢ID」(REF型)を追加しました。

App formula:

TEXT(
	TOP(
		SELECT(ICタグM[盆栽鉢ID],
				[uid] = [_THISROW].[uid]
		),1
	)
)

これができるとあとはスラスラ処理できます。

メニューに「ICタグマスタ」、「BD情報」、「BDグラフ」を追加しました


ICタグマスタ(データ移行中です)
Table: ICタグM

ICタグのID「uid」と「盆栽鉢id」を紐づけるマスタテーブルです。現在、データの移行中で元のuidに「O-」を付けています。(理由は次回以降の記事でご紹介いたします。)専用のデータベースではなく、Googleスプレッドシートをベースにしているので、簡単に書き換えができます。趣味で作るデータベースでこの柔軟性がとても良いと思っています。

半面、実務で考えるとちょっと危うい。と思います。


BD情報
Table: BonsaiDock


BonsaiDock : 盆栽鉢ID (virtual)


App Formula for column 盆栽鉢ID (Ref)

ここが今回の一番のキモです。

DBグラフ

すべての鉢の情報が混在しているため、この情報自体にはあまり意味はありません。

ただこれができたということは、盆栽鉢IDでフィルタリングすることで、盆栽鉢IDごとのグラフもできるということになります。

盆栽カルテのBonsaiDock一覧ーこれがやりたかった!!
Table: 盆栽鉢T


盆栽鉢T : BonsaiDock一覧 (virtual)

盆栽カルテの中にBonsaiDock一覧という項目を追加しました。この機能により、その盆栽の重量測定結果をグラフにすることができました。

Bonsai Dockが機能し始めた第一歩です。

さいごに

今回はここまで。

少しずつ便利になる装置を見ながら、さらなるアイデアがわいてきます。
原稿を書いているとどんどん膨らむので、ひとつずつ分けて投稿することにいたします。

最後までお読みいただき誠にありがとうございました。次回もお楽しみに。

#M5Dial
#BonsaiDock
#盆カン
#盆栽
#AppSheet
#REF
#GAS

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