2018年3月24日 星期六

建立自己的LoRa網路 — RAK 831模組評析

作者:柯大
這次將為大家介紹RAK Wireless 出品的LoRa相關模組及開發板自建LoRaWAN網路,採用RAK811、RAK831模組為例。

一、RAK LoRa Node 模組

RAK811:採用SemTech SX1276 LoRa晶片,支援868MHz/915MHz
RAK811-N:採用SemTech SX1276 LoRa晶片,支援868MHz/915MHz
RAK812:採用SemTech SX1278 LoRa晶片,支援433MHz/470MHz
三種LoRa Node 模組均同時支援P2P自建LoRa網及LoRaWAN協議LoRa網
各晶片規格比較表(圖片來源:RAK官網)

二、RAK LoRa 開發板

Wisnode-LoRa: 採用RAK811LoRa模組
Wisnode-LoRa-LF:採用RAK812LoRa模組
這二種開發板採用RAK811 、RAK812 LoRa 模組,開發板相容Arduion Shield ,可直接插入Arduino 相容的所有MCU 開發板,如Arduino 系列:Arduino UNO R3、Aduino Leonado、Aduino 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更改串列傳輸速率及空中速率。
  • 遠距離LoRaWAN頻段:868/915MHz(LoRa點對點通信頻段為:868-1020MHz)
  • 最大輸出功率100MW(20dBm),輸出功率可在5~20dBM。
  • 高接收靈敏度:-130dBm@0.3kps(低至-146dBm)
  • 強抗干擾性,前向糾錯技術,傳輸距離3000m,空曠地域更遠5000m
  • 低功耗,待機功耗500nA,支持空中喚醒
  • 多通道,雙數據緩衝區(每個256位元組)
  • LoRa/FSK/GFSK/OOK調製,雙向半雙工通信。
Wisnode-LoRa開發板外觀(圖片來源:RAK官網)
各接腳介面(圖片來源:RAK官網)
Wisnode-LoRa開發板與瑞昱Ameba開發板組合圖(圖片來源:柯大創客屋)
Wisnode-LoRa開發板 AT Command 類型分為:系統命令、LoRaWAN 模式命令、LoRaP2P 模式命令、射頻狀態命令、模組命令等5種命令類型。UART 連線預設參數為:115200,N,8,1。

系統型命令:

  • at+version :獲取模組版本資訊
  • at+sleep:進入睡眠模式
  • at+reset=<mode> :重定模組或者重定LoRaWAN 協定
  • 0: 重定和重新開機模組
  • 1: 重定LoRaWAN 協定,模組將從Flash中載入LoRa 配置
  • at+reload :恢復LoraWAN 或LoraP2P 設置到出廠參數。
  • at+mode=<mode> :設置模組工作模式,預設為0 ,0: LoraWAN 模式,1:LoraP2P 模式

LoRaWAN模式命令:

  • at+join=<mode> :加入LoraWAN 的網路配置。otaa : Over-The-Air Activation(空中啟動);abp : Activation By personalization(手動激活)
  • at+band :獲取LoraWAN 使用的頻段
  • at+get_config=<key> : 獲取LoraWAN 的配置資訊, key 同上
  • at+set_config=<key>:<value>[&<key>:<value>][&<key>:<value>]…   設置LoraWAN 參數, Key 的設置如下:dev_addr, dev_eui, app_eui, app_key,nwks_key, apps_key, tx_power, adr, dr,public_net, rx_delay1, rx2, ch_list, retrans,duty
  • at+abp_info :取得加入 abp 資訊。
  • at+signal :檢查接收閘道的信號強度、信噪比,以最新接收的資料包為准。
  • at+dr=<dr> :設置下一次發送資料的速率
  • at+send=<type>,<port>,<data> :發送資料到LoraWAN 網路。<type> 0 :不需要確認的資料包,1 : 需要確認的資料包;<port> 1-223:埠號從1 到22;<data> 十六進位值(不含空格)
  • at+recv=<status>,<port>,<len>[,<data>] :從LoraWAN 或LoraP2P 網路中接收事件或資料。<status>:查看事件代碼表;<port>:LoraWAN 應用埠,當接收的是事件或者處於LoraP2P 模式時為0;<len>:LoraWAN 或者LoraP2P 接收資料長度, 最大64 位元組;<data>:LoraWAN 或者LoraP2P 接收的數據, 十六進位顯示(不含空格)。

LoRaP2P 模式命令

  • 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 =<cnts>,<interval>,<datahex> :設置Lora 連續發送參數。<cnts>:發送次數(1-65535);<interval>:上一包發送成功或失敗的時間間隔,(10-3600000ms);<datahex>:十六進位值( 不含空格) ,max 64
  • at+rxc=<report_en> :設置Lora 連續接收參數,<report_en>:使能報告給主機或不使能
  • at+tx_stop :停止Lora 連續發送
  • at+rx_stop :停止Lora 連續接收

射頻狀態命令:

  • at+status[=0] 檢查射頻的狀態統計。Null: Response TxSuccessCnt, TxErrCnt,RxSuccessCnt, RxTimeOutCnt, RxErrCnt,Rssi, Snr;=0: 清除統計

模組命令:

  • at+uart [=<baud>,<data_bits>,<parity>,<stop_bits>,<flow_ctrl>] :設置UART 配置參數。<baud>:(9600-921600) 支持串列傳輸速率列表,Default :115200;<data_bits>: (8) 8 位元數據位元;<parity>:(0/1/2)  0: PARITY_NONE,1: PARITY_EVEN,2: PARITY_ODD;<stop_bits>:(1/2)  0: 停止位的長度1 bit,1: 停止位的長度2 bit;<flow_ctrl>:(0/1) 0: Disable,1: Enable

三、RAK LoRa 多通道網路閘道模板

RAK831 LoRa/LoRaWAN閘道模組SX1301擴頻遠距離通信抗干擾多頻段、多通道高性能發射器/接收器模組,集成到閘道中作為該閘道的完整射頻前端,實現在LoRa閘道和大量的LoRa終端節點之間距離廣泛的通信。
半雙工的LoRa/LoRaWAN 閘道模組,採用Semtech 1301晶片, 8個上行,1個下行,發射功率20dbm,接受靈敏度最低-138dBm,空曠地域達15KM。採用SPI介面,可與Raspberry Pi 3 連接成一個LoRaWAN 8通道的LoRa Gateway。
閘道模板外觀(圖片來源:RAK官網)
各接腳介面(圖片來源:RAK官網)
閘板參數(圖片來源: RAK官網)
RAK831閘道模板與Raspberry Pi3組合連接圖(圖片來源:柯大創客屋)
RAK831閘道模板與Raspberry Pi3連接腳對照圖(圖片來源:RAK官網)

Raspberry Pi3接腳對照圖(圖片來源: Raspberry Pi Pinout Diagram | Circuit Notes

LoRaWAN軟體安裝

在你的樹莓派成功啟動後,你需要設置一些配置項讓你的樹莓派來驅動RAK831 LoRa 閘道,當然你也需要讓樹莓派下載所必需要的文件。啟動SPI 介面:使用raspi-config 功能來啟動SPI 介面,你需要在命令列發送下面命令:$ sudo raspi-config,並配置介面項([5] Interfacing options -> P4 SPI) 和擴展檔案系統項([7] Advanced options -> A1 Expand filesystem)。
配置完成後,重啟系統:
重啟系統後畫面(圖片來源:柯大提供)
按照下列步驟安裝軟體:
  1.  sudo apt-get update
  2.  sudo apt-get upgrade
  3.  sudo apt-get install git
使用git 命令下载安装程序
  1. git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git
  2. cd ic880a-gateway/
安裝程式,執行install.sh
  1.  sudo ./install.sh
  • 在安裝的過程中,會詢問你是否通過遠端設定檔安裝,你可以選擇‘y’或者‘yes’ 來繼續安裝,這時樹莓派就會自動下載網上提供的開源的代碼。你會在安裝的提示資訊中看到網關的EUI,請記住這個EUI 資訊,這很重要。
網關的EUI 資訊(圖片來源:柯大提供)
  • 如果你使用的是遠端配置,那麼你就必須擁有遠端設定檔。你需要在這個連結上創建,你的遠程設定檔, 設定檔為JSON檔,檔案名為剛才需要記住的設備EUI(e.g. B827EBFFFE7B80CD.json)
  • 由於是在別人的github 專案中提交自己的檔,因此需要別人的同意,你需要點提交申請,大概一天後,你的檔就會出現在該專案中。
檔案的內容,可以查看其它人提交的文件用作參考(圖片來源:柯大提供)
安裝程式會將您的Raspeberry Pi 的主機名稱更改為ttn-gateway(以防止在網路中與其他 Raspberry Pi 發生衝突)。安裝完成後,使用cd 命令,進入/opt/ttn-gateway/bin/資料夾,執行sudo ./start.sh 命令,程式就開始執行了。

到TTN網站註冊Gateway

RAK831 閘道安裝完成後,你需要到LoRa 網路服務商註冊閘道,由於使用的程式為TTN 提供的,因此只能使用TTN 做為網路服務商。首先,你需要註冊一個TTN 帳號,然後添加閘道設備。閘道設備的ID 請使用前面記住的設備EUI。如果你不太清楚如何註冊設備,請參考Gateway Registration的網站。
請勾選後再輸入裝置EUI 即可。
一旦註冊了閘道,就會看到閘道控制台頁面(紅色方框可以顯示閘道是否連接上)

不同的Start kit套件組合

RAK為了方便Maker朋友開發及體驗完整的LoRaWAN開發板,推出不同的Start kit套件組合,有興趣的朋友可上官網瞧瞧看有沒有適合你的解決方案。

沒有留言:

張貼留言