お問い合わせ
トップ » SORACOM IoT DIY レシピ » IoTでアイスの食べ時をお知らせ

SORACOM IoT レシピ:IoTでアイスの食べ時をお知らせ

 

IoT でアイスの食べ時をお知らせ

公開日: 2020年7月

レシピ難易度:★☆☆☆☆

アイスクリームの食べ方の一つに「とろけ食べ」という溶け始めを楽しむ方法があります。しかし、溶け始めを待っていると「忘れてしまうという問題」がありますが、本レシピは IoT によって溶け始めを感知し、確実に「溶け始めのアイスクリーム」を楽しめる方法を作ります。

溶かす方法ですが、今回は室温における常温解凍の具合をセンシングします。何度か試したところ、私のところではアイス底面にてセンサーの温度が 18.5℃~17.5℃ を下回ると下図のように周辺が溶けた状態になるため、中心部と混ぜ合わせる事で程よい溶け具合となります。

底面での温度が目標に達するまでには室温状況に左右するため、時間ではなく温度センサーにて計測し、目標に達したら下図のような通知を送る仕組みとなっています。

使用する SORACOM サービス

本レシピに連動した動画も公開しています。

https://www.youtube.com/watch?v=PImaaIFqEDc

本レシピを行うのに必要な時間、概算費用

本レシピは以下の通りです。

  • 必要な時間: 約70分
  • 概算費用: 約12,500円

※ 概算費用: ハードウェアや SORACOM を始めとした各種サービスの概ねの費用 (送料などの付帯費用や無料枠適用は考慮しないものとしています)

このコンテンツの進め方

上から内容を読み進みながら作業を行なっていきます。また左サイドに追従する目次からページ内の移動が可能です。

本コンテンツは現状のままで提供され、株式会社ソラコムは、誤りがないことの保証を含め、明示であると黙示であるとを問わず、本コンテンツの記載内容につき、いかなる種類の表明も保証も行いません。

掲載情報の閲覧及び利用により、利用者自身、もしくは第三者が被った損害に対して、直接的、間接的を問わず、株式会社ソラコムは責任を負いかねます。

本コンテンツを実践する中で用意された機器、利用されたサービスについてのご質問は、それぞれの機器やサービスの提供元にお問い合わせをお願いします。機器やサービスの仕様は、本コンテンツ作成当時のものです。

株式会社ソラコムが提供する機器・サービスについてのご質問はフォームで受け付けております。機器・サービスご利用前の導入相談は https://soracom.jp/contact/ に、機器・サービスご利用開始後のサポートは、SORACOMユーザーコンソール内のサポートサイトから「リクエストを送信」(要ログイン)にてお問い合わせください。

Copyright (c) 2023 SORACOM, INC.

準備

本レシピを行うためには以下のものをご用意ください。

ハードウェア

品名 数量 価格 備考
GPSマルチユニットSORACOM Edition(バッテリー内蔵タイプ)スターターキット 1 12,100円 キットの中には以下のものが含まれています。
・GPS マルチユニット SORACOM Edition 本体 x 1台
SORACOM 特定地域向け IoT SIM (plan-D ナノサイズ) x 1枚
・microUSB ケーブル x 1本
パソコン 1 インターネット接続が可能でサイトへの接続が自由であること。 Google Chrome 等の最新ブラウザーが利用可能な事。
(必要な方のみ)   USB 型 AC アダプタ GPS マルチユニット SORACOM Edition の充電に利用します。パソコンからの給電でも代用可能です。

※ 金額はレシピ作成時となります。金額は税込み・送料別です。

ご購入について

ハードウェアは以下よりご購入いただけます。

その他必要なもの

必要なもの 費用 作成方法など
SORACOM アカウント 無料※ SORACOM アカウントの作成 (JP)

※ アカウント作成・維持の費用の料金です。

設置に利用したもの

本レシピで設置時に利用した部材です。必須ではありませんがご参考にお使いください。

品名 数量 備考
ティッシュ 1 1枚あれば十分です。GPS マルチユニット SORACOM Editionが濡れないようにするためのカバーとして使います。

GPS マルチユニットが届いたら

GPS マルチユニットは SIM を挿入することでセルラー通信(LTE-M)を通じて、クラウドと連携できるようになります。そのため、まず GPS マルチユニットに同梱されている SIM を SORACOM へ登録をしましょう。
※ すでに登録済み、もしくは登録済みの別の SIM を利用する場合は次へお進みください。

登録の方法は発注済みの SIM を登録する(JP)をご覧ください。約5分で完了します。

登録が完了すると SIM 管理の一覧に表示されますので、確認ください。

SIM を GPS マルチユニットに取り付ける

SORACOM 特定地域向け IoT SIM (以下 SIM) をカードから切り離し、GPS マルチユニットの側面に挿入します。

GPS マルチユニットの側面を開け、SIM トレイ (赤色) を取り出す。

爪で引っ掛けるようにして取り出します。

SIM を SIM トレイに乗せる。

SIM トレイに収まるように SIM を乗せます。SIM の方向に気をつけてください。また、SIM トレイは無くさないようにしてください。

SIM トレイごと GPS マルチユニットに挿入する。

元々入ってた向きで SIM トレイごと SIM を GPS マルチユニットに挿入します。このとき、SIM トレイから SIM が飛び出ないように気をつけてください。

最後に側面を閉じて終了です。

GPS マルチユニットに挿入した SIM の IMSI (クレジットカードサイズのカードの裏面に記載されている 15 桁の番号) を使用しますので、すぐ取り出せるようにしておいてください。

ここでの作業は動画 (約1分) でもご覧いただけます。

https://www.youtube.com/watch?v=OmOoXtNY4jQ

GPS マルチユニットの設定を行う

GPS マルチユニットの設定は SORACOM ユーザコンソール上で行います。

SORACOM ユーザーコンソールにログインした後[Menu]>[ガジェット管理]>[GPS マルチユニット]とクリックします。

GPS マルチユニット管理画面が表示されます。ここには、GPS マルチユニットとして利用しているSIM一覧が表示されます。初めて利用する場合は「データが見つかりません」と表示されますが、正常です。

[新規デバイス設定]をクリックします。

GPS マルチユニットに挿入した SIM にチェックをつけてから[次へ:グループを選択]をクリックします。

複数 SIM を持っている場合は IMSI で見つけ出すようにしてください。
※図では「名前」を登録してあるため、見つけやすくなっています。

“新規グループを作成” をクリックし、グループ名入力してから[次へ:設定を編集]をクリックします。

グループ名は任意です。日本語も利用可能です。ここでは「GPSマルチユニット」としています。

GPSマルチユニットの設定を行います。

送信内容

「温度」のみにチェックがついているようにします。(位置情報、湿度のチェックは外します)

送信先

「SORACOM Harvest (Lagoon)」 にチェックをつけます。

送信モード

「定期送信 ― 手動モード」にチェックをつけます。

定期送信 ― 手動モード 詳細設定

送信間隔を 1 と入力します。

ここまで入力が完了したら、最後に[保存]をクリックします。

すると以下のダイアログが表示されるので[デバイス一覧に戻る]をクリックします。

GPS マルチユニット管理画面に戻りますが、先ほど設定した SIM が一覧に表示されていることが確認できます。

設定を GPS マルチユニット本体に反映させる。

GPS マルチユニットのファンクションボタン(本体表面の四角のボタン)を1秒ほど押します。すると LED が緑色に点灯します。

GPS マルチユニット本体から SORACOM に保存されている設定情報を取得して設定が反映されます。また、設定が反映された GPS マルチユニットは新たな設定で動き続けるようになります。

以上で GPS マルチユニットの設定は終了となります。

SORACOM Harvest Data で設定の確認を行う

SORACOM Harvest Data を利用して、設定が正しく反映されているか確認します。

GPS マルチユニット管理画面で、先ほど設定したSIMにチェックを付けて[データを確認]をクリックします。

SIM 管理画面からチェックをつけて[操作]>[データを確認]でも同様のことができます。

以下のようにグラフが確認できます。SORACOM Harvest Data の操作として、画面左側のグラフ種類を選んだり、画面中央の「自動更新」で自動的に新たなデータを表示できます。

「temp(温度)」「rs(電波強度)」「bat(電池残量)」「type(送信モード)」の 4つの値が1分間隔で送信されていれば、設定成功です。

rs, bat, type について
これらの値は必ず送信されてくるようになっています。値の意味についてはGPS マルチユニット SORACOM Edition 機能の説明をご覧ください。

SORACOM Lagoon でダッシュボードを作成する(有効化まで)

SORACOM Harvest Data に蓄積されたデータを SORACOM Lagoon で活用していきます。

SORACOM Lagoon 用語解説

ここで SORACOM Lagoon で使われる用語を解説します。

用語 意味
プラン SORACOM Lagoon の契約プランです。プランによって機能と料金が異なり、今回は無料の Free プランを利用します。SORACOM Lagoon のご利用料金に機能や料金の比較表があります。
SORACOM Lagoon ユーザー(Lagoon ユーザー) SORACOM Lagoon へログインするためのユーザー( ID とパスワードの組)です。
SORACOM ユーザコンソールへのログインとは異なるユーザ一覧となり、皆さん自身で登録・削除が可能です。ダッシュボードやパネルを編集できる「編集可能」と表示専用の「読み取り」の2段階の権限を設定できます。作成可能数はプランによります。
リソースの種類 表示するデータの種別です。SORACOM Lagoon では以下の4つの中から選び、その中からノード(SIMや回線)を選択します。
・Air = SORACOM Air for セルラー (SORACOM IoT SIM)
・Lora = SORACOM Air for LoRaWAN デバイス
・Sigfox = SORACOM Air for Sigfox デバイス
・Device = SORACOM Inventory デバイス
今回はSIMなので、「Air」の SIM を選択します。
パネル (Panel) パネルはデータを表示する領域です。データソースとメトリクスを指定すると、そのメトリクス(たとえば SIM )のデータをパネルで使えるようになります。様々なパネルが存在します。
ダッシュボード (Dashboard) 複数のパネルを束ねて「1枚の画面」にしたものがダッシュボードです。共有の画面表示単位となります。
アラート (Alert) リソースのメトリクスデータに対して条件を設定し、その条件を満たしたら通知を行う仕組みの事です。
データリフレッシュ SORACOM Harvest から SORACOM Lagoon へデータが反映される事、もしくは反映タイミングとなります。反映タイミングはプランによります。

SORACOM ユーザーコンソールの[Menu]>[データ収集・蓄積・可視化]>[SORACOM Lagoon]とクリックします。

[SORACOM Lagoon の利用を開始する]をクリックします。

プランのうち Free の[選択する]ボタンクリックし、[次へ]をクリックします。

SORACOM Lagoon ユーザーの初期ユーザーに設定するパスワードを入力した後、[利用開始]をクリックします。

SORACOM Lagoon ユーザーの初期ユーザの ID は?
ID は SORACOM ユーザコンソールにログインしたときのメールアドレスが使われることになります。そのため、ここではパスワードのみ設定することになります。SORACOM ユーザコンソールへのログインとは異なるパスワードを設定する事を強くお勧めします。

利用開始がクリックできない場合は?
パスワードの条件が不足しています。全てに✔がつくようにパスワードを設定してください。

SORACOM Lagoon の有効化に成功すると、以下のように SORACOM Lagoon コンソールへのリンクと、Lagoon ユーザーの一覧が管理できるようになります。この画面を SORACOM Lagoon 管理画面と呼びます。

SORACOM Lagoon 管理画面は [Menu]>[データ収集・蓄積・可視化]>[SORACOM Lagoon]で表示する事ができます。

[Lagoon コンソール]ボタンをクリックし SORACOM Lagoonコンソールを表示します。

SORACOM Lagoon でダッシュボードを作成する(SORACOM Lagoon へのログインまで)

メールアドレス (SORACOM ユーザコンソールへログインする際のメールアドレス) と、SORACOM Lagoon 初期ユーザ作成時に利用したパスワードでログインします。

ログインに成功すると、以下のような画面が表示されます。これが SORACOM Lagoon ログイン直後の画面です。ここから「ダッシュボード」や「パネル」を作成していきます。

SORACOM Lagoon でダッシュボードを作成する(アラートの作成まで)

通知先を設定します。

アラートアイコンにカーソルを乗せると表示される「Alerting」メニューから[Notification channels]をクリックします。

[Add channel]ボタンをクリックします。

「New notification channel」画面では以下の通りに入力します。

項目 内容 備考
Name email 任意の名称で構いません。
Type Email
Addresses 通知の送付先メールアドレス ; で複数指定が可能です。

入力し終わったら[Save]をクリックします。

[送信テスト]について
保存の前に[Test]ボタンにてテストが行えます。テストを行うと以下のようなメールが届きますので、確認にご利用ください。

また、メールが届かない場合の確認ポイントは以下の通りです。
・メールアドレスが正しいこと
no-reply@soracom.jp からのメールが迷惑メールに判定されてないこと、もしくは受信フィルタで拒否されていないこと

以下のように表示されていれば成功です。

SORACOM Lagoon でダッシュボードを作成する(ダッシュボードのインポートまで)

あらかじめ設定が済んでいるテンプレートを使って、ダッシュボードを作成します。

ダッシュボードアイコンにカーソルを乗せると表示される「Dashboards」メニューから[Manage]をクリックします。

[Import]をクリックします。

[Import via panel json]のテキストフィールドへ、下記のテキストを入力(貼り付け)ます。

貼り付けたら[Load]ボタンをクリックします。

貼り付けるテキスト (JSON)

 
{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "gnetId": null,
  "graphTooltip": 0,
  "id": 2050,
  "links": [],
  "panels": [
    {
      "alert": {
        "conditions": [
          {
            "evaluator": {
              "params": [
                17.5
              ],
              "type": "lt"
            },
            "operator": {
              "type": "and"
            },
            "query": {
              "params": [
                "A",
                "5m",
                "now"
              ]
            },
            "reducer": {
              "params": [],
              "type": "last"
            },
            "type": "query"
          }
        ],
        "executionErrorState": "alerting",
        "frequency": "60s",
        "handler": 1,
        "message": "アイスが食べごろかもしれません!",
        "name": "Panel Title alert",
        "noDataState": "no_data"
      },
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": null,
      "fill": 1,
      "gridPos": {
        "h": 12,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 2,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
      ],
      "thresholds": [
        {
          "colorMode": "critical",
          "fill": true,
          "line": true,
          "op": "lt",
          "value": 17.5
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "底面温度",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    }
  ],
  "refresh": "1m",
  "schemaVersion": 16,
  "style": "light",
  "tags": [],
  "templating": {
    "list": []
  },
  "time": {
    "from": "now-15m",
    "to": "now"
  },
  "timepicker": {
    "refresh_intervals": [
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "time_options": [
      "5m",
      "15m",
      "1h",
      "6h",
      "12h",
      "24h",
      "2d",
      "7d",
      "30d"
    ]
  },
  "timezone": "",
  "title": "アイスクリームの食べごろ"
}

Load をクリックすると “Unexpected end of JSON input” と表示される
テキストが上手く入力できていない場合はと表示されます。

貼り付けたテキストを見直すようにしてください。

Options では以下のようになっていることを確認します。

項目 内容
Name アイスクリームの食べごろ
Folder General

確認できたら[Import]ボタンをクリックします。以下のように表示されていれば成功です。

SORACOM Lagoon でダッシュボードを作成する(パネルの編集まで)

画面に表示されるパネルのタイトル[底面温度]をクリックし[編集]をクリックします。

“Query” タブでノード(= SIM) をクリックし、GPS マルチユニットに紐づいている SIM を選びます。

選んだ時点では全データが表示されるので、データの項目リストをクリックして [temp]を選択します。

これで画面には温度(temp)のみ表示されるようになりました。

続いて、先ほど設定した通知先にアラートを紐付けます。[Alert]タブをクリックし[Notifcations]にある「Send to」の項目右のをクリック、先ほど作成した通知先 (例に沿っているなら email)を選択します。

通知温度を変更したい場合は?
アラートの「Conditions」で変更します。今回テンプレートとして設定しているのは17.5 ℃を下回ったらアラート発動としています。そのため IS BELOW 17.5 となっている部分を変更することで条件が変えられます。

以上で全ての設定が終了です。

SORACOM Lagoon でダッシュボードを作成する(ダッシュボードの保存)

画面右上の[Apply]ボタンをクリックしパネルの編集を終了します。画面右上のをクリックすることでこれまでのダッシュボードの作業を保存できます。

[Save]で保存します。

アイスクリームの底面温度を計測する

準備が整いましたので、実際にアイスクリームの底面温度を計測します。

計測前の注意点
計測に当たっては以下の点についてご注意ください。

・GPS マルチユニット SORACOM Edition は防水ではありません。そのため「アイスクリーム容器の表面を拭いておく」そして「ティッシュペーパー等をかぶせて濡れないようにする」ことです。ただし、あまり厚手のモノをかぶせると温度計測ができなくなるため、そこも注意が必要です。

・溶かしすぎないように初回は必ず様子を見てください。

緑色の枠が温湿度センサーの窓になっています。ここにアイスクリームの底面が当たるように乗せる事になります。

水分対策としてティッシュペーパーで覆いました。

以下が実際にアイスクリームを乗せている様子です。今回利用したアイスクリームは小さめという事もあり、縁を回避するような形で底面がセンサー部に密着できるようずらしています。

SORACOM Lagoon で可視化&通知

実際の様子を見てみます。以下のように乗せた後から温度が下がり始めている様子が可視化されます。

また、設定温度である 17.5 ℃ を下回ると画面上でもアラートを見ることができます。

この時メールにも以下のように届いていることが確認できます。

私の環境では以下のように食べごろとなりました。

温度について
今回のレシピでは「マカダミアナッツ」「グリーンティー」「リッチミルク」「キャラメルホリック」の4種類で試しましたが、概ね 18℃~17℃ の間となりましたが、種類によっては異なる場合があります。また外気温や好みの問題もありますので、高めの温度 (= 下降曲線の初めの方) に条件を設定するのも検討ください。

あとかたづけと注意事項

本レシピでは費用がかかるサービスを利用しています。
本項をよく読み、必要な操作や解除作業を行うようにして、想定外の費用が掛からないようにしてください。

費用について

ここで記載している金額は全て税込み、送料別となります。

SORACOM プラットフォームの利用料金

サービス/機能 料金
SORACOM Air (plan-D) 基本料: 11円/日通信料: 0.22円~/MB(今回の利用であれば 1MB 以内で収まる範囲)
SORACOM Harvest Data 本機能を有効にしたグループに所属する1SIMあたり5.5円/日 (2000リクエスト/日/SIMを含む)2000リクエスト/日を超えた分は0.0044円/リクエスト
SORACOM Lagoon 今回は Free プラン(無料)を使用しました。

※ 費用詳細はリンク先をご確認ください。

無料利用枠について
SORACOM サービスでは一部サービスにおいて無料枠が設定されています。たとえば SORACOM Air for セルラーであればアカウント毎で30円/月の通信分や、SORACOM Harvest Data であれば31日分の書込みリクエストなどです。料金詳細に「無料利用枠」として掲載されていますので、ご確認ください。

グループ解除

SORACOM Harvest Data 等、「機能が有効になっているグループに所属している SIM × 費用」となっているサービスにおいては、「機能を OFF にする」することで費用の発生を抑えることができます。またもう1つの方法として「グループに所属している SIM の数を減らす(= 解除する)」事でも費用を抑える事ができます。

グループ解除の方法はグループからの解除 (JP)をご覧ください。

SORACOM Harvest Data のデータ削除

SORACOM Harvest Data は基本的にはデータ保管料は無料※です。そのため、保存しておいても害はありませんが、デモ等で利用する際にはデータを綺麗にしておく必要が出てくるため、データ削除について解説します。

※発生から40日を超えたデータは削除されます。40日以上データを保管したい場合はデータ保持期間延長オプション利用料金をご利用ください。

SORACOM Harvest Data 画面 ([操作]>[データを確認]) のデータテーブルで、削除したいデータのチェックボックスを付けた後に[削除]をクリックします。表示されたダイアログで改めて[削除]をクリックすると、削除されます。
※ 複数のデータにチェックをつければ一括で削除可能です。

データの復元はできませんのでご注意ください。

SORACOM Lagoon の解約

SORACOM Lagoon はオンラインで解約が可能です。 Free プランであれば有効化しておいても費用は発生しませんが、長期に渡って利用しない場合には解約も選択いただけます。

解約の方法はSORACOM Lagoon の解約(JP)をご覧ください。

次のステップ

本レシピでは、センサーや電源の事を考えなくとも利用可能なデバイスで、「簡単に現場のデジタル化」を実現しました。SORACOM Lagoon を活用すれば、アプリケーション開発の手間も減らすことができるため、「IoT の全体像を知りたい」といった方にも向いているかと思います。

商品ページへ戻る

よくあるご質問はLet’s try IoT プロトタイピング ~ 健康管理や肌の乾燥を防ぐ仕組みを作ろう 〜 動画とQAのご紹介でご案内しています。こちらもご覧ください。

SORACOM IoT DIY レシピ »

レシピの達成、おめでとうございます!

達成したことをTwitterで呟く

普段の生活やビジネスに役立つ #IoTレシピ 「IoTでアイスの食べ時をお知らせ」 を達成しました!
@SORACOM_PR https://soracom.jp/recipes_index/3830


ご質問などはこちらよりお問い合わせください。