Soracom

Users

ドキュメント

LoRaWAN デバイスを設定する

はじめに 

このドキュメントでは、ユーザーコンソールを使って LoRaWAN デバイスを管理・設定する方法を紹介します。SORACOM Air for LoRaWAN の全体像は SORACOM Air for LoRaWAN を参照してください。

通信を行うための基本設定と疎通確認の手順を解説します。さらに発展した使い方は、本ドキュメント後半の「応用編」で紹介します。

当ガイドの前提は以下のとおりです。

ステップ 1: デバイスの設定をする 

次に、LoRaWAN デバイスの確認と設定を行います。LoRa デバイスはユーザーコンソールの「発注」画面で受け取り確認を行った時点で、お客様のアカウントに登録されます。まずは以下の手順に沿って、ユーザーコンソール上で自分が所有しているデバイスが表示されていることを確認しましょう。

  • ユーザーコンソール左上のメニューから「LoRa デバイス管理」を開きます。
  • デバイス一覧に自分が所有している デバイスが表示されていることを確認します。
ユーザーコンソールに LoRaWAN デバイスが表示されていない場合、デバイスの受け入れ処理が未済かもしれません。ユーザーコンソールの「発注」画面で「受け取り確認」ボタンをクリックしてください。

ステップ 1-1: LoRa グループを作成する 

デバイスがアカウントに登録されていることを確認したら、データ送信先などの設定をするために LoRa グループを作成します。設定手順は以下のとおりです。

  • ユーザーコンソール左上のメニューボタンから「LoRa グループ」をクリックします。
  • LoRa グループ一覧画面が表示されたら、画面左上の「追加」ボタンをクリックします。
  • LoRa グループ名を入力し「作成」ボタンをクリックするとグループの作成完了です。

ステップ 1-2: LoRa グループの設定を確認・変更する 

続いて LoRa グループに設定を行い、デバイスが通信できるようにセットアップしましょう。LoRa グループの設定画面では、以下の手順で LoRa Space の利用有無の設定とデータ送信先の設定を行うことができます。

  • ユーザーコンソール左上のメニューボタンから「LoRa グループ」をクリックします。
  • LoRa グループ一覧画面で設定を確認・変更したいグループをクリックすると、LoRa グループの詳細画面が表示されます。
  • LoRa グループの詳細画面で、「SORACOM Air for LoRaWAN 設定」のメニューを開きます。この設定項目では 2 つの設定を行うことができます。
    • LoRa Space を利用するかどうか: 共有サービスモデルのゲートウェイをグループ内の デバイスに利用させるには、ここで「利用する」を選択します。
    • デバイスが所属するネットワークセットの ID: 所有モデルゲートウェイを利用している場合、デバイスを所属させたいネットワークセットを指定します。デバイスはここで指定されたネットワークセットに所属するゲートウェイを使って通信を行います。
  • 最後に「保存」ボタンをクリックすると設定完了です。
「SORACOM LoRa Space を利用」のスイッチを「利用しない」にセットし、かつ「LoRa ネットワークセット ID」を空欄にすると LoRa デバイスは通信できなくなります。ご注意ください。

overview

ステップ 1-3: デバイスを LoRa グループに登録する 

続いて、先に設定した LoRa グループにデバイスを登録します。通信を行うためには、1 つの LoRa デバイスは必ず 1 つの LoRa グループに所属させる必要があります。

  • ユーザーコンソール左上のメニューボタンから「LoRa デバイス管理」をクリックします。

  • LoRa デバイス一覧が表示されたら、LoRa グループに登録したい デバイスにチェックマークを付けます。

  • 画面左上の「操作」ボタンをクリックし、「所属グループ変更」をクリックして、デバイスを所属させたいグループをセットします。

  • 最後に「グループ変更」ボタンをクリックするとグループ設定完了です。

    overview

ステップ 2: SORACOM Harvest を使って疎通確認する 

LoRa デバイスで収集したデータは、Beam, Funnel, Harvest いずれかのサービスを使って送信できます。今回は設定の簡単な Harvest を使ってデータ送信を行い、デバイスが通信できているかどうか確認を行います。他のサービスを使ってデータを送信する方法は、当ドキュメントの応用編を参照してください。

  • データを送信するためのライブラリを用意しています。Arduino library for LoRaWAN Device を参考に開発環境を準備し、データ送信にご利用ください。
  • SORACOM Harvest は有料のサービスです。Harvest を有効にするとデバイス 1 台 1 日あたり 5.5 円の料金が発生しますのでご留意ください。
  • 1 つの LoRa グループに複数の設定が含まれている場合、すべてのサービスが有効になります。たとえば、SORACOM Harvest にデータを格納しつつ SORACOM Beam で外部サーバへデータを転送することが可能です。

LoRa グループの設定 

  • ユーザーコンソール左上のメニューから「LoRa グループ管理」を開き、設定変更したいグループをクリックします。
  • LoRa グループ設定画面で「SORACOM Harvest 設定」を開きます。
  • 有効化・無効化のスイッチが表示されますので、「ON」にセットします。
  • 「保存」ボタンをクリックし、入力内容を保存したら設定完了です。

Harvest の使い方は Getting Started: Harvest Data でデバイスのデータをクラウドで収集・取得・可視化する を参照してください。

LoRaWAN デバイスに接続された Arduino にスケッチを書き込み、実行する 

  • LoRa デバイスに接続された 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 ゲートウェイのネットワークに LoRa デバイスが参加できたことを示しています。また、シリアルモニタで 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
>> <LoRa デバイス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.

データ送信できていることを確認 

  • 画面左上のメニューボタンで「LoRa デバイス管理」をクリックします。

  • データを送信した LoRa デバイスにチェックを入れ、「操作」ボタンから「データを確認」を選択します。

  • Harvest のデータ表示画面が表示されますので、LoRa デバイスから送信したデータが取得できていることを確認してください。

    harvest

  • LoRaWAN の規格上、1 度に送信可能なデータは最大 11byte となります。
  • LoRa デバイスでデータ送信すると、送信データは 16 進数でエンコードされたバイナリデータの文字列として SORACOM プラットフォームに到着します。
  • Harvest ユーザーコンソールの「データ」カラムや、Harvest API の返り値で JSON 形式のデータが表示されるのは、LoRa ゲートウェイが、お客様のデバイスから送信されたデータと併せてタイムスタンプ等のメタデータを付与しているためです。LoRa デバイスから送信されたデータ自体は、API 返り値の JSON の中の data 要素に入っています。こちらをデコードすると元のデータを参照できます。

Harvest の利用方法の詳細は Getting Started: Harvest Data でデバイスのデータをクラウドで収集・取得・可視化する をご覧ください。

応用編: 各種サービスへのデータ送信 

こちらのセクションでは、LoRa デバイスのより発展的な使い方を紹介します。Beam, Funnel へのデータ送信を行う場合には、事前に Arduino スケッチを用意してください。Harvest でデータ送信を行うサンプルスケッチが Arduino library for LoRaWAN Device に付属していますので、そちらを参考にしてください。

応用編 1: Beam を使ってデータを送信する 

設定 

  • ユーザーコンソール左上のメニューから「LoRa グループ管理」を開き、設定変更したいグループをクリックします。
  • LoRa グループ設定画面で「SORACOM Beam 設定」を開きます。
  • 「+」マークのボタンを押し、「LoRa → HTTP/HTTPS エントリポイント」をクリックします。
  • 設定画面が表示されたら、データ転送先のプロトコル・ホスト名・ポート番号と、転送先パスを入力します。データ転送の際、カスタム HTTP ヘッダを付けたい場合には「+」ボタンを押し、ヘッダ名と値をセットします。
  • 「保存」ボタンをクリックし、入力内容を保存したら設定完了です。

Beam の基本的な使い方は テストサーバーを利用して Beam の設定方法と動作を確認する を参照してください。

疎通確認 

データ転送先に指定したサーバでデータが受信できていることを確認します。

応用編 2: Funnel を使ってデータを送信する 

設定 

  • ユーザーコンソール左上のメニューから「LoRa グループ管理」を開き、設定変更したいグループをクリックします。
  • LoRa グループ設定画面で「SORACOM Funnel 設定」を開きます。
  • 「リソースタイプ」のメニューから、データ転送先となるクラウドサービスを選択します。
  • 入力が必要な項目が表示されますので、転送先の情報を入力します。「リソース URL」は、データ転送先のクラウドサービスのエンドポイント URL を入力してください。
  • 最後に「保存」ボタンをクリックし、入力内容を保存したら設定完了です。

Funnel の基本的な使い方は Kinesis Firehose アダプターを使用してクラウドにデータを収集する(コンソール版) を、機能詳細は Funnel 仕様詳細 を参照してください。

疎通確認 

データ転送先に指定したクラウドサービス (AWS Kinesis Firehose, Azure Event Hubs 等) でデータが受信できていることを確認します。

応用編 3: ダウンリンク通信機能を使ってデバイスでデータを受信する 

SORACOM Air for LoRaWAN では、指定した LoRa デバイスにデータを送信できます。ダウンロード用のデータは LoRa ネットワークサーバにセットされ、次に利用可能なデータ送信スロットを使って指定デバイスに送信されます。デバイスがデータ送信したとき、ネットワークサーバにダウンロードデータがセットされていると、デバイスはデータを受信します。

送信できるデータは 16 進数でエンコードされたバイナリデータの文字列です。バイナリデータの最大サイズは 11 octets (16 進数エンコードされた文字列で 22 文字) で、文字列は大文字・小文字問わず送信できます。

ユーザーコンソールを使ってダウンリンク機能を利用する手順は以下のとおりです。

  • 事前に LoRa デバイスにスケッチを書き込んでおきます。
    • 動作テストをする場合、Arduino library for LoRaWAN Device に付属の Hello_lora.ino を使ってください。データが受信できればシリアルモニタのログで確認できます。
  • 画面左上のメニューボタンで「LoRa デバイス管理」をクリックします。
  • データを送信したい LoRa デバイスにチェックを入れ、「操作」ボタンから「ダウンリンク通信」を選択します。
  • ダイアログが表示されたら、そのデバイスに送信したいデータを入力し「送信」ボタンをクリックします。
  • これで送信データは LoRa ネットワークサーバにセットされ、次に利用可能なデータ送信スロットを使って指定デバイスに送信されます。データの受信状況はデバイス側で確認してください。
  • 送信したデータが LoRa デバイスに到達することは保証されません。未送信のデータが既に LoRa ネットワークサーバにあった場合には、最新の受信データで上書きされます。また、一定時間 (2 時間) メッセージが受け取られなかった場合や、デバイス受信時に新しいメッセージを受けた場合には、そのメッセージは破棄されます。
  • ダウンリンク通信機能では、LoRa デバイスへのメッセージ送信を設定する回数に応じて料金が発生します。詳しくは料金表をご確認ください。