IoTの3要素「モノ・ネットワーク・クラウド」を体験いただけるワークショップです。
ソラコムでは、省電力の LTE 通信(LTE-M)と乾電池で動作する「SORACOM LTE-M Button シリーズ」(以下、IoT ボタン)を提供しています。
本テキストは、IoT ボタンを模した「IoT ボタンシミュレーター」と SORACOM の IoT サービスを組み合わせて、実機が無くともパソコンだけで IoT 体験ができます。
本ワークショップで体験いただけるのは2つです。
これらとは別に、パソコン上で IoT ボタンを再現する「IoT ボタンシミュレーター」と、Wi-Fi 等のインターネット通信でも SORACOM プラットフォームが利用できる「SORACOM Arc」のセットアップ (30分) も行います。
VPN によって、IoT デバイスと SORACOM 間を安全につなげるサービスが SORACOM Arc (ソラコム アーク) です。
SORACOM プラットフォームには、後述するデータ蓄積や変換、転送等、IoT 開発で便利な機能があります。これらのサービス活用の前提には、IoT デバイスと SORACOM プラットフォーム間が、安全につながっていることが求められます。
LTEや5Gといったセルラー通信や、SigfoxといったLPWA通信は、通信自体が暗号化されているため、IoT デバイス上の実装において通信セキュリティの考慮は不要です。一方で、Wi-Fi や構内 LAN は基本的に暗号化されていないことから、アプリケーションで個別にセキュリティ対策(例:TLS)をする必要があり、IoT には不向きなネットワークとされていました。
SORACOM Arc は、IoT 向け VPN サービスです。
技術的にはオープンソースの VPN 「WireGuard」を利用します。軽量であるため、組み込みデバイス向け実装も存在します(lwIP 向け実装、lwIP実装を基にしたESP32 向け実装)。
SORACOM プラットフォーム上で発行できる「バーチャル SIM」には、接続に必要な認証情報が入っています。また、SORACOM プラットフォーム上では SIM として取り扱えるため、SIMや Sigfox等で使える SORACOM プラットフォームの機能がシームレスに利用できます。これにより、Wi-Fi 等の非暗号化ネットワークから SORACOM プラットフォームに安全に接続し、IoT 向け機能が利用できるわけです。
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デバイスから無くす(= 実装量を減らす)効果もあります。
作業3では、LINE Notifyを使ってIoTボタンの押下データをLINEへ通知します。
LINE Notifyには、以下の特徴があります。
非常にシンプルな設定を行うだけで、LINEに対して通知を送信できるサービスです。詳細は公式ページを参照ください。
SORACOM LTE-M Button はボタン型 IoT デバイスで、用途や機能で3種類のモデルがあります。ここでは共通部分を解説します。
ボタンは押し方に応じて3種類の情報をクラウドに送信できます。通信には省電力のLTE「LTE-M」が使われており、そのSIMは「eSIM」です。通信設定が済んでいる状態ですぐに利用開始できます。電源は交換可能な単4電池2本で、小型で持ち運びも可能です。
次に進みます。
本ワークショップを行うためには、以下の準備を行ってください。
以下は、ワークショップ当日までに準備を済ませておいてください。
ワークショップ中でも行うことは可能ですが、時間の考慮はされていないため、時間内に作業を終える事ができない可能性があることにご留意ください。
# | 備考 |
SORACOM アカウントの作成 | SORACOM アカウント (オペレーター) を作成するを参考に、作成を済ませてください。 |
メールアドレスと | 作業3のLINEの通知先に利用します。
|
以下は、ワークショップ当日の持ち物です。
# | 備考 |
パソコン | ワークショップテキストを閲覧したり、SORACOM ユーザーコンソール (Web管理画面) の
|
LINE通知が受信できる | 作業3のLINE通知の確認に利用します。 |
SORACOM アカウント | IoT ボタンの操作を行うためのSORACOMアカウントです。 |
次に進みます。
IoT ボタンの代わりとなる「IoT ボタンシミュレーター」と、通信環境である「WireGuard」と「SORACOM Arc」のセットアップを行います。
セットアップの順序は以下の通りです。
次に進みます。
本テキストでは、SORACOM LTE-M Button for Enterprise の実機の代わりとして、シミュレータソフトを用います。
現在公式に配布しているバイナリーは、以下の環境で動作確認が取れています。
以下のURLから、ご自身の環境に合わせたバイナリをダウンロードしてください。
https://github.com/kenichiro-kimura/soracom-button/releases/tag/v0.4.1
ダウンロード時に「危害を及ぼす可能性があります」と表示された場合は、右の▲をクリックした後に表示される「継続」をクリックしてください。ダウンロードが完了します。
Windows はダウンロードした exe ファイルのダブルクリックでインストーラーが起動します。案内に沿ってインストールを完了してください。
macOS は dmg ファイルをダブルクリックすることで、中にある soracom-button を見つけることができます。このファイルをアプリケーションフォルダーにコピーしてください。
Windowsの場合はスタートメニューから、Macの場合はFinderなどからクリックすると起動します(アプリケーション名:soracom-button)。
Macの場合、インストールしたアプリを実行しようとすると、開発元が不明なため開けないと警告が出る場合があります。
その場合は、Finderでアプリを表示して、Controlキーを押しながらアプリケーションアイコンをクリックして、ショートカットメニューから「開く」を選択します。
起動すると以下のような画面が表示されます。
メニューの機能は以下の通りです。
メニュー名 | サブメニュー名 | 機能 |
File | 終了 | アプリケーションを終了します |
View | サイズ | ウインドウサイズを大/中/小から選択できます。デフォルトは「大」です |
ステッカー | ボタンにステッカーを貼って見た目を変えられます。しろボタンとUGバージョンがあり、デフォルトは「しろボタン」です | |
Help | SORACOM LTE-M Button for Enterpriseユーザーガイド | SORACOMの公式ページが開きます。今回は利用しません。 |
Open devTools for WebView | デバッグ用です。今回は利用しません。 |
Viewから見た目やサイズを好きな物に変えてみてください。動作自体は変わりません。
大きな丸が、ボタンになります。ここをシングルクリック・ダブルクリック・ロングクリックすることができます。クリックすると、SORACOMにデータが送信されます。
小さな丸が、LEDになります。通信中はオレンジに点滅し、5秒ほど点滅をしたあとに実際に通信が発生します。通信結果が成功であれば緑に、失敗であれば赤に1秒ほど点灯します。
「バッテリーレベル」のドロップボックスで、送信するバッテリーレベルを変更できます。バッテリーレベルは1.0/0.75/0.5/0.25から選べます。
「送信状況」の部分に現在の通信内容(例:シングルクリックでバッテリーレベル1.0を送信中)が表示され、通信終了後は通信結果(成功/失敗)が表示されます。
PCからSORACOM Arcに接続するための必要な VPN ソフトウェア「WireGuard」をインストールします。OS 毎の解説を確認してください。
wireguard-installer.exe
をダウンロードします。wireguard-installer.exe
を実行します。WireGuardに設定する接続情報をSORACOMから入手します。接続情報は「バーチャルSIM」をSORACOM上で作成することで生成されます。
SORACOM アカウントにログインからログインをします。
「切り替える」をクリックしてください。
以下のように「サブスクリプションコンテナに対応した新しい SIM 管理画面をご利用中です。」と表示されていることを確認してください。
※既に「新しい SIM 管理画面をご利用中です。」となっている場合は、次のステップに進んでください。
「コピー」ボタンを押すことでクリップボードにコピーすることができますので、テキストエディッタなどに貼り付けて保存しておきましょう。
例えば「Virtual IoT Button
」といった名前を入力して、リターンキーで確定します。
次に進みます。
[Windowsの場合] [空のトンネルを追加]をクリック
[macOSの場合] [設定が空のトンネルを追加]をクリック
soracom-arc
)を設定した後、テキストエリアにバーチャルSIMの作成時に保存しておいたWireGuard 接続情報を上書きして「保存」をクリックします。[Windowsの場合]
[macOS の場合]
保存時にダイアログが出た場合は、「許可」を押してください。
これで設定は完了です。
有効化を行うことで、WireGuard VPN による SORACOM Arc 接続が開始します。
[Windowsの場合]
[macOS の場合]
[Windowsの場合]
PowerShell (もしくはコマンドプロンプト)を起動します。スタートメニューを右クリックすると起動できます。
[macOSの場合]
Finder から「/アプリケーション/ユーティリティ」フォルダを開いて、「ターミナル」をダブルクリックします。
[OS 共通]
PowerShell(コマンドプロンプト)またはターミナルの中で「ping pong.soracom.io
」と入力し、リターンキーを押します。以下のように、pingへの応答があれば成功です。
pingコマンドが停止しない場合はコントロールキーを押しながら「c」を押すと停止します。
もし以下のように応答が無い場合は正常に接続できていないので、WireGuardの設定が間違っていないか、また接続が有効になっているかを確認してください。
以上で、IoTボタンシミュレーター、WireGuard、SORACOM Arc の3つの設定が完了です。
次に進みます。
設定がうまく進まないときにご覧ください。ここまでの作業が出来ている場合は次に進んでください。
[Interface]
PrivateKey = クライアントピア秘密鍵
Address = クライアントピアIPアドレス
[Peer]
PublicKey = サーバピア公開鍵
AllowedIPs = 100.127.0.0/16
Endpoint = サーバエンドポイント.
作業2では、IoTボタンのデータを SORACOM Harvest Data に蓄積して、そのデータを確認します。
手順は以下の通りです。
次に進みます。
SORACOM のサービスを利用するためには、SORACOMのWeb管理画面「SORACOM ユーザーコンソール」(以下、ユーザーコンソール)へログインします。
SORACOM アカウントにログインからログインをします。
すでにログインしている場合は、次のステップに進んでください。
バーチャル SIM を確認します。
次に進みます。
SIM グループを作成してから設定を行い、バーチャル SIM を所属させます。
SIM 一覧が表示されていなければ、[メニュー]→[SIM管理]と進んで、SIM一覧を表示するようにしてください。
設定名 | 値 | 備考 |
グループ名 |
| 値は任意(自由に設定可能)です。 |
自動的にSIM 管理画面へ戻ります。バーチャル SIM に、先ほど設定したグループ名が割り当てられていれば成功です。
設定名 | 値 | 備考 |
バイナリパーサー | ||
バイナリパーサー | ON にする | 初期は OFF |
フォーマット |
| バイナリーパーサーを ON にすると入力できるようになります |
保存をクリックしたときに「Soracom Air 設定が更新されました」と表示されたことを確認してください。
設定名 | 値 | 備考 |
(なし) | ON にする | 初期は OFF |
このあと表示される「SORACOM Harvest Data が有効になっています」では、内容を確認の上[OK]をクリックしてください。その後「保存しました」と表示されたことを確認してください。
以上で、データ蓄積に関する設定は完了です。
次に進みます。
IoTボタンシミュレーターを押して、データの蓄積とメールによる通知を確認してみましょう。
この時点では、IoTボタンからはデータ未送信であるため「データが見つかりません」と表示されますが正常です。
自動更新をONにしておくことで、新しく蓄積されたIoTデータを自動表示できるようになります。
IoTボタンシミュレーターを押して、データを確認してみましょう。ボタン部分を押下後、最終的に LED が緑色に点灯したらデータ送信成功です。
データが SORACOM Harvest Data に表示されていることが確認できます。
SORACOM Harvest Data では、データをグラフ形式にしたり、位置情報に該当するデータがあれば地図へのマッピングもできます。本ワークショップでは簡易位置測位機能をONにしているため、位置の表示ができます。
以上で、作業2「IoTボタンのデータを、データ収集・蓄積サービス "SORACOM Harvest Data" で確認」を達成しました。
次に進みます。
作業3では、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 | チェックを付ける | ― |
保存をクリックしたときに「SORACOM Orbit 設定を保存しました」と表示されたことを確認してください。
以上で、SORACOM Orbitの設定は完了です。
次に進みます。
IoTボタンを押すと、以下のようにLINEへ通知が届きます。
ボタンの押され方、バッテリーレベルが通知されています。
通知のメッセージフォーマットは Soralet 内で組み立てています。詳細は Soralet のソースコードをご覧ください。
以上で、作業3「LINEへの通知」を達成しました。
次に進みます。
SORACOMサービス内の設定削除、LINE Notifyのトークン削除、セットアップしたソフトウェアのアンインストールは自身で行ってください。
LINE Notifyは無料です。そのため登録したままでも問題ありませんが、不慮の操作を防ぐためにも、不要になった段階で削除をおすすめします。
今回設定したSORACOMサービスは、以下4点です。
SIM グループを削除するには、SIM グループ内の SIM をすべて解除する必要があります。
グループからの解除を参考に、バーチャル SIM を SIM グループから解除して、SIM グループを削除してください。
SIMグループ内の設定内容は、削除完了時点ですべて無効化されます。SIMグループの復活はできません。設定内容のバックアップが必要であれば、削除前にメモを取ってください。
SIMグループ自体の保管は無料です。
SIM グループの削除で Orbit 設定自体は無効化されます。しかし、Soralet は削除されないので別途Soralet を削除します。
以上で、Soralet の削除は完了です。
Soralet 自体の保管は無料です。整頓のための削除となります。
SORACOM Harvest Data は、データ保存から40日を超えると自動的に削除されます。また、データ保管料は無料です。よってこのままでも特に困りませんが、データの整頓を行いたい場合は、能動的に削除が可能です。
データの復元はできません。ご注意ください。
バーチャルSIMの解約は、通常のSIMの解約と同じく、SIMを選択後、画面上部の[操作 ▼]をクリックし、[解約]をクリックします。
問題なければ、そのまま[解約する]をクリックしてください。
SIM一覧からバーチャルSIMがなくなっていればOKです。
OS 標準のアンインストール方法で削除してください。
OS 標準のアンインストール方法で削除してください。
ここで記載している金額はすべて税込、送料別となります。
ご利用にあたっては本体の価格とは別に、内蔵されている 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の仲間が集まるコミュニティ」です。どなたでも参加いただけます。日本各地での支部の開催や、オンラインイベントにぜひご参加ください!