お問い合わせ
トップ » SORACOM IoT DIY レシピ » IoTでコーヒーカップの取り忘れを通知

SORACOM IoT レシピ:IoTでコーヒーカップの取り忘れを通知

M5Stack と 3G 拡張ボードで作る「コーヒーカップ取り忘れお知らせデバイス」

公開日: 2020年6月、更新日: 2020年12月

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

LCD付きプロトタイピング向けマイコンキット “M5Stack” にモバイルデータ通信機能を加える “3G 拡張モジュール” を組み合わせて、コーヒーマシンに置き忘れたカップをメールでお知らせしてくれるデバイスを作ります。

全体の構成

使用する SORACOM サービス

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

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

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

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

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

このコンテンツの進め方

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

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

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

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

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

Copyright (c) 2023 SORACOM, INC.

準備

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

ハードウェア

品名数量価格備考
M5Stack Basic 3G 拡張ボード セット112,980円セットの中には以下のものが含まれています。それぞれを個別に準備しても構いません。
・M5Stack Basic x 1台
M5Stack 用 3G 拡張ボード x 1台
※注意: M5Stack 用 3G 拡張ボードが対応している M5Stack は Basic と Gray の2モデルです。M5Stack FIRE は非対応ですのでご注意ください。
SORACOM 特定地域向け IoT SIM (plan-D ナノサイズ)1844.8円M5Stack用3G拡張ボードが対応しているSIMサイズはナノサイズです。金額は1枚あたりで、決済時に商品の合計金額が1円未満の金額については繰り上げとなります。
対辺1.5mm 六角レンチ(ドライバー)1約300円M5Stack 用 3G 拡張ボードへ SIM を挿す際にボードの取り付け・取り外しに使用します。
M5Stack用ToF測距センサユニット1約1,200円光を利用した距離センサーです。取り付け用の Grove ケーブルが1本添付されています。
開発用パソコン1Arduino IDE と M5Stack 開発環境が整っていること。セットアップ方法は 【SORACOM ハンズオン】M5Stack 開発環境セットアップ (Windows / macOS 共通) (全体で約90分) をご覧ください。
(必要な方のみ)USB 変換アダプタ1パソコンに USB Type-A ポートがない場合に準備してください。1A 以上の電力が供給できるものを利用してください。(USB 3.0以上に対応していれば概ね安心です)
(必要な方のみ)USB Type-C ↔ Type-C ケーブル1パソコンに USB Type-A ポートが用意できず、また、USB 変換アダプタも用意できない場合に準備してください。

※ 金額はレシピ作成時となります。金額は税込み・送料別です。その他は参考価格となります。

ご購入について

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

ご購入先にはSORACOM IoT ストア以外のショッピングサイトも含まれています。ご購入先や在庫、動作保証をするものではありませんのでご留意ください。

その他必要なもの

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

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

設置に利用したもの

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

品名数量備考
コーヒーマシン1今回はネスカフェ ゴールドブレンドバリスタ i[アイ]を利用しました。
USB 型 AC アダプタ1M5Stack への電源供給用です。1A以上供給できるものが望ましいでしょう。
USB Type-C ケーブル1M5Stack への電源供給用です。
両面テープToF 距離センサーの固定用です。

M5Stack 用 3G 拡張ボードに SIM を取り付ける

M5Stack 用 3G 拡張ボード(以下、3G拡張ボード)には SIM スロットが備わっており、ここに SIM を入れることで 3G 通信が可能となります。 SIM の取り付け・取り外しは 3G拡張ボードをケースから取り外す必要があります。

3G拡張ボードをケースから取り外す

3G拡張ボードの四隅にあるネジを取り外します。ネジは紛失しないようにしてください。

SIM を取り付ける(取り外し方法含む)

SIM のサイズは nano です。取り付けはSIMをスロットに挿入したら「カチッ」と音が鳴るまで押し込みます。音が鳴ったら完了です。取り外しはSIMを奥まで押し込み「カチッ」と音が鳴ればSIMが出てきますので取り外しできます。

3G拡張ボードをケースに取り付ける

再度3G拡張ボードをケースに取り付けます。取り付け向きはピンが外側 (ケースから飛び出るように) します。逆向き (ピンがケースの内側を向いてしまっている) には取り付け内でください。

最後はネジで固定します。

M5Stack ボードの取り付け向き
M5Stack は正方形であるためボードとケースの取り付け方角がわかりづらいのですが、ボード上のピン(M5-BUS と呼ばれる)の辺と、ケース側面の切れ込みの辺を合わせるようです。

重ねる

取り付け終わったら一番下から「BOTTOM」「3G拡張ボード」「Core※」と重ねていきます。

※ Core = M5Stack の LCD(モニター)やボタンがついているモジュール

以上で3G 拡張ボードへの SIM 取り付け作業は完了です。

SORACOM Air を利用してセルラー通信をしてみる

3G 拡張ボードを使って SORACOM Air によるセルラー通信を行い、3G 拡張ボードの動作確認を行います。

セルラー通信ライブラリのインストール

3G 拡張ボードで利用できる通信ライブラリをインストールします。今回は TinyGSM というオープンソースライブラリを利用して、世界時計を M5Stack で表示してみます。

Arduino IDE を開き、[スケッチ]>[ライブラリをインクルード]>[ライブラリを管理…]をクリックします

※ 画面は macOS ですが、Windows も同様です。

“TinyGSM” をインストールする

ライブラリマネージャの一覧から TinyGSM (by Volodymyr Shymanskyy) を選んで[インストール]をクリックします。

バージョンはインストール時における最新バージョンを選んでください。

インストールが終了したら[閉じる]をクリックします。

“TinyGSM” を簡単に探し出す方法
検索用のテキストボックスへ tinygsm と入力すると素早く見つけることができます。

World Time API を取得して表示するスケッチ

動作テストを兼ねて世界時計を API で提供している World Time API から日時を取得して表示します。

ブラウザで試してみるには?
World Time API を始めとした、いわゆる Web API はブラウザでも実行できることがあります。今回の World Time API であればブラウザで http://worldtimeapi.org/api/timezone/Asia/Tokyo.txt を開いてみると、API で取得できる値をブラウザで表示できます。

Arduino IDE を起動し[ファイル]>[新規ファイル]を開くと void setup() { から始まる「空のスケッチ」が表示されます。

一度スケッチの内容を削除してから、後述のスケッチで置き換えてください。

m5stack_3gextboard_worldclock.ino

/*
 * Copyright (c) 2020 SORACOM, INC.
 * Released under the MIT license
 * https://opensource.org/licenses/mit-license.php
*/
#include <M5Stack.h>

#define TINY_GSM_MODEM_UBLOX
#include <TinyGsmClient.h>

TinyGsm modem(Serial2); /* 3G board modem */
TinyGsmClient ctx(modem);

void setup() {
  M5.begin();
  M5.Lcd.clear(BLACK);
  M5.Lcd.setTextColor(WHITE);
  M5.Lcd.println(F("M5Stack + 3G Module"));

  M5.Lcd.print(F("modem.restart()"));
  Serial2.begin(115200, SERIAL_8N1, 16, 17);
  modem.restart();
  M5.Lcd.println(F("done"));

  M5.Lcd.print(F("getModemInfo:"));
  String modemInfo = modem.getModemInfo();
  M5.Lcd.println(modemInfo);

  M5.Lcd.print(F("waitForNetwork()"));
  while (!modem.waitForNetwork()) M5.Lcd.print(".");
  M5.Lcd.println(F("Ok"));

  M5.Lcd.print(F("gprsConnect(soracom.io)"));
  modem.gprsConnect("soracom.io", "sora", "sora");
  M5.Lcd.println(F("done"));

  M5.Lcd.print(F("isNetworkConnected()"));
  while (!modem.isNetworkConnected()) M5.Lcd.print(".");
  M5.Lcd.println(F("Ok"));

  M5.Lcd.print(F("My IP addr: "));
  IPAddress ipaddr = modem.localIP();
  M5.Lcd.print(ipaddr);
  delay(2000);
}

void loop() {
  M5.update();

  M5.Lcd.clear(BLACK);
  M5.Lcd.setCursor(0, 0);
  M5.Lcd.println(F("World Clock from worldtimeapi.org"));

  /* HTTP GET example */
  if (!ctx.connect("worldtimeapi.org", 80)) {
    Serial.println(F("Connect failed."));
    return;
  }
  Serial.println(F("connected."));

  /* send request */
  ctx.println("GET /api/timezone/Asia/Tokyo.txt HTTP/1.0");
  ctx.println("Host: worldtimeapi.org");
  ctx.println();
  Serial.println("sent.");

  /* receive response */
  while (ctx.connected()) {
    String line = ctx.readStringUntil('\n');
    Serial.println(line);
    if (line == "\r") {
      Serial.println("headers received.");
      break;
    }
  }
  char buf[1 * 1024] = {0};
  ctx.readBytes(buf, sizeof(buf)); /* body */
  ctx.stop();
  M5.Lcd.println(buf);

  delay(1000 * 10);
}

マイコンボードに書き込む

M5Stack を PC に取り付けた後、Arduino IDE でボタンをクリックします。ボードへの書き込みが完了しました。と表示されたら正常終了です。

ファイルの保存ダイアログが表示されたら
ファイルを保存してください。ファイル名は任意ですが m5stack_3gextboard_worldclock というファイル名はどうでしょうか。
ファイルを保存しない (キャンセル) してもコンパイルとスケッチの転送はされます。

実行の様子

最初にモデムの型番や IP アドレスを表示した後に World Time API から取得したデータを表示します。

gprsConnect(soracom.io) から実際に IP アドレスが表示される(= 接続される)までに30~45秒程度掛かりますが正常です。

うまく動作しなかった場合

症状考えられる原因対策
getModemInfo() の結果が SARA-U201... と表示されない(空の場合など)3G 拡張ボードで内部エラーが発生している可能性があるカスタマーサポートへご連絡ください。
waitForNetwork() より先に進まない電力が不足しているUSB Type-C ケーブルを別のものに変えてみてください。
SIM が取り付けられていない。(もしくは SORACOM IoT SIM ではない)SORACOM 特定地域向け IoT SIM plan-D を取り付けてください。
電波が圏外もしくは微弱である可能性がある窓際等、通信条件が良い環境でお試しください。
SIM が SORACOM に登録されていない※ SORACOM ユーザーコンソールで確認できます ( “登録されてない” 事が確認できます)発注済みの SIM を登録する もしくは 通販サイトやイベント等で入手した SIM を登録する を行ってください。
SIM の「状態」が “準備完了” となっている( “使用中” でない)※ SORACOM ユーザーコンソールで確認できます当該 SIM のチェックボックスをチェックしてから[操作]>[使用開始]をクリックして “使用中” に変更してください。

以上で M5Stack の開発環境から M5Stack 本体と 3G 拡張ボードの動作確認が完了しました。

ToF 距離センサーの取り付け

ToF 距離センサーは Grove ケーブルを使用して M5Stack 横の Grove ポートに接続します。

ToF 距離センサー側

M5Stack 側

ToF センサーは M5Stack の底面に取り付けるのが良いでしょう。私は両面テープで取り付けました。

スケッチの書き込み

取り忘れをセンシングするスケッチを M5Stack へ書き込みます。

ToF 距離センサーライブラリのインストール

M5Stack で ToF 距離センサーを利用するためのライブラリをインストールします。今回はVL53L0X library for Arduinoというオープンソースライブラリを利用します。

Arduino IDE を開き、[スケッチ]>[ライブラリをインクルード]>[ライブラリを管理…]をクリックします

※ 画面は macOS ですが、Windows も同様です。

“VL53L0X” をインストールする

ライブラリマネージャの一覧から VL53L0X (by Pololu) を選んで[インストール]をクリックします。

バージョンはインストール時における最新バージョンを選んでください。

インストールが終了したら[閉じる]をクリックします。

“VL53L0X” を簡単に探し出す方法
検索用のテキストボックスへ VL53L0X と入力すると素早く見つけることができます。Lのあとは数字の “ゼロ” です。似たようなライブラリが表示されるため by Pololu という表記を頼りに探してください。

JSON 処理ライブラリのインストール

M5Stack で JSON 形式の構造化テキストを処理するためのライブラリをインストールします。今回はArduinoJsonというオープンソースライブラリを利用します。

Arduino IDE を開き、[スケッチ]>[ライブラリをインクルード]>[ライブラリを管理…]をクリックします

※ 画面は macOS ですが、Windows も同様です。

“ArduinoJson” をインストールする

ライブラリマネージャの一覧から ArduinoJson (by Benoit Blanchon) を選んで[インストール]をクリックします。

バージョンはインストール時における最新バージョンを選んでください。

インストールが終了したら[閉じる]をクリックします。

“ArduinoJson” を簡単に探し出す方法
検索用のテキストボックスへ arduinoJson と入力すると素早く見つけることができます。

HTTP 通信ライブラリのインストール

M5Stack で HTTP 通信を行うライブラリをインストールします。今回はArduinoHttpClientというオープンソースライブラリを利用します。

Arduino IDE を開き、[スケッチ]>[ライブラリをインクルード]>[ライブラリを管理…]をクリックします

※ 画面は macOS ですが、Windows も同様です。

“ArduinoHttpClient” をインストールする

ライブラリマネージャの一覧から ArduinoHttpClient (by Arduino) を選んで[インストール]をクリックします。

バージョンはインストール時における最新バージョンを選んでください。

インストールが終了したら[閉じる]をクリックします。

“ArduinoHttpClient” を簡単に探し出す方法
検索用のテキストボックスへ arduinoHttp と入力すると素早く見つけることができます。似たようなライブラリが表示されるため by Arduino という表記を頼りに探してください。

M5Stack へ書き込むスケッチを入手する

Arduino IDE を起動し[ファイル]>[新規ファイル]を開くと void setup() { から始まる「空のスケッチ」が表示されます。

一度スケッチの内容を削除してから、m5stack_tof_ranger2.ino の内容と置き換えてください。

※m5stack_tof_ranger.ino の基となっている Gist (コード共有サイト) の URL はこちらです。

マイコンボードに書き込む

M5Stack を PC に取り付けた後、Arduino IDE でボタンをクリックします。ボードへの書き込みが完了しました。と表示されたら正常終了です。

ファイルの保存ダイアログが表示されたら
ファイルを保存してください。ファイル名は任意ですが m5stack_tof_ranger というファイル名はどうでしょうか。
ファイルを保存しない (キャンセル) してもコンパイルとスケッチの転送はされます。

以上で書き込みは完了です。

書き込みが終わったら、M5Stack から USB ケーブルを外し、電源を OFF にしておきましょう。

SORACOM Harvest Data の設定をする

M5Stack に取り付けた SIM に「SORACOM Air メタデータサービス」と「SORACOM Harvest Data」の設定を行います。

SORACOM ユーザーコンソールの[Menu]>[SIM 管理]とクリックして SIM 管理画面を開きます。

M5Stack に取り付けた SIM) にチェックを付け、[操作]>[所属グループ変更]とクリックします。

SORACOM の便利な使い方: 複数の SIM を同時に扱う
チェックをつける対象を複数にすれば、一度の複数の SIM を対象に操作が可能です。

「新しい所属グループ」のプルダウンボックスをクリックした後、[新しいグループを作成…]をクリックします。

「グループ作成」のグループ名を入力して[グループ作成]をクリックします。

項目備考
グループ名poka-yoke-notifier自由に入力可能です。日本語も設定可能です。

改めて「新しい所属グループ」に今入力したグループ名が入っていることを確認して[グループ変更]をクリックします。

SIM 管理画面で割り当てたグループ名をクリックします。

[SORACOM Harvest Data 設定]をクリックして設定ができるように開きます。

「SORACOM Harvest Data 設定」で以下のように設定します。

項目設定値備考
(スイッチ)ONスイッチはクリックすることで OFF から ON に切り替えることができます。

その後[保存]をクリックしてください。
その後表示される「SORACOM Harvest Data が有効になっています」のダイアログでは[OK]をクリックしてください。

以上で「SORACOM Air メタデータサービス」と「SORACOM Harvest Data」の設定が完了しました。

SORACOM Harvest Data でデータを確認する

デバイスからのデータを SORACOM Harvest Data で確認します。

SORACOM ユーザーコンソールの[Menu]>[SIM 管理]とクリックして SIM 管理画面を開きます。

M5Stack に取り付けた SIM) にチェックを付け、[操作]>[データを確認]とクリックします。

表示された画面で[自動更新]を ON にします。

この表示された画面が SORACOM Harvest Data の画面となります。

自動更新とは?
画面を再読み込みしなくとも新しいデータが自動的に表示されるようにする機能です。5秒毎に新しいデータを表示するようになります。この機能が OFF の場合は、表示する期間を指定して[検索]をクリックすることで期間内のデータを表示できます。

設置後、M5Stack に USB ケーブルを接続して電源を ON にします

実際に設置してみましょう。以下のように、コーヒーカップとの距離が計測しやすい位置に、ToF 距離センサーが向くように設置します。

この時、コーヒーカップの出し入れがしやすいことも合わせて確認しましょう。

その後、M5StackにUSB ケーブルを接続して電源をONにします。既に電源がONだった場合、または、USBケーブルを接続しても電源がONにならない場合は、電源ボタンを 1 回押してみてください。リセットがかかり、電源がONになります。

M5Stackに表示される画面

M5Stack の 電源 ON から 50~60秒程度すると、下記のような画面が表示されデータがクラウドに送信され始めます。

コーヒーカップを置いて計測をしてみる

先ほど書き込んだスケッチは3分毎にM5Stack とコーヒーカップの距離を mm でデータ送信するようになっています。実際にコーヒーカップを置いてみて、データが送信されるか確認します。

SORACOM Harvest Data では以下のように確認できます。コーヒーカップを置いて30分ほど経過した様子です。

コーヒーカップとの距離が遠すぎる(700mm以上)もしくは近すぎる(15mm以下)の場合は Distance avg. は “nan” という値となり、クラウドへのデータ送信はされません。

以上でデータ送信の確認は終了です。

即座にデータ送信をしたい場合は?
M5StackのBボタン(3つの並びの内真ん中のボタン)を押すと、即座にデータ送信されます。検証にお使いください。

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

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

SORACOM Lagoon 用語解説

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

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

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 管理画面は、SORACOM Lagoon が有効化されている間は [Menu]>[データ収集・蓄積・可視化]>[SORACOM Lagoon]で表示する事ができます。

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

SORACOM Lagoon 管理画面を表示したあと、[SORACOM Lagoon3 コンソール]をクリックします。

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

Lagoon 3 で SORACOM のデータを取り扱うために、Lagoon 3 の利用を開始すると、オペレーターごとに Lagoon 3 専用の SAM ユーザーが作成されます。ただし、標準では、この SAM ユーザーには「Harvest Files にファイルをアップロードする権限」が付与されていません。そのため、Soracom X/Y Image で Harvest Files に画像をアップロードできません。
本レシピでは必要ありませんが、Harvest Files に画像をアップロードする機能を利用するには、ユーザーコンソールのSORACOM Lagoon画面で、[アクセスを許可] をクリックして、必要な権限を付与してください。

SORACOM Lagoon へログインします。

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

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

背景を白くしたい
SORACOM Lagoon の標準では背景が黒となっています。これは設定で変更が可能です。右下のアイコンにカーソルを合わせて表示される[設定]をクリックします。

設定画面に “テーマ” を “Light” に変更して[保存]すると、背景が白くなります。

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

通知先を設定します。

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

[チャンネルを作成]をクリックします。

「Alerting」では以下の通りに入力します。

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

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

[送信テスト]について
保存の前に[送信テスト]にてテストが行えます。テストを行うと以下のようなメールが届きますので、確認にご利用ください。
また、メールが届かない場合の確認ポイントは以下の通りです。
– メールアドレスが正しいこと
– no-reply@soracom.jp からのメールが迷惑メールに判定されてないこと、もしくは受信フィルタで拒否されていないこと

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

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

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

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

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

[Or paste JSON]のテキストボックスへ、以下のテキストを入力(貼り付け)ます。

貼り付けるテキストは lagoon_template_for_m5stack_tof_ranger2.json です。(約200行ほどあるため、リンク先から定義を入手してください)

※lagoon_template_for_m5stack_tof_ranger2.json の基となっている Gist (コード共有サイト) の URL はこちらです。

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

「Access denied to this dashboard」と表示されることがあります

[Folder] で「General」を選択して [Import] をクリックすると、「Access denied to this dashboard」と表示されますが、動作に影響はありません。

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

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

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

項目内容
Nameコーヒーカップ取り忘れ防止
フォルダGeneral
Unique Identifier (uid)auto generated

確認できたら[Import]をクリックします。

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

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

“コーヒーカップとの距離履歴” >[編集]をクリックします。

“メトリック” タブで読み込むデータを設定します

“メトリック” タブが表示されている(もしくは “メトリック” タブを選択した後)、以下の設定を行います。

設定項目
データソースdefault
“A metric” と表示されている行の左から2番名のプルダウンM5Stack に取り付けた SIM
“A metric” と表示されている行の一番右のプルダウンavg_mm

選んだ時点で、全データが表示されます。

プルダウンに “M5Stack” が無い?
左から2番目のプルダウンについては、参考画像上では “M5Stack” と表示されていますが、これはSORACOM ユーザーコンソール上で SIM に名前を付けているからです。名前がついていない場合は SIM の IMSI (回線識別用の15桁の番号) が表示されます。

データが表示されていない?
データを蓄積し始めてから間もない場合、グラフの右端に「少しだけ」表示されている場合があります。これは、パネルの表示時間の標準が「過去6時間分」を表示するようになっているからです。

右上の「時間」ボタンで表示範囲を設定可能です。まずは「過去15分間」くらいが良いでしょう。

それでもデータが表示されていない場合は、いったん SORACOM Harvest Data データの蓄積具合を確認するようにしてください。

“アラート” タブをクリックした後[通知]をクリックします。

[送り先]のをクリックし、先ほど作成した通知先 (例に沿っているなら email)を選択します。

画面右上のダッシュボードに戻るボタンをクリックします。

画面右上のをクリックすることでこれまでの作業を保存できます。

[保存]で保存します。

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

メールを確認してみる

M5Stack がコーヒーカップの存在を検出すると、「Alerting」と書かれたメールが通知チャンネルで設定したメールアドレスに届きます。

また、コーヒーカップを取ると以下のように「OK」と書かれたメールが届きます。

その他の機能や運用に向けた設定

ここからは、これまで紹介していなかった機能や、本番に向けた設定を紹介します。

アラートとなる距離の設定方法

本レシピの仕組みはコーヒーカップまでの距離を計測することで有無を判定しています。

本レシピの標準設定はM5Stackからカップまでの距離が25mm以上 70mm以下であるときに「ある」と判定するようになっています。

下の図における赤い帯が「ある」と判定される距離範囲となります。

一方、利用するコーヒーメーカーやカップのサイズなど、設置条件は様々であるため調整が必要となります。判定は SORACOM Lagoon の「アラート」機能であり、検出条件はここで変更できます。

判定条件が範囲指定となっているわけ
カップを置く位置は常に一定だとは限りません。また、センサー自体も多少の誤差を持っています。そのため、誤差を吸収する仕組みとして範囲指定をしています。

LCD (液晶)画面の消灯

M5Stack の LCD 画面は C ボタン(一番右のボタン)を押すことで、消灯することができます。消灯後、再度 C ボタンを押すと点灯します。

計測モード

ToFセンサーの動作を確認するための「計測モード」が実装されています。

M5Stack の A ボタン(一番左のボタン)を押しながら、電源ボタン(側面のボタン)を押してください。Skip fetching config from Cloud と表示され、すぐにメイン画面に移行します。(A ボタンはこの時点で離すことができます。

Notification のカウントダウンはされますが、クラウドとの通信は行いません。

クラウドとの通信を行うモードにするためには、電源ボタンを押してリセットしてください。

あとかたづけと注意事項

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

費用について

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

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 Funk であれば50,000リクエスト/月などです。料金詳細に「無料利用枠」として掲載されていますので、ご確認ください。

グループ解除

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

また、SORACOM Funk はリクエスト発生時毎の従量課金となっているため、作成したグループ内の設定が SORACOM Funk のみとなっていれば、リクエストが発生しなければ費用は発生しません。

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

SORACOM Harvest Data のデータ削除(任意)

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

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

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

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

SORACOM Lagoon の解約

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

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

次のステップ

本レシピでは、M5Stack と 3G 拡張ボードと ToF 距離センサーを組み合わせた「コーヒーカップ取り忘れ通知デバイス」を作りました。

「距離」によるセンシングは、計測される側(今回はコーヒーカップ)の改造をせずとも物体の有無を簡単に判定できることから、応用例も多く考えられるのではないでしょうか?

今回は ToF 距離センサーを利用しましたが、その他にも超音波を利用した距離センサーもあります。センシングする対象や環境に応じて使い分けることもできるでしょう。

商品ページへ戻る

SORACOM IoT DIY レシピ »

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

達成したことをTwitterで呟く

普段の生活やビジネスに役立つ #IoTレシピ 「IoTでコーヒーカップの取り忘れを通知」 を達成しました!
@SORACOM_PR https://soracom.jp/recipes_index/3345


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