見出し画像

SORACOM GPSマルチユニットとkintoneのノーコード連携〜kintoneアプリの活用例(データ判定〜通知編)

みなさんこんにちは。プロジェクト・アスノートの松田です。
サイボウズ公認 kintoneエバンジェリストをしています。
仕事は会社員と、kintone導入や業務改善の支援をしています。

はじめに

この記事は、2023年4月15日に開催された、kintone Café 広島 Vol.22でお話した内容をまとめた記事となります。

今回のkintone Café 広島では、SORACOM GPSマルチユニットから送信した、温度・湿度・位置情報(緯度・経度)・加速度のデータを、ノーコードでkintoneに連携するというハンズオンを行いました。

GPSマルチユニットをSORACOMで利用する方法から、Yoomを使ってkintoneにデータ連携を行う方法については、また別の機会に取り上げましょう。(イメージしてるより簡単にできますよ!)

この記事では、GPSマルチユニットのデータをkintoneに取り込んだ後、どのような活用ができるのか?ということについての検証を行ってみましょう。

まずはシンプルに見える化

kintoneにはグラフ機能があり、簡単なグラフであれば基本機能で作成することが可能です。

データをグラフで見える化するのは、何かを管理したいという目的があると思います。例えば、適切な温度管理を行いたい場合、管理上限値・下限値を設定して、グラフを書きます。それによって以下のような対応を行うことが考えられます。

  • 測定値が管理範囲に入っているのか?
    → 管理範囲を逸脱したら、何らかのアクションを取る

  • どのような傾向で推移しているのか?
     →管理範囲を逸脱する前に、何らかのアクションを取る

グラフの例(緑・赤:上限値・下限値)

パレート図を作ってみる

パレート図は、データの分布を分析するために使われるグラフです。
横軸はデータに応じた、階級(適切なデータの幅)ごとのデータ個数を縦棒グラフにすることで、データの分布を示すことができます。

GPSマルチユニットから送られてくるデータは、少数を含んだ値が記録されています。これを直接縦棒グラフにすると、下のように横軸に生値がずらりと並んだグラフになってしまい、データの分布が見えなくなりました。

kintoneでパレート図を作る場合、階級幅の設定が直接はできませんので、計算機能を用いて、数値を丸めることで、パレート図を表現することができます。

同じデータを使い、1℃単位で丸めた後

アプリの設定

ROUND関数で整数に丸める

2℃幅のパレート図

パレート図の階級幅を変えたいときはどうしましょうか。
2℃単位のパレート図を作ってみましょう。
今回は2℃単位で数値を丸める必要があるので、ちょっと工夫が必要です。
下の図のような計算を設定することで、2℃単位の数値丸めが可能となります。

管理値を外れたときに知らせてほしい

温度データを管理する例として、
上限:20℃、下限12℃ この範囲に入っていれば正常値
という前提を置きます。

折れ線グラフで表示すると、以下の図のように、2点ほど上限を超えているポイントがあることがわかります。

kintoneの通知機能

実際に継続的にデータを蓄積するシーンでは、このような管理値を外れたことを知らせてほしいことがよくあります(アラームを発生させる)。
kintoneでこれを実現するためには「通知機能」を活用することで実現できます。

kintoneの通知機能には、次の3つの種類があります。

アプリの条件通知
レコードが特定の操作をされたときに通知を送信します。
例:アプリにレコードが追加されたとき

レコードの条件通知
レコード内のデータが特定の条件を満たしたときに通知を送信します。
例:費用を入力する項目に、100万円以上の金額が入力されたとき

リマインダーの条件通知
レコード内の日時項目を基準にして、特定のタイミング(7日前、3日後など)に通知を送信します。
例:ToDoの期日を入力した項目の日にちを過ぎたとき

今回のデータは、1点のデータが1つのレコードとなっています。
ですから、「レコードの条件通知」によって、管理範囲を超えたことを通知することができそうです。

レコードの条件通知を設定する

まずは普通にレコードの条件通知を設定してみます。

シンプルなレコードの条件通知設定の例

この設定方法では、通知設定の中に直接、上限値と下限値を書き込んでいます。これではもし、レコード毎に管理値が違うような場合には対応できなくなります。
もっと汎用的に使えるように工夫してみます。

レコード側で上限値・下限値を外れたかどうかを判定しておきます。
そのためには、上限値・下限値をフィールドとして持っておくことが必要です。さっきの上限・下限が入った折れ線グラフもこうすることで表示が可能となります。

IF関数で判定している(管理値を超えたら1を表示)
通知設定では判定結果を通知条件とする

応用編1:不快指数

温度と湿度のデータがあるということは、不快指数を求めることもできそうです。

不快指数 DI (Tは乾球気温℃、Hは湿度%)
DI=0.81T+0.01H×(0.99T−14.3)+46.3
日本人では、不快指数75で約9%の人が、77で約65%の人が不快に感じるようです。

https://keisan.casio.jp/exec/system/1202883065

これをkintoneで算出させてみます。
不快指数アラートを出したい場合も、これまで説明した機能を使うことで応用可能ですね!

不快指数の計算式

kintone Café当日のkintoneに連携記録されたデータになります。
気温はゆっくりと上昇、湿度は後半下がってきています。

このときの不快指数の推移は
実は不快指数はどんどん上昇してきているという結果となりました。
温度と湿度の数字のイメージとはちょっと違っていますね!
こうしてKPIとして管理することで、体感では気づかなかったことが見えてくることもありますね!

応用編2:位置の判定

同様の考え方で、緯度・経度を元に位置の判定を行うこともできそうです。
GPSマルチユニットで測定できるのは、その場所の「緯度・経度」です。
ある位置の範囲に入ってきた時を判定するためには、緯度経度の範囲を決めてやる必要があります。Googleマップで調べてみましょう。

左上:34.40863, 132.44631
左下:34.40847,132.44598
右上:34.40863, 132.44631
右下:34.40847, 132.44598

Google Mapで緯度経度を調べた

これをkintoneのアプリに持たせるようにします。
そして、この範囲内に入ってきたときに判定できるような計算式をセットしました。

緯度経度が範囲内であることを判定する計算式

判定結果のイメージです。

位置判定:1のところが範囲内

アラームを出したいときは、この判定結果「位置判定」1を条件とした、レコードの条件設定を使えばいいということですね。

まとめ

kintoneはWebデータベースという側面もありますが、それはkintoneの特徴である
①データベース
②業務プロセス
③コミュニケーション
の1つということですね。

kintoneをデータベースとして活用する際は、実際の業務の中でそれをどのように活用していくか? 業務プロセスの中にどのように組み込んでいくか?という点にも注目して考えるとよいと思います。

今回紹介した、グラフ機能、アプリ内の計算機能、通知機能、これらを組み合わせることで、業務の中でさまざまな活用を行うことができるようになります。

さいごに

kintone活用・業務改善の情報発信をYouTubeで行っています。
毎週日曜夜22時から、ライブ配信もありますので、
チャンネル登録よろしくお願いします!


いただいたサポートは、今後とも有益な情報を提供する活動資金として活用させていただきます! 対価というよりも、応援のキモチでいただけたら嬉しいです。