IoTの3要素「モノ・ネットワーク・クラウド」を体験いただけるワークショップです。
LTE-M通信を内蔵したIoTボタン「SORACOM LTE-M Button」(以下、IoTボタン)と、SORACOMのIoTサービスを組み合わせて、実用性のあるIoTシステムを組み立てます。
本ワークショップで体験いただけるのは2つです。
SORACOM LTE-M Button はボタン型 IoT デバイスで、用途や機能で3種類のモデルがあります。ここでは共通部分を解説します。
ボタンは押し方に応じて3種類の情報をクラウドに送信できます。通信には省電力のLTE「LTE-M」が使われており、そのSIMは「eSIM」です。通信設定が済んでいる状態ですぐに利用開始できます。電源は交換可能な単4電池2本で、小型で持ち運びも可能です。
IoT デバイスからのデータの収集や蓄積、およびファイルを保持できるサービスが SORACOM Harvest (ソラコム ハーベスト) です。
IoT では特にデータ活用が重要です。デバイスからのデータをいち早く確認したいという要望に対し、利用するクラウドが決まっていない、決まっているが準備が整わないために、開発スピードが滞る事があります。
SORACOM Harvest は、 SORACOM 上のデータ収集・蓄積サービスです。
SORACOM のアカウントを持っている時点で即座に利用いただけます。機能のON/OFFはオンライン上で行うことができ、契約は1日単位であるため、開発時の必要時に絞って利用できます。
SORACOM Harvest は蓄積するデータの種類によって2つの機能があります。
IoT デバイスからのデータの収集・蓄積に対応しているのが SORACOM Harvest Data、画像ファイルやログファイルといったファイルに対応しているのが SORACOM Harvest Files です。
IoTデバイスとクラウド間のデータ形式のギャップを埋める変換処理を行えるサービスが SORACOM Orbit (ソラコム オービット) です。
IoTデバイスとクラウドでは、扱うデータ形式が異なるケースがあります。具体的には、IoTデバイス上ではデータ格納効率を優先してバイナリー形式を、クラウドでは他システム連携を優先してJSONを扱うといった形です。
一方で、IoTを実現するにはデータ形式を合わせる必要があります。IoTデバイス側がJSONを扱う、もしくはクラウド側でバイナリーを処理するのは「不得意なこと」を行うことになり非効率です。
SORACOM Orbitは、IoTデバイスとクラウドの間で「変換処理」を提供します。変換処理自体は、プログラムで書きます。データ形式の整形から、演算、条件分岐なども可能です。
IoTデバイスからバイナリー形式で送信したデータを、Orbit上のプログラムでJSONに変換してからクラウドに送る事が可能となり、それぞれの得意なデータ形式での実装をおこないつつ、つなげることができます。
プログラムはWASM (WebAssembly) という形式でOrbitに登録しておきます。そして、データがOrbitを通過する毎にWASMが実行される仕組みです。
WASM はプログラム言語に依存せず生成できます。例えば Rust で書いたプログラムをコンパイルしてWASMファイルを作ります。実際にSORACOM Orbitで動かすWASMファイルを作るには、SORACOM Orbit SDKに対応した言語で記述いただきます。4言語(2022年9月時点)に対応しています。
IoTデバイスから送信されたデータを、任意のクラウドやサーバーへ転送できるサービスが SORACOM Beam (ソラコム ビーム)です。
IoTデバイスとクラウドを連携するには、IoTデバイス内のプログラムに送信先のクラウドやサーバーのアドレスをハードコード(決め打ちで記述)するのが一般的です。
なんらかの理由でアドレス変更が必要となった場合、すべてのIoTデバイスのプログラムを書き換える必要があります。この "理由" には、システム刷新に伴うアドレス変更といった大がかりな状況はもちろん、出荷前の試験用と本番用でアドレスが異なるといった日々の運用でもあり得ることです。
IoTデバイスのデータ送信先アドレスをクラウドへ直接設定するのではなく、SORACOMプラットフォームに設定することで、SORACOM Beamが利用できます。IoTデバイスとクラウドの間に挟み込む形です。
SORACOM Beamでは「最終的なデータ送信先のアドレス」を設定できます。これで、IoTデバイスからのデータをSORACOM Beam上の設定に沿って転送が可能です。アドレスの変更に伴うIoTデバイス上のプログラム変更は不要となります。
また、転送時には追加でTLSによるデータの暗号化や、HTTPヘッダの追加・編集も可能です。これらの実装をIoTデバイスから無くす(= 実装量を減らす)効果もあります。
作業2では、LINE Notifyを使ってIoTボタンの押下データをLINEへ通知します。
LINE Notifyには、以下の特徴があります。
非常にシンプルな設定を行うだけで、LINEに対して通知を送信できるサービスです。詳細は公式ページを参照ください。
次に進みます。
本ワークショップを行うためには、以下の準備を行ってください。
以下は、ワークショップ当日までに準備を済ませておいてください。
ワークショップ中でも行うことは可能ですが、時間の考慮はされていないため、時間内に作業を終える事ができない可能性があることにご留意ください。
# | 備考 |
SORACOM アカウントの作成 | SORACOM アカウント (オペレーター) を作成するを参考に、作成を済ませてください。 |
SORACOM LTE-M Button の登録 | ユーザーコンソールに SORACOM LTE-M Button for Enterprise を登録するを参考に、登録を済ませてください。 |
メールアドレスと | 作業2のLINEの通知先に利用します。
|
以下は、ワークショップ当日の持ち物です。
# | 備考 |
パソコン | ワークショップテキストを閲覧したり、SORACOM ユーザーコンソール (Web管理画面) の
|
LINE通知が受信できる | 作業2のLINE通知の確認に利用します。 |
SORACOM LTE-M Button | LTE-M 通信内蔵 IoT ボタンです。一人1ケ、使用します。 本文中では「IoTボタン」と称します。 |
SORACOM アカウント | IoT ボタンの操作を行うためのSORACOMアカウントです。 |
次に進みます。
作業1では、IoTボタンのデータを SORACOM Harvest Data に蓄積して、そのデータを確認します。
手順は以下の通りです。
次に進みます。
SORACOM のサービスを利用するためには、SORACOMのWeb管理画面「SORACOM ユーザーコンソール」(以下、ユーザーコンソール)へログインします。
SORACOM アカウントにログインからログインをします。
図では「Enterprise Button 3」と名前を割り当てています。登録直後では名前が無いため、例えばサブスクリプションが "plan-KM1" の SIM といった形で探してください。
次に進みます。
スマート設定機能を利用して、IoTボタンからのデータの蓄積と通知を素早く行います。
ここで「データが見つかりません」と表示されているのは正常です。このリストに、今からIoTボタンを追加するためです。
複数候補があった場合、名前が「Enterprise Button XX (XXは数字)」となっている行にチェックを付けてください。
設定名 | 値 | 備考 |
グループ名 |
| 値は任意(自由に設定可能)です。 |
設定名 | 値 | 備考 |
可視化 | ||
可視化を有効にする | チェックを付ける | ― |
簡易位置測位機能 | ||
位置情報を付与する | チェックを付ける | ― |
メール送信 | ||
メール送信を有効にする | チェックを外す | 標準でチェックが外れているため、何もせずOKです。 |
宛先 | (変更しない) | 標準で "空" であるため、何もせずOKです。 |
件名 | (変更しない) | ― |
本文 | (変更しない) | ― |
その後表示されるダイアログで[デバイス一覧に戻る]をクリックします。
デバイス一覧の画面で、先ほどは「データが見つかりません」と表示されていた一覧へ、設定したLTE-Mボタンが表示されていれば成功です。
次に進みます。
IoTボタンを押して、データの蓄積を確認してみましょう。
この時点では、IoTボタンからはデータ未送信であるため「データが見つかりません」と表示されますが正常です。
自動更新をONにしておくことで、新しく蓄積されたIoTデータを自動表示できるようになります。
IoTボタンを押して、データを確認してみましょう。ボタン部分を押下後、最終的に LED が緑色に点灯したらデータ送信成功です。
データが SORACOM Harvest Data に表示されていることが確認できます。
SORACOM Harvest Data では、データをグラフ形式にしたり、位置情報に該当するデータがあれば地図へのマッピングもできます。本ワークショップでは簡易位置測位機能をONにしているため、位置の表示ができます。
※ プライバシーに配慮してボカしていますが、実際ははっきりとした地図で表示されます。
データ内の $metadata.lat
と $metadata.lon
を基にした位置をポイントしています。
以上で、作業1「IoTボタンのデータを、データ収集・蓄積サービス "SORACOM Harvest Data" で確認」を達成しました。
次に進みます。
作業2では、SORACOM Orbit と SORACOM Beam を利用して、LINE Notifyを呼び出し、LINEへの通知を行います。
手順は以下の通りです。
次に進みます。
LINE Notify を呼び出すのに必要な「トークン」を入手、メモします。
トークンを取得するために、LINE Nofityにログインします。
ログインしたらトークンを取得します。なお、ここで発行したトークンは同じものは再発行できないので、無くさないようにお願いします。
トークン名 : soracom-handson
(名称は任意です)
通知を送信するトークルーム : 1:1でLINE Notifyから通知を受け取る
LINE Notify のトークンがメモできたら完了です。
次に進みます。
SORACOM Beamの設定を行い、LINE Notifyに通知できるようにします。
変更する場所のみを記載しています。その他の項目は、変更不要です。
設定名 | 値 | 備考 |
転送先 | ||
ホスト名 |
| ― |
ポート番号 |
| ― |
パス |
| ― |
変更する場所のみを記載しています。その他の項目は、変更不要です。
設定名 | 値 | 備考 |
ヘッダ名 |
| ― |
値 |
| "Bearer" とトークンの文字列の間には 例: |
以下のようになれば OK です。
次に進みます。
SORACOM Orbitの設定を行い、LINE Notify 向けフォーマット変換ができるようにします。
本来、SORACOM OrbitはRust等のプログラム言語とOrbit SDKを使ってプログラミングし、WASMファイルとしてコンパイルするといった開発作業があります。
本ワークショップでは、すでにコンパイル済みのWASMファイルを用意しました。これを利用することで、ゼロから開発することなくワークショップを進めることができます。ソースコードが公開されています。
https://github.com/soracomug/soracom-arc-v-button-handson/raw/main/soracomOrbit/soralet-wasm.zip
Orbit用にコンパイルされたWASMファイルの事を、SORACOMでは「Soralet (ソラレット)」と呼んでいます。先ほどダウンロードしたWASMファイルはSoraletです。
SoraletをSORACOM Orbitに登録(アップロード)して、実行できるようにします。
設定名 | 値 | 備考 |
Soralet ID |
| ― |
このように「新しいバージョンが作成されました」というダイアログと共に、Version 1の行が表示されていれば、アップロード成功です。
設定名 | 値 | 備考 |
Soralet |
| "Soraletの作成" で指定した Soralet ID です。 |
Soralet Version |
| 最新を意味します。 |
残りの設定は以下のようにして設定し、最後に[保存]をクリックします
設定名 | 値 | 備考 |
Uplink | チェックを付ける | ― |
簡易位置測位機能 | ON にする | 標準では OFF です。クリックして ON にしてください。 |
以上で、SORACOM Orbitの設定は完了です。
次に進みます。
IoTボタンを押すと、以下のようにLINEへ通知が届きます。
ボタンの押され方、バッテリーレベル、簡易位置測位による緯度経度とGoogle Mapへのリンクが通知されています。
通知のメッセージフォーマットは Soralet 内で組み立てています。詳細は Soralet のソースコードをご覧ください。
以上で、作業2「LINEへの通知」を達成しました。
次に進みます。
SORACOMサービス内の設定削除と、LINE Notifyのトークン削除は自身で行ってください。
LINE Notifyは無料です。そのため登録したままでも問題ありませんが、不慮の操作を防ぐためにも、不要になった段階で削除をおすすめします。
今回設定したSORACOMサービスは、以下4点です。
ボタンに割り当てられたスマート設定機能を解除します。
以上で、ボタンに割り当てられたスマート設定機能は解除されます。ただし、SIMグループは残ります。SIMグループは後述の手順で削除してください。
スマート設定機能自体の保管は無料です。
スマート設定機能で自動的に作成されたSIMグループを削除します。
以上で、SIMグループの削除は完了です。SIMグループ内の設定内容は、削除完了時点ですべて無効化されます。SIMグループの復活はできません。設定内容のバックアップが必要であれば、削除前にメモを取ってください。
SIMグループに、ボタン(SIM)が所属していると削除ができません。SIMグループ削除の前に、スマート設定機能の解除を行ってください。
SIMグループ自体の保管は無料です。
SIM グループの削除で Orbit 設定自体は無効化されます。しかし、Soralet は削除されないので別途Soralet を削除します。
以上で、Soralet の削除は完了です。
Soralet 自体の保管は無料です。整頓のための削除となります。
SORACOM Harvest Data は、データ保存から40日を超えると自動的に削除されます。また、データ保管料は無料です。よってこのままでも特に困りませんが、データの整頓を行いたい場合は、能動的に削除が可能です。
データの復元はできません。ご注意ください。
ここで記載している金額はすべて税込、送料別となります。
ご利用にあたっては本体の価格とは別に、内蔵されている SIM (plan-KM1) の基本料金(月額110円)と、データ通信量に応じたデータ通信料が発生します。
plan-KM1 の料金はご利用料金 - 特定地域向け IoT SIM (plan-KM1) をご確認ください。
データ通信量の目安は 1送信あたり約0.3円です。
SORACOM Harvest Data を始めとした SORACOM プラットフォーム利用料は後述の通りかかります。
サービス/機能 | 料金 |
| |
| |
| |
|
※ 費用詳細はリンク先をご確認ください。
本コンテンツは無償で公開しています。URL が必要な方はブックマーク等メモしてください。事前の断りなく公開中止やURL 変更される場合があります。
著作権は株式会社ソラコムに帰属しています。再利用を希望される場合はご連絡ください。
また、本テキストにおけるWASM製作や基となったテキストはSOARCOM ユーザーグループ(UG)の皆様のご協力によるものです。この場を借りてお礼申し上げます!
SORACOM UGは「IoTの仲間が集まるコミュニティ」です。どなたでも参加いただけます。日本各地での支部の開催や、オンラインイベントにぜひご参加ください!