Dragino社LG01-JP(LoRaゲートウェイ)の新ファームウェアでThe Things Networkに接続する!


【概要】
Dragino社のLG01-JPで、The Things Networkにデータをアップする手順を説明します。

1.The Things Networkにアカウントを作成し、ログインします。

https://www.thethingsnetwork.org/country/japan/ をブラウザで開き、右上の「SIGN UP」をクリックします。ガイダンスに従って、アカウントを作成してください。

・ログインします。
https://account.thethingsnetwork.org/users/login をブラウザで開き、登録したユーザID、パスワードでログインします。

2.ゲートウェイの登録を行います。

・コンソールに移動します。
画面上の「CONSOLE」をクリックしてコンソール画面に移動します。

・ゲートウェイの登録画面に移動します。
画面右側の「GATEWAYS」の画像をクリックします。

・ゲートウェイの登録を行います。
「register gateway」をクリックします。

・必要な項目を設定します。
「I'm using the legacy packet forwarder」にチェックを入れます。

上記チェック後、「Gateway ID」が、「Gateway EUI」に変わります。
項目を入力します。

「Gateway EUI」: LG01-JP本体のeth1のMACアドレス(※1 LG01-JPの設定でも使います)
  ※SSHで接続し、「ifconfig -a | grep eth1」でMACアドレスを確認し、
   「:」抜きで入力します。また、4バイト目と、5バイト目に、「FF」を追加します。
   例:A8:40:41:17:C6:28 の場合、A8 40 41 FF FF 17 C6 28 となります。
「Description」: ゲートウェイの名前を設定します(適当)。
「Frequency Plan」: 「Asia 920-923MHz」を選択します。
「Router」: 「ttn-router-asia-se」を選択します。
「Location」: 地図上で、LG01-JPの設置場所を選択します。
        (※2 地図右上に、「lat」、「lng」の値があります。
            LG01-JPの設定設定で使うので覚えておきましょう。)
「Antenna Placement」: 「indoor」(屋内)、「outdoor」(屋外)から選択します。

右上の「Settings」をクリックします。

「Information」をクリックし、「Brand」、「Model」、「Antenna」を入力します。

以上で、ゲートウェイの登録は完了です。引き続き、アプリケーションの登録を行います。

3.アプリケーションの登録

・アプリケーションの登録画面に移動します。
「APPLICATIONS」の画像をクリックします。

右上の「add application」をクリックします。

各項目を設定します。

「Application ID」: 半角英数、「_(アンダーバー)」でIDを設定します。
「Description」: このアプリケーションの名前を設定します。
「Application EUI」: (設定不要)
「Handler registration」: 「ttn-handler-asia-se」を選択します。

・アプリケーションにデバイスを追加します。
「Devices」をクリックします。

右上の「register device」をクリックします。

必要な項目を設定します。

「Device ID」: 半角英数、「_(アンダーバー)」でIDを設定します。
「Device EUI」: 適当で良いようです。 YY MM DD 連番 FF FF FF FF で登録しました。
「App Key」: 設定不要です。 
「App EUI」: そのままでOKです。

デバイスを選択します(OTAA→ABPの設定変更を行います)。

右上の「Settings」をクリックします。

「Activation Method」で、「ABP」を選択します。

元の画面に戻り、下の方に、「EXAMPLE CODE」に、デバイスアドレス、ネットワークキー、アプリケーションキーがコードで表示されているのでコピーしておきます(※1)。

以上で、「The Things Network」の設定は完了です。続いて、Dragino LG01-JPの設定を行います。

4.ゲートウェイ(LG01-JP)の設定

・ゲートウェイのLoRaWAN関連の設定を行います。
ブラウザで、LG01-JPの設定画面を開きます(デフォルトでは、http://10.130.1.1 です)。
ログインします。
初期ユーザID、パスワードは、root / dragino です。ログインしたらパスワードを変更するようにしましょう。

・MCU(LG01-JP上のLoRaMiniの書き換えになります)のプログラムの書き換えを行います。
画面上部の「Sensor」→「Flash MCU」をクリックします。

https://www.openwave.co.jp/opwcloud/index.php/s/xvxoieFyT7eEeuO から、「single_pkt_fwd_v002.hex」をダウンロードします。
ダウンロードしたら、「ファイルを選択」ボタンをクリックして、ダウンロードしたファイル「single_pkt_fwd_v002.hex」を選択し、「Flash Image」をクリックします。
MCUの書き換えが始まります。

・LG01-JPのIoTサーバの種類を選択します(MQTT、LoRaWANなど)。
画面上部の「Sensor」→「IoT Server」をクリックします。

「IoT Server」で、「LoRaWAN」を選択します。「Save & Apply」をクリックします。

・LoRaWAN関連の設定(接続先、Frequencyなど)を行います。
画面上部の「Sensor」→「LoRa/LoRaWAN」をクリックします。

設定します。設定が完了したら、画面右下にある「Save & Apply」をクリックします。

「Server Address」: router.as2.thethings.network
「Server Port」: 1700
「Gateway ID」: 「※1」と同じ値(空白は無し)
「Mail Address」: 実在するアドレス
「Latitude」: ※2の「lat」の値
「Longtitude」: ※2の「lng」の値
「TX Frequency」: 923200000
「RX Frequency」: 923200000
「Encryption Key」: 空
「Spreading Factor」: SF10
「Coding Rate」: 4/5
「Signal Bandwidth」: 125kHz
「Preamble Length」: 8

以上で、LG01-JPの設定は完了です。引き続き、エンドデバイス(LoRa Mini Dev JP)のプログラムの書き込みを行います。

5.エンドデバイス(LoRa Mini Dev JP)のプログラム書き込み

・ArduinoIDEをインストールします。
https://www.arduino.cc/en/main/software
からインストーラーをダウンロードし、インストールしてください。

・LMIC(LoraWAN-in-C library)のライブラリをインストールします。
 以下のライブラリは、AS923に対応したライブラリとなっています。
https://github.com/openwave-co-jp/arduino-lmic-master-for-LG01-JP
ダウンロードしたら、解凍して、ArduinoIDEをインストーリしたディレクトリの中にある、librariesフォルダの中に移動します。
例:C:\Program Files (x86)\Arduino\libraries

・TTNに接続するプログラムをダウンロードします。センサーデータを上げる場合などは、適宜変更してください。ダウンロードできるサンプルプログラムでは、「Hello, world!」と送るようになっています。
https://www.openwave.co.jp/opwmine/attachments/download/821/LoRaMiniTTN.zip
解凍したら、中にある「LoRaMiniTTN.ino」をArduinoIDEで開きます。

・40行目のNWKSKEY、45行目のAPPSKEY、51行目のDEVADDRをそれぞれ、「3.アプリケーションの登録」の、※1で控えておいた値に変更します。
  NWKSKEY:ネットワークキー
  APPSKEY:アプリケーションキー
  DEVADDR:デバイスアドレス

・コンパイルして、書き込みを行います。

以上で完了です。

The Things Networkのコンソールで、データの受信が確認できます。