Technical Information/Raspberry Pi

Edit  

The Things Netowrk への接続手順 (DRAGINO LoRa GPS HAT-JP使用)

2019/06/29

 以下の記事では、これらのサイトで紹介されている方法を参考に、The Things Network のゲートウェイを設置する手順をまとめてあります。(最新の環境に合わせ一部を変更しています)

 ※ Global_conf.json の記載に抜けがあったので追加しました。 2020/5/31

P1060657s.png

 

 
Edit  

Raspberry Pi と LoRa GPS HAT の設定

 
Edit  

使用するもの

  1. Raspberry Pi3 model B
  2. マイクロSDカード 16GB
  3. ゲートウェイモジュール DORAGINO LoRa GPS HAT-JP
 
Edit  

ゲートウェイの準備

  1. Raspberry Pi3 model B に、 ゲートウェイモジュール DORAGINO LoRa GPS HAT-JP を取り付けます。
  2. Raspbian をインストールします。NOOBSをダウンロードします。トラブルは避けたいので、今回は使い慣れた NOOBS_v2_9_0 にしました。ダウンロード後、圧縮ファイルを解凍してフォーマット済みのマイクロSDカードへコピーします。ラズベリーパイのSDカードスロットに差し込んで電源を入れ、OSのインストール作業を行います。(詳しい手順は割愛します)
  3. ラズベリーパイのメニューより「設定」-「Raspberry Piの設定」を選択し「Raspberry Piの設定」ダイアログを開き、「インターフェース」タブの「SPI」を「有効」に設定します。
  4. 一旦ラズベリーパイをリブートします。
  5. ラズベリーパイのGUIからChromiumブラウザを立ち上げ、ゲートウェイのファームウェアのソースコードを下記サイトよりダウンロードします。
  6. ラズベリーパイのホームディレクトリ(/home/pi)に、 dual_chan_pkt_fwd というフォルダを作成します。
  7. ダウンロードした dual_chan_pkt_fwd-master.zip の中身をラズベリーパイ標準のファイルブラウザを使って上記のフォルダに解凍します。
  8. dual_chan_pkt_fwd フォルダにある dual_chan_pkt_fwd.cpp を修正します。
    1. 周波数の変更
      uint32_t freq =   923400000;  //868100000; // in MHz! (868.1)
      uint32_t freq_2 = 923200000;  //868300000; // in MHz! (868.3)
    2. 上記の直下に、下記のコードを追加
      // Tx Power Register
      #define REG_PA_CFG 0x09
      // Power Setting for Japan ARIB STD-T108 
      // 20mW=13dBm
      // SX1276 RegPaConfig(0x09), Val=0x3f
      // bit 7 PaSelect = 0 select RFO
      // bit 6-4 MaxPower = 3 Pmax=10.8+0.6*3=12.6 < 13
      // bit 3-0 OutputPower = 0x0f Pout=Pmax-(15-0x0f)=12.6
      // SX1272 RegPaConfig(0x09), Val=0x0e
      // bit 7 PaSelect = 0 select RFO
      // bit 6-4 unused = 0
      // bit 3-0 OutputPower = 0xe Pout=-1 + OutputPower = -1 + 0x0e = 13dBm 
      int PWR_JPN_1276 = 0x3f;
      int PWR_JPN_1272 = 0xe;
    3. 下記のコードの直前に、
      if (sf == SF10 || sf == SF11 || sf == SF12) {
        WriteRegister(REG_SYMB_TIMEOUT_LSB, 0x05, CE);
      } else {
        WriteRegister(REG_SYMB_TIMEOUT_LSB, 0x08, CE);
      }
        下記コードを追加:
      // Set Tx Power for Japan
      if (sx1272) {
        WriteRegister(REG_PA_CFG, PWR_JPN_1272, CE);
      } else {
      // sx1276
        WriteRegister(REG_PA_CFG, PWR_JPN_1276, CE);
      }
      その後、ファイルを保存します。


    4. つづいて、dual_chan_pkt_fwd フォルダにある Global_conf.json ファイルを以下のように修正します。
      {
        "SX127x_conf":
        {
          "freq": 923400000,
          "freq_2": 923200000,
          "spread_factor": 10,
          "pin_nss": 6,
          "pin_dio0": 7,
          "pin_nss_2": 6,
          "pin_dio0_2": 7,
          "pin_rst": 3,
          "pin_led1":4,
          "pin_NetworkLED": 22,
          "pin_InternetLED": 23,
          "pin_ActivityLED_0": 21,
          "pin_ActivityLED_1": 29
        },
        "gateway_conf":
        {
          "ref_latitude": 33.893361,
          "ref_longitude": 135.204960,
          "ref_altitude": 20,
      
          "name": "<あなたのユーザーネーム>",
          "email": "<あなたのeメールアドレス>",
          "desc": "Dual channel pkt forwarder",
      
          "interface": "eth0",
      
          "servers":
          [
            {
              "address": "router.jp.thethings.network",
              "port": 1700,
              "enabled": true
            },
            {
              "address": "router.as2.thethings.network",
              "port": 1700,
              "enabled": false
            }
          ]
        }
      }
  1. コンソールを開いて、dual_chan_pkt_fwdへ移動し、プログラムをコンパイルします。
    make
    以下はログです。
    pi@raspberrypi:~ $ pwd
    /home/pi
    pi@raspberrypi:~ $ cd dual_chan_pkt_fwd
    pi@raspberrypi:~/dual_chan_pkt_fwd $ make
    g++ -std=c++11 -c -Wall -I include/ dual_chan_pkt_fwd.cpp
    g++ dual_chan_pkt_fwd.o base64.o -lwiringPi -o dual_chan_pkt_fwd
    pi@raspberrypi:~/dual_chan_pkt_fwd $ ls
    LICENSE    base64.c  dual_chan_pkt_fwd      dual_chan_pkt_fwd.service  include
    Makefile   base64.h  dual_chan_pkt_fwd.cpp  global_conf.json
    README.md  base64.o  dual_chan_pkt_fwd.o    images
  2. 作成したプログラムをインストールします。
    make install
    以下はログです。
    pi@raspberrypi:~/dual_chan_pkt_fwd $ make install
    sudo cp -f ./dual_chan_pkt_fwd.service /lib/systemd/system/
    sudo systemctl enable dual_chan_pkt_fwd.service
    sudo systemctl daemon-reload
    sudo systemctl start dual_chan_pkt_fwd
    sudo systemctl status dual_chan_pkt_fwd -l
    ● dual_chan_pkt_fwd.service - Lora Packet Forwarder
       Loaded: loaded (/lib/systemd/system/dual_chan_pkt_fwd.service; enabled; vendo
       Active: active (running) since Fri 2019-06-28 02:06:07 JST; 157ms ago
     Main PID: 2560 (dual_chan_pkt_f)
       CGroup: /system.slice/dual_chan_pkt_fwd.service
               mq2560 /home/pi/dual_chan_pkt_fwd/dual_chan_pkt_fwd
    
     6月 28 02:06:07 raspberrypi systemd[1]: Started Lora Packet Forwarder.
    pi@raspberrypi:~/dual_chan_pkt_fwd $
    自動的にdual_chan_pkt_fwd サービスが開始されます。ここでエラーが出ると正しくコンパイルが終了していない可能性がありますので、makeの手順および結果を確認します。


  3. 作成したプログラムを実行します。
    sudo ./dual_chan_pkt_fwd
    以下はログです。
    pi@raspberrypi:~/dual_chan_pkt_fwd $ sudo ./dual_chan_pkt_fwd
    server: .address = router.eu.staging.thethings.network; .port = 1700; .enable = 1
    server: .address = router.eu.thethings.network; .port = 1700; .enable = 0
    Gateway Configuration
      <Gatewqay Name> (abc@cde.com)
      Dual channel pkt forwarder
      Latitude=33.89336014
      Longitude=135.20495605
      Altitude=20
      Interface: eth0
    Trying to detect module CE0 with NSS=6 DIO0=7 Reset=3 Led1=unused
    SX1276 detected on CE0, starting.
    Trying to detect module CE1 with NSS=6 DIO0=7 Reset=3 Led1=unused
    SX1276 detected on CE1, starting.
    Gateway ID: b8:27:XX:XX:XX:XX:8e:02
    Listening at SF10 on 923.400000 Mhz.
    Listening at SF10 on 923.200000 Mhz.
    -----------------------------------
    stat update: 2019-06-27 17:07:03 GMT no packet received yet
    stat update: 2019-06-27 17:07:33 GMT no packet received yet
    stat update: 2019-06-27 17:08:03 GMT no packet received yet
      :
      :
    これでゲートウェイ側が動作していることになります。表示されるGatway ID はラズパイの有線LAN (WiFiを選択していた場合は無線LAN)のMACで、TTNのゲートウェイ登録のIDとなるため控えておきます。
 
Edit  

TTNアカウントの作成とゲートウェイの設定およびアクティブ化

  • Sign Up ボタンをクリックします。
    WS000345.PNG
     
  • username、e-mailアドレス、パスワードを入力します。
    USERNAME : <あなたのユーザネーム>
    EMAIL ADDRESS : <あなたのメールアドレス>
    PASSWORD : <あなたのパスワード>
    WS0003451_mod.PNG
     
  • Create Account ボタンを押してアカウントを作成します。
    • 登録したe-mailアドレスに アカウント認証のメールが届くので、メール内の「Activate account」ボタンをクリックしアカウントを有効にします。
  • Console ボタンを押します。
    WS000348_mod.PNG
     
  • ユーザ名のロゴをクリックし、Settingsタブを開きます。
    WS000349_mod.PNG
     
  • Language の項目を 日本語に変更し、「Save」ボタンを押します。
    language.PNG
     
  • 左上のコンソールロゴを押し、コンソールのトップ画面に戻ります。
  • 「ゲートウェイ一覧」をクリックします。
    WS000352_mod.PNG
     
  • 「ゲートウェイを登録」をクリックします。
    ゲートウェイを登録.PNG
     
  • 「I’m Using the legacy packet forwarder」のチェックボックスにチェックを入れます。
    • 「ゲートウェイEUI」には、eth1(あるいは wlan1)のMACアドレスを設定します。
      B8 27 XX XX XX XX 8e 02
    • 「記述」には任意のゲートウェイの名前を入力します。
      <ゲートウェイ名>
    • 「周波数計画」には 「Asia 920-923MHz」を設定。
    • 「Router」には「ttn-router-jp」を設定。
    • 「場所」にはゲートウェイ設置場所のlatitude とlongitudeを設定。
      <latitude> <longitude>
    • 「アンテナ代替え」にはインドアかアウトドアのどちらかを選択します。
      インドア
      WS000354_mod.PNG
       
      WS000355_mod.PNG
       
      WS000356_mod.PNG
       
        以上の設定後、「ゲートウェイ登録」を押して登録を完了します。
  • つづいて、登録したゲートウェイの詳細画面が開くので、順次設定していきます。
  • まずは、右上の「設定」をクリックします。
    WS000357_mod.PNG
     
  • 「ゲートウェイ設定」メニューの、「情報」をクリックします。
    gateway_settings.PNG
     
    • 「ブランド」にゲートウェイのメーカ名を入力します。
      Dragino
    • 「モデル」にゲートウェイのモデル名を入力します。
      LoRa GPS-HAT-JP
    • 「アンテナ」にアンテナ名称を入力します。
      N/A
      「ゲートウェイを更新」ボタンを押し確定させます。
      WS000359_mod.PNG
        
      これでゲートウェイの登録は完了したことになります。ラズパイをLANケーブルでLANに接続すると、TTNのゲートウェイ一覧が「未接続」から「接続済」に変化することを確認します。
      WS000360_mod.PNG
       
      The Things Networkのフロントページ( https://www.thethingsnetwork.org/ ) のGateway Map に自分のゲートウェイが表示されていることを確認します。最初はパラメータがunknown になっていますが、しばらくすると登録した内容が反映されます。
       
      WS000362_mod.PNG
       

トップ   リロード   一覧 単語検索