No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

【Tutorial】建立自己的LoRa網路 — RAK811及RAK831實作評測

   

作者:柯大

本次將介紹以RAK Wireless 出品的LoRa相關模組及開發板自建LoRaWAN網路實作,採用RAK811、RAK831模組為例。以下為WisNode-Lora EVB 開發板套件實作說明

一、套件內容介紹

1. 套件開箱材料內容

內容物(圖片來源:RAK官網)

配件(圖片來源:RAK官網)

2. Wisnode-LoRa開發板外觀

開發板外觀介紹(圖片來源:RAK官網)

3. LoRa 開發板功能概述:

(1)Wisnode-LoRa: 採用RAK811 LoRa模組

(2)開發板相容Arduino Shield ,可直接插入Arduino 相容的所有MCU 開發板,如Arduino 系列:Arduino UNO R3、Arduino Leonado、Arduino Mega2560及MediaTeK Linkit ONE、RealTek Ameba 8195AM等開發板,可直接透過UART介面以AT Command 方式控制LoRa 開發板,其規格如下:

  • Wisnode-LoRa採用SX1276射頻晶片,Wisnode-LoRa-LF採用SX1278射頻晶片。
  • 完全符合LoRaWAN Class A&C協定規範。
  • 支援UART AT多種命令格式,支援多Channel 頻段設定,可直接以AT Command更改串列傳輸速率及空中速率。
  • 可支援以P2P方式自建LoRa網或標準LoRaWAN協議建立LoRa網路。
  • 遠距離LoRaWAN頻段:868/915MHz(LoRa點對點通信頻段為:868-1020MHz)。
  • 可支援不同國家公有LoRaWAN協議AS923、AU915、EU868、KR920、US915頻段。
  • 最大輸出功率100MW(20dBm),輸出功率可在5~20dBM。
  • 高接收靈敏度:-130dBm@0.3kps(低至-146dBm)
  • 強抗干擾性,前向糾錯技術,傳輸距離3000m,空曠地域更遠5000m
  • 低功耗,待機功耗500nA,支持空中喚醒
  • 多通道,雙數據緩衝區(每個256位元組)
  • LoRa/FSK/GFSK/OOK調製,雙向半雙工通信。

4. 開發板各接腳介面

各接腳介面(圖片來源:RAK官網)

二、模組靭體更新

1. 模組韌體更新需要幾個步驟,如下:

(1)為確保靱體版本最新版,首先請到官網下載RAK811 Firmware靱體更新工具Flash Loader Demostartor.zip

下載連接點

(2)解壓縮後執行:flase_loader_deo_v2.8.0安裝燒錄程式

(3)下載最新版Firmware 靭體  .BIN 檔   下載連接點

(4)解壓縮下載的ZIP檔

2. 燒錄最新靱體版本

(1)要燒錄新靭體需先將利用所附的跳接帽將P1 Boot 跳接至3V3,並將P5 CRX跳接TXD、CTX跳接RXD,並利用Micro USB線連接板子CON1再接到個人電腦端的USB座。

接線方式(圖片來源:柯大創客屋)

(2)執行Flash Loader Demonstrator 燒錄程式

(3)選擇UART正確COM Port 及傳輸設定再按<Next>執行下一步,如果接線正確將出現下列畫面,表示讀取正常,再按<Next>執行下一步。

(4)Target選擇STM32L1_Cat1-128K選項,再按<Next>執行下一步。

(5)點選◎Download to device 選項,並撰取已下載之最新版靭體 .bin檔案,按<Next>執行燒錄靭體。

(6)燒錄完成,按<Close>結束程式。

(7)拔掉USB線將P1 恢復正常操模式,將Boot跳接至GND,再利用Serial Port Test 程式以Micro USB線連接板子CON1 ,選擇連接埠,傳輸設定參數115200,8,N,1

圖片來源:柯大創客屋

(8)以at+band  及 at+version 查看燒錄後的靱體預設頻段及版本是否正確,如下:

三、P2P實作測試

1. 開發板接線方式

(1)將P1 恢復正常操模式,利用所附的跳接帽將Boot跳接至GND。

(2)將P5 CRX跳接TXD、CTX跳接RXD,並利用Micro USB線連接板子CON1再接到個人電腦端的USB座。

跳接帽跳接方式(圖片來源:柯大創客屋)

2組Wisnode-LoRa開發板P2P測試(圖片來源:柯大創客屋)

2. 同時開啟2個Serial Port Test 程式連接開發板進行測試,選擇正確連接埠,傳輸設定參數115200,8,N,1

開啟2個Serial Port Test 程式進行測試(圖片來源:柯大創客屋)

3. 以下列指令進行測試:

at+version    回應:OK2.0.2.2 (R11)

at+band        回應:OKEU868 (R9)

at+mode        回應:OK0 (R5

at+mode=1     // 設定為P2P mode     回應:OK (R4)

at+mode         回應:OK1 (R5)    // P2P mode

接收端: at+rf_config=867700000,10,0,1,8,14     回應:OK (R4)

※說明:設定  LoRa P2P頻段為867.7MHz,SF=10,頻寛=125KHz,coding rate:4/5,Preamlen=8,Power:14dBm

指令說明:at+rf_config[=<freq>, <sf>,<bw>, <cr>, <prlen>, <pwr> ]:設置P2P 的TXD 和RXD 的射頻參數。<freq>:頻率,預設860000000(860000000 ~1020000000);<sf>:擴頻因數,默認7 ( 6-10);<bw>:頻寬,默認0( 0:125KHz, 1:250KHz, 2:500KHz);<cr>:編碼率,預設1(1:4/5, 2:4/6, 3:4/7, 4:4/8);<prlen>:前導碼長度默認8 (8-65535);<pwr>:發送功率默認14 (5-20)

at+rxc=1   回應:OK (R4)

※說明:設定  設置Lora 連續接收

指令說明: at+rxc=<report_en> :設置Lora 連續接收參數,<report_en>:是否回報結果

at+rx_stop :停止Lora 連續接收      回應:OK (R4)

※說明:停止Lora 連續接收

發送端:at+rf_config=867700000,10,0,1,8,14      回應:OK (R4)

※說明:設定  LoRa P2P頻段為867.7MHz,SF=10,頻寛=125KHz,coding rate:4/5,Preamlen=8,Power:14dBm

指令說明:at+rf_config[=<freq>, <sf>,<bw>, <cr>, <prlen>, <pwr> ]:設置P2P 的TXD 和RXD 的射頻參數。<freq>:頻率,預設860000000(860000000 ~1020000000);<sf>:擴頻因數,默認7 ( 6-10);<bw>:頻寬,默認0( 0:125KHz, 1:250KHz, 2:500KHz);<cr>:編碼率,預設1(1:4/5, 2:4/6, 3:4/7, 4:4/8);<prlen>:前導碼長度默認8 (8-65535);<pwr>:發送功率默認14 (5-20)

at+txc=100,1000,800100000600010002da9557e142d9     回應:OK (R4)

※說明:設定  設置Lora 連續接收

指令說明: at+rxc=<report_en> :設置Lora 連續接收參數,<report_en>:是否回報結果

at+tx_stop     回應:OK (R4)

※說明:停止Lora 連續發送

2個Serial Port Test 程式P2P測試結果(圖片來源:柯大創客屋)

四、LoRaWAN連線實作測試:利用Wisnode-LoRa RAK811模組傳送至RAK831 LoRa Gateway

1.開發板接線方式:

(1)將P1 恢復正常操模式,利用所附的跳接帽將Boot跳接至GND。

(2)將P5 CRX跳接TXD、CTX跳接RXD,並利用Micro USB線連接板子CON1再接到個人電腦端的USB座。

圖片來源:柯大創客屋

2. RAK831 LoRa Gateway接線方式,請參考【Tutorial】建立自己的LoRa網路 — RAK 831模組評析

RAK831閘道模板與Raspberry Pi3組合連接圖(圖片來源:柯大創客屋)

3. 按照下列步驟安裝LoRaWAN軟體:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install git
  • 使用git 命令下载安装程序
  • git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git
  • cd ic880a-gateway/
  • 安裝程式,執行sh
  • sudo ./install.sh
  • 在安裝的過程中,會詢問你是否通過遠端設定檔安裝,你可以選擇‘y’或者‘yes’ 來繼續安裝,這時樹莓派就會自動下載網上提供的開源的代碼。你會在安裝的提示資訊中看到網關的EUI,請記住這個EUI 資訊,這很重要。
  • Gateway的EUI 資訊(圖片來源:柯大提供)
  • 如果你使用的是遠端配置,那麼你就必須擁有遠端設定檔。你需要在這個連結上創建,你的遠程設定檔, 設定檔為JSON檔,檔案名為剛才需要記住的設備EUI(g. B827EBFFFE7B80CD.json)
  • 由於是在別人的github 專案中提交自己的檔,因此需要別人的同意,你需要點提交申請,大概一天後,你的檔就會出現在該專案中。

檔案的內容,可以查看其它人提交的文件用作參考(圖片來源:柯大提供)

4. 到TTN網站註冊Gateway

(1) RAK831 閘道安裝完成後,你需要到LoRa 網路服務商註冊閘道,由於使用的程式為TTN 提供的,因此只能使用TTN 做為網路服務商。首先,你需要註冊一個TTN 帳號,然後添加閘道設備。閘道設備的ID 請使用前面記住的設備EUI。如果你不太清楚如何註冊設備,請參考Gateway Registration的網站。

(2) REGISTER GATEWAY註冊1個Gateway

請勾選後再輸入裝置EUI 即可

一旦註冊了閘道,就會看到閘道控制台頁面(紅色方框可以顯示閘道是否連接上)

5.建立APPLICATIONS及DEVICE

圖片

(1)新增APPLICATION

圖片

(2) 新增DEVICE

6. Wisnode-LoRa RAK811 Node端頻段及參數設定

(1)由於RAK831 LoRa Gateway採用SemTech SX1301 8 Channel 晶片,我們實作採用EU868頻段測試,Gateway設定各Channel 頻段為867.1MHz~868.3MHz,LoRaWAN支援跳頻,可利用下列at+set_config=ch_list:0,…指令設定各通道開啟及頻段。

延伸閱讀

at+set_config=ch_list:0,on,867100000,0,3

at+set_config=ch_list:1,on,867300000,0,3

at+set_config=ch_list:2,on,867500000,0,3

at+set_config=ch_list:3,on,867700000,0,3

at+set_config=ch_list:4,on,867900000,0,3

at+set_config=ch_list:5,on,868100000,0,3

at+set_config=ch_list:6,on,868300000,0,3

at+set_config=ch_list:7,on,868500000,0,3

(2)利用 at+get_config=ch_list 指令查看設定結果:

回應

OK0,on,867100000,0,3;1,on,867300000,0,3;2,on,867500000,0,3;3,on,867700000,0,3;

4,on,867900000,0,3;5,on,868100000,0,3;6,on,868300000,0,3;7,on,868500000,0,3;8,off;9,off;10,off;11,off;

12,off;13,off;14,off;15,off (R209)

(3)利用 下列指令設定dev_addr、nwks_key、apps_key,並以ABP方式加入LoRaWAN:

延伸閱讀

at+set_config=dev_addr:26011C62&nwks_

key:261D9CCE723824D9CA1751207187C211&apps_key:835384EB70799CBA00CA159E214B21D5

at+join=abp

(4)利用 at+abp_info 指令查看設定結果:at+abp_info

回應:OK0,26011c62,261d9cce723824d9ca1751207187c211,835384eb70799cba00ca159e214b21d5 (R80)

(5)利用 at+send 傳送測試資料封包:

at+send=0,2,010203040506     回應:at+recv=2,0,0 (R15)

at+send=1,2,11223344556677889900FF     回應:at+recv=1,0,0 (R15)

at+send=0,2,010203040506070809101112     回應:at+recv=2,0,0 (R15)

at+send=0,2,AABBCCDDEEFF00C1C2C3EF.    回應:at+recv=2,0,0 (R15)

7. 可以從Raspberry Pi LoRa Gateway 後台查看封包轉發情形:

8. 也可以從The Things Network後台查看封包接收情形

五、利用Ameba板連接Wisnode-LoRa RAK811開發板實作測試

1. 開發板接線方式:

(1)將P1 恢復正常操模式,利用所附的跳接帽將Boot跳接至GND。

(2)將P5 RXD跳接TX、TXD跳接RX,並將Wisnode-LoRa 板插上Ameba開發板Arduino 相容Pin腳座,利用Micro USB線連接Ameba開發板CON2再接到個人電腦端的USB座。

2.下載RAK811說明文件及RAK811 Arduino Library,下載點

3. 將RAK811 Arduino Library 匯入 Arduino 程式庫,再開啟範例測試,共有3個範例:JoinNetworkABP.ino 、 JoinNetworkOTAA.ino 、 LoRaP2PPingPongTest.ino

4. JoinNetworkABP.ino程式碼如下,可修改DevAddr、NwkSKey、AppSKey 3個值為我們在TTN上所建立的DEVICE的值即可執行。

範例程式

//This sample for Ameba 8195A +RAK811 arduino code

#include “RAK811.h”

#include <SoftwareSerial.h>

#define WORK_MODE LoRaWAN   //  LoRaWAN or LoRaP2P

#define JOIN_MODE ABP    //  OTAA or ABP

#if JOIN_MODE == OTAA

String DevEui = “60C5A8FFFE000001”;

String AppEui = “70B3D57EF00047C0”;

String AppKey = “5D833B4696D5E01E2F8DC880E30BA5FE”;

#else JOIN_MODE == ABP

String NwkSKey = “261D9CCE723824D9CA1751207187C211”;

String AppSKey = “835384EB70799CBA00CA159E214B21D5”;

String DevAddr = “26011C62”;

#endif

#define TXpin 1   // Set the virtual serial port pins

#define RXpin 0

SoftwareSerial mySerial(RXpin,TXpin);    // Declare a virtual serial port

char* buffer = “72616B776972656C657373”;

 

RAK811 RAKLoRa(mySerial);

 

void setup() {

Serial.begin(115200);

while(Serial.read()>= 0) {}

while(!Serial);

Serial.println(“StartUP”);

mySerial.begin(115200);

}

 

void loop() {

Serial.println(RAKLoRa.rk_getVersion());

delay(500);

Serial.println(RAKLoRa.rk_getBand());

delay(500);

if(RAKLoRa.rk_setWorkingMode(WORK_MODE))

{

Serial.println(“you set Working mode is OK!”);

if (RAKLoRa.rk_initABP(DevAddr,NwkSKey,AppSKey))

{

Serial.println(“you init ABP parameter is OK!”);

if (RAKLoRa.rk_joinLoRaNetwork(JOIN_MODE))

{

Serial.println(“you join Network is OK!”);

mySerial.setTimeout(8000);

String ver = mySerial.readStringUntil(‘\n’);

Serial.println(ver);

mySerial.setTimeout(2000);

if (ver == STATUS_JOINED_SUCCESS)

{

while (RAKLoRa.rk_sendData(1,1,buffer))

{

Serial.println(RAKLoRa.rk_recvData());

}

}

}

}

}

delay(500);

}

5. 執行結果:

六、LoRaWAN連線實作測試:利用Wisnode-LoRa RAK811模組傳送至正文Gemtek Indoor LoRa Gateway

1.開發板接線方式:

(1)將P1 恢復正常操模式,利用所附的跳接帽將Boot跳接至GND。

(2)將P5 CRX跳接TXD、CTX跳接RXD,並利用Micro USB線連接板子CON1再接到個人電腦端的USB座。

2.連線進入正文Indoor Gateway後台,設定LoRa Node 以OTAA方式Join LoRaWAN 之AppEUI、DevEUI、DevAddr、AppKey。

3.設定LoRa Node 以ABP方式Join LoRaWAN 之DevAddr、NwksKey、AppsKey(TTN DeVICE所產生的值)。

4.設定Gemtek Indoor LoRa Gateway Network Server 以MQTT forward LoRa 封包。

5.查看Gemtek Indoor LoRa Gateway WAN的MAC Address。

6.利用MQTTBox Client 建立接收LoRa Gateway Network Server forward 的LoRa 封包。

7.查看Gemtek Indoor LoRa Gateway LoRa Module 1,2各channal 設定的頻段

8.利用下列RAK811 at command 測試

(1)at+set_config=ch_list:0,…指令設定對照Gemtek各通道開啟及頻段

(2)利用 at+get_config=ch_list 指令查看設定結果

(3)利用 下列指令設定dev_addr、nwks_key、apps_key,並以ABP方式加入LoRaWAN

延伸閱讀

at+set_config=dev_addr:26011C62&nwks_key:261D9CCE723824D9CA1751207187C211&apps_key:835384EB70799CBA00CA159E214B21D5

(4)at+join=abp

(5)利用 at+abp_info 指令查看設定結果:at+abp_info

(6)利用 at+send 傳送測試資料封包:at+send=0,2,010203040506、at+send=1,2,11223344556677889900FF

9.由MQTTbox Client查看接收Gemtek Gateway轉送資訊封包:

(責任編輯:葉于甄)

ChingChang Ko

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: ChingChang Ko

MakerPRO社群技術顧問 柯大創客屋社群創辦人,柯大有近30年資訊電子產業研發經驗,關心最新技術,並投入不綴並於社群分享技術經驗文。亦熱心指導新興團隊參與技術創意競賽,獲獎無數。專長包括物聯網軟硬體整合、整體服務平台規劃設計;熟悉各種物聯網開發板及藍芽、WiFi、NFC、Zigbee、LoRa等通訊技術並熟悉各種物聯網開發板:Arduino、Edison、Linkit one 、Ameba、Raspberry,精通物聯網低功耗通訊技術LPWAN:LoRa、Sigfox、NBIoT。

Share This Post On
468 ad

7 Comments

  1. 您好,最近購買RAK831、RAK811頻率都是EU433,參考您的作法。
    發現裡面沒有EU433的軟體,想請問有適用EU433的軟體嗎

    Post a Reply
    • 建議你到RAK的Forum提問喔:https://forum.rakwireless.com/

      Post a Reply
      • Wisnode-LoRa採用SX1276射頻晶片,Wisnode-LoRa-LF採用SX1278射頻晶片。
      • 若要採用EU433頻段,請購買Wisnode-LoRa-LF 版本的開發板,
      • SX1278的頻段是433 MHZ.
      • SX1276的頻段是868 MHZ/915MHZ
      Post a Reply
  2. 您好,最近购买了一套rak831+811套件,参考您的帖子搭建了gateway跟两个node。

    目前遇到的问题是通信距离非常短,而且丢包严重,就是node发包,在ttn上监控的gateway经常什么都收不到。

    不知道您有遇到过类似的情况吗,这种情况问题可能出现在哪里呢。

    Post a Reply
    • 可否請您將問題敘述清楚,並將您的測試環境及node,gateway設備也說明及遇到的情形,e-mail給我,謝謝。

      Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *