LoRaWAN デバイスを設定する
ユーザーコンソールを使って LoRaWAN デバイスを管理・設定する方法を紹介します。SORACOM Air for LoRaWAN の全体像は SORACOM Air for LoRaWAN を参照してください。
前半では、通信を行うための基本設定と疎通確認の手順を解説します。さらに発展した使いかたは、後半の 応用編: 各種サービスへのデータ送信 を参照してください。
操作を始める前に準備が必要です (クリックして確認してください)
(1) LoRaWAN デバイスをセットアップする
詳しくは、LoRaWAN ゲートウェイ/デバイスをセットアップする を参照してください。
(2) 通信可能な範囲に LoRaWAN ゲートウェイがあることを確認する
準備完了ステップ 1: LoRaWAN デバイスの設定をする
次に、LoRaWAN デバイスの確認と設定を行います。LoRaWAN デバイスはユーザーコンソールの「発注」画面で受け取り確認を行った時点で、お客様のアカウントに登録されます。まずは以下の手順に沿って、ユーザーコンソール上で自分が所有しているデバイスが表示されていることを確認しましょう。
- ユーザーコンソールで、 → → の順にクリックします。
- デバイス一覧に自分が所有している デバイスが表示されていることを確認します。
ユーザーコンソールに LoRaWAN デバイスが表示されていない場合は、ユーザーコンソールの 発注画面 で をクリックしてください。
ステップ 1-1: LoRaWAN グループを作成する
デバイスがアカウントに登録されていることを確認したら、データ送信先などの設定をするために LoRaWAN グループを作成します。詳しくは、グループを作成する を参照してください。
ステップ 1-2: LoRaWAN グループの設定を変更する
続けて LoRaWAN グループの設定を変更します。
LoRaWAN グループ画面で
をクリックします。LoRaWAN グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
以下の設定を行います。
- LoRa Space を利用するかどうか: 共有サービスモデルのゲートウェイをグループ内の LoRaWAN デバイスに利用させるには、ここで「利用する」を選択します。
- デバイスが所属するネットワークセットの ID: 所有モデルゲートウェイを利用している場合、デバイスを所属させたいネットワークセットを指定します。デバイスはここで指定されたネットワークセットに所属するゲートウェイを使って通信を行います。
をクリックします。
「SORACOM LoRa Space を利用」のスイッチを「利用しない」にセットし、かつ「LoRa ネットワークセット ID」を空欄にすると LoRaWAN デバイスは通信できなくなります。ご注意ください。
ステップ 1-3: デバイスを LoRaWAN グループに登録する
通信を行うために、ステップ 1-2 で設定した LoRaWAN グループに LoRaWAN デバイスを所属させます。
詳しくは、IoT SIM、LoRaWAN デバイス、Sigfox デバイスが所属するグループを切り替える を参照してください。
ステップ 2: SORACOM Harvest Data を使って疎通確認する
LoRaWAN デバイスで収集したデータは、SORACOM Beam (以下、Beam)、SORACOM Funnel (以下、Funnel)、SORACOM Funk といったサービスを使って転送したり、SORACOM Harvest Data (以下、Harvest Data) に保存したりできます。今回は、設定が簡単な Harvest Data を有効にして、デバイスが通信できているかどうかを確認します。他のサービスを使ってデータを送信する方法は、応用編: 各種サービスへのデータ送信 を参照してください。
データを送信するためのライブラリを用意しています。Arduino library for LoRaWAN Device を参考に開発環境を準備し、データ送信にご利用ください。
Harvest Data を有効化する
LoRaWAN グループの Harvest Data を有効化します。詳しくは、Harvest Data を有効化する を参照してください。
LoRaWAN デバイスに接続された Arduino にスケッチを書き込み、実行する
LoRaWAN デバイスに接続された Arduino を開発環境に接続します。
Arduino library for LoRaWAN Device 付属のスケッチ例
Uptime.ino
を書き込みます。IDE を起動し、メニューバー > ファイル > スケッチ例 >SORACOM-LoRaWAN-1.0.5
>Uptime
を選択し、検証・書き込みを実行してください。ライブラリのバージョンによって
SORACOM-LoRaWAN-1.0.5
の末尾の数字が変わることがあります。書き込み完了すると Arduino 上で自動的にスケッチが実行されます。IDE のウィンドウ右上にある虫眼鏡マークのボタンをクリックし、シリアルモニタを開くとスケッチの実行状況とデータ送信ログを確認できます。
Uptime を実行すると、Arduino が起動してから経過した時間が 16 進数で定期的に送信され、Harvest に蓄積されます。
シリアルモニタで
sendCmd: lorawan join otaa
という文字列の後にOk
accepted
が表示されれば、LoRa ゲートウェイのネットワークに LoRaWAN デバイスが参加できたことを示しています。また、シリアルモニタでtx_ok
という文字列が表示されれば、Arduino から通信モジュールにデータの受け渡しが完了したことを示しています。
シリアルモニタのログ出力例
Starting example sketch 'Uptime'.
Connecting ...
sendCmd: mod factory_reset
>> Ok
> sendCmd: mod set_echo off
mod set_echo off
>> Ok
> sendCmd: mod save
>> Ok
> sendCmd: mod reset
> TLM922S <
> sendCmd: mod get_hw_model
>> <ハードウェアのモデル番号が表示されます>
> sendCmd: mod get_ver
>> V1.3.1-ar-Mar 14 2017-10:12:00
> sendCmd: lorawan get_deveui
>> <LoRaWAN デバイスIDが表示されます>
> sendCmd: lorawan set_dr 5
>> Ok
> sendCmd: lorawan save
>> Ok
> sendCmd: lorawan join otaa
>> Ok
>> accepted
> sendCmd: lorawan set_dr 2
>> Ok
>
Connected.
sending '21' to port 1
sendCmd: lorawan tx ucnf 1 00000015
>> Ok
>> tx_ok
> ... sent.
sending '31' to port 1
sendCmd: lorawan tx ucnf 1 0000001f
>> Ok
>> tx_ok
> ... sent.
sending '41' to port 1
sendCmd: lorawan tx ucnf 1 00000029
>> Ok
>> tx_ok
> ... sent.
sending '51' to port 1
sendCmd: lorawan tx ucnf 1 00000033
>> Ok
>> tx_ok
> ... sent.
データ送信できていることを確認
LoRaWAN デバイスを LoRaWAN グループに所属させた直後から、データの送信が始まります。また、Harvest Data を有効にした直後からデータの可視化が始まります。詳しくは、ステップ 4: データを可視化する を参照してください。
- LoRaWAN の規格上、一度に送信可能なデータは最大 11byte となります。
- LoRaWAN デバイスでデータ送信すると、送信データは 16 進数でエンコードされたバイナリデータの文字列として SORACOM プラットフォームに到着します。
- Harvest ユーザーコンソールの「データ」カラムや、Harvest API の返り値で JSON 形式のデータが表示されるのは、LoRa ゲートウェイが、お客様のデバイスから送信されたデータと併せてタイムスタンプ等のメタデータを付与しているためです。LoRaWAN デバイスから送信されたデータ自体は、API 返り値の JSON の中の data 要素に入っています。こちらをデコードすると元のデータを参照できます。
- 1 つの LoRaWAN グループに複数の設定が含まれている場合、すべてのサービスが有効になります。たとえば、SORACOM Harvest にデータを格納しつつ SORACOM Beam で外部サーバへデータを転送することが可能です。
応用編: 各種サービスへのデータ送信
こちらのセクションでは、LoRaWAN デバイスのより発展的な使い方を紹介します。Beam, Funnel へのデータ送信を行う場合には、事前に Arduino スケッチを用意してください。Harvest でデータ送信を行うサンプルスケッチが Arduino library for LoRaWAN Device に付属していますので、そちらを参考にしてください。
応用編 1: Beam を使ってデータを送信する
Beam を使ってデータを送信します。Beam について詳しくは、SORACOM Beam を参照してください。
設定
Beam の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
LoRaWAN グループ画面で
をクリックします。LoRaWAN グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
→ の順にクリックします。
設定画面が表示されます。
データ転送先のプロトコル・ホスト名・ポート番号と、転送先パスを入力します。
データ転送の際、カスタム HTTP ヘッダを付けたい場合には「+」ボタンを押し、ヘッダ名と値をセットします。
をクリックします。
LoRaWAN デバイスの Funnel の設定が完了しました。
疎通確認
データ転送先に指定したサーバでデータが受信できていることを確認します。
応用編 2: Funnel を使ってデータを送信する
Funnel を使ってデータを送信します。Funnel について詳しくは、SORACOM Funnel を参照してください。
設定
Funnel の設定はグループに対して行います
ここでは、グループの設定を変更する操作のみを説明します。グループの仕組みやグループを作成する操作について詳しくは、グループ設定 を参照してください。
LoRaWAN グループ画面で
をクリックします。LoRaWAN グループ画面を表示する操作について詳しくは、グループの設定を変更する を参照してください。
スイッチをクリックして「ON」にします。
で、データ転送先となるクラウドサービスを選択します。
入力が必要な項目が表示されます。
転送先の情報を入力します。
たとえば、
には、データ転送先のクラウドサービスのエンドポイント URL を入力します。をクリックします。
LoRaWAN デバイスの Funnel の設定が完了しました。
疎通確認
データ転送先に指定したクラウドサービス (AWS Kinesis Firehose, Azure Event Hubs 等) でデータが受信できていることを確認します。
応用編 3: ダウンリンク通信機能を使ってデバイスでデータを受信する
SORACOM Air for LoRaWAN では、指定した LoRaWAN デバイスにデータを送信できます。ダウンロード用のデータは LoRa ネットワークサーバにセットされ、次に利用可能なデータ送信スロットを使って指定デバイスに送信されます。デバイスがデータ送信したとき、ネットワークサーバにダウンロードデータがセットされていると、デバイスはデータを受信します。
送信できるデータは 16 進数でエンコードされたバイナリデータの文字列です。バイナリデータの最大サイズは 11 octets (16 進数エンコードされた文字列で 22 文字) で、文字列は大文字・小文字問わず送信できます。
ユーザーコンソールを使ってダウンリンク機能を利用する手順は以下のとおりです。
- 事前に LoRaWAN デバイスにスケッチを書き込んでおきます。
- 動作テストをする場合、Arduino library for LoRaWAN Device に付属の
Hello_lora.ino
を使ってください。データが受信できればシリアルモニタのログで確認できます。
- 動作テストをする場合、Arduino library for LoRaWAN Device に付属の
- 画面左上のメニューボタンで「LoRa デバイス管理」をクリックします。
- データを送信したい LoRaWAN デバイスにチェックを入れ、「操作」ボタンから「ダウンリンク通信」を選択します。
- ダイアログが表示されたら、そのデバイスに送信したいデータを入力し「送信」ボタンをクリックします。
- これで送信データは LoRa ネットワークサーバにセットされ、次に利用可能なデータ送信スロットを使って指定デバイスに送信されます。データの受信状況はデバイス側で確認してください。
- 送信したデータが LoRaWAN デバイスに到達することは保証されません。未送信のデータが既に LoRa ネットワークサーバにあった場合には、最新の受信データで上書きされます。また、一定時間 (2 時間) メッセージが受け取られなかった場合や、デバイス受信時に新しいメッセージを受けた場合には、そのメッセージは破棄されます。
- ダウンリンク通信機能では、LoRaWAN デバイスへのメッセージ送信を設定する回数に応じて料金が発生します。詳しくは料金表をご確認ください。