2018年3月24日 星期六

建立自己的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的值即可執行。

範例程式

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轉送資訊封包:

沒有留言:

張貼留言