LORA / LORAWAN 第二十節

Chirpstack project

Delores Cetleh
9 min readApr 13, 2021

這個章節我將會介紹如何安裝開源軟體ChirpStack LoRa Servers Project

為什麼要用ChirpStack Project

因為我們想要自製私有LoRaWAN Network,從Node到Application 全部都由我們自己提供。而且ChirpStack Project允許我們將他們全部都裝在一個Raspberry Pi 上提供小型私有LoRaWAN網路使用。跟先前我們使用TTN雲端LoRaWAN網路服務不同,這次我們自己架私有LoRaWAN Network。

設備需求:

  1. LoRaWAN Nodes(我們之前介紹過了)
  2. LoRaWAN Gateway/Concentrator (如:第19節 介紹的HT-M01)
  3. Raspberry Pi 3 以上的主機

什麼是ChirpStack Project

What is ChirpStack project

  • ChirpStack project 是一個開源的網路軟體,用來架構LoRaWAN Networks 。https://www.chirpstack.io
  • ChirpStack project 由 Orne Brocaar 發起。https://www.brocaar.com
  • ChirpStack project 包含以下組件:
  1. ChirpStack Gateway Bridge
  2. ChirpStack Network server
  3. ChirpStack Application server
  • “ChirpStack project” 的前身應該就是 “LoRa Server Project”發起於2015年,2020年更名為ChirpStack。ChirpStack project所有的組件都適用MIT Licensed 可以被用於商業用途。

ChirpStack 組件

ChirpStack components

ChirpStack Application Server

擔任 LoRaWAN中的” Application Server”角色。接收network server來的資料,主要功能為:處理節點入網Join Request需求、加密Application payload並提供RESTful API、gRPC API 或是 MQTT 給其他外部服務。

另外ChirpStack Application Server 提供一個網頁介面來管理組織、使用者、應用、裝置。當然也提供查看裝置上傳的資料的頁面。

ChirpStack Network Server

擔任 LoRaWAN中的”Network Server”角色。接收Gateway來的資料並上傳到Application Server,主要功能為: 刪除重複的封包、處理LoRaWAN mac layer的事務、下傳封包的排程。

ChirpStack Gateway Bridge

將Packet forwarder UDP protocol 資料轉成JSON格式並使用MQTT傳給Network Server

ChirpStack 3大組件

ChirpStack 組件安裝具有多變性

可以安裝在各自獨立的伺服器

  • ChirpStack 組件可以安裝在各自獨立的伺服器上,使用其獨立的PostgreSQL資料庫
3大組件分別放在3個不同硬體上

安裝在同一個的伺服器

  • ChirpStack 組件也可以安裝在單一的伺服器上,但使用其獨立的PostgreSQL資料庫
  • 我們將在這節Demo這種方法將3大組件分別放在同ㄧ硬體上,也會連同上一節(19節)的Concentrator的Driver 也放在一起。
3大組件分別放在同ㄧ硬體上

ChirpStack Gateway Bridge

閘道器橋接是ChirpStack的特色

  • ChirpStack Project使用Gateway Bridge 將Gateway UDP 資料轉換成JSON格式,在上傳到Network Server時,採用MQTT方式上傳。這樣就可以運用MQTT特性,將不同Gateway而上傳的重複的資料刪除(de-deduplication)。
當有多個Gateway時使用MQTT傳輸的特性可以將上傳的重複資料刪除
  • ChirpStack Gateway Bridge 也可以安裝在Gateway端。
將Gateway Bridge 安裝在Gateway 上。這樣中間傳輸就不是UDP。而是對網路使用較輕的MQTT

ChirpStack architecture

ChirpStack架構圖

  • 看起來很複雜,其實還好!
  • 最下面的整合應用先不用看。有用到該服務再去看就好。
  • 最上面與左邊的模塊都是LoRaGateway 只差有沒有整合Gateway Bridge。
  • 重點在中間那個模塊內部的MQTT,整合Gateway UDP/ Gateway Bridge MQTT/network server。而最後的Application Server 則使用gRPC與Networkserver 連接。
看起來很複雜,其實還好! 最下面的整合應用先不用看。有用到該服務再去看就好。

ChirpStack 實際操作

以下依序我們開始實際安裝操作首先將硬體整合好如圖:

ChirpStack whole Project簡化版

使用Raspberry Pi 4 實際安裝ChirpStack whole Project

ChirpStack Project 目前(2021/Q1)還不支援RPI ZeroW,本實例使用RPI4。

安裝Rasbian OS

請參考19節

安裝Semtech Driver

請參考19節

安裝Semtech Package Forwarder

設定Semtech Package Forwarder 參數

  • 使用設定檔 ~/lora/packet_forwarder/lora_pkt_fwd/global_conf.json
  • 在檔案最下面可以設定Gateway ID 與server_address。
  • Gateway ID 在Heltec Driver中預設會使用Raspberry Pi 的mac address生成並在啟動時覆蓋,以避免衝突。
設定UDP與ChirpStack Gateway Bridge 溝通

安裝Heltec Driver

安裝ChirpStack Gateway Bridge

安裝Mosquitto MQTT Broker

設定ChirpStack Gateway Bridge參數

安裝ChirpStack network server

安裝Database 給ChirpStack network server用

設定Database User與資料庫給ChirpStack network server用

設定ChirpStack network server與dB連接參數

設定ChirpStack network server與MQTT Broker參數

安裝ChirpStack Application server

設定Database User與資料庫給ChirpStack Application server用

產生 jwt_secret 給與外部API

  • 產生jwt_secret等一下會用到
  • jwt_secret 是使用在external API上的token
  • 由於此實作會藉由一個website app 操作設定LoRAWAN 網路,我們要設定好這個值才能用它。

設定ChirpStack Application server與dB連接參數

設定Internal API 參數與Network-server通訊

設定External API 參數與外部通訊

Command line Manual

依照說明來安裝

開啟瀏覽器登入

192.168.43.82:8080

  • 登入web-interface

安裝成功,下一節”設定”

第二十節 結束

參考資料

--

--

Responses (1)