下载ChirpStack

master分支commit,版本为24ce6fa78e7b757bcb128ff36e5ef67cf579e6c6
下载Chiprstack代码,并切换为master版本

git clone https://github.com/brocaar/chirpstack-docker.git
cd chirpstack-docker
git checkout 24ce6fa78e7b757bcb128ff36e5ef67cf579e6c6

添加CN470频段

diff --git a/configuration/chirpstack/chirpstack.toml b/configuration/chirpstack/chirpstack.toml
index 54c3e5d..399f171 100644
--- a/configuration/chirpstack/chirpstack.toml
+++ b/configuration/chirpstack/chirpstack.toml
@@ -70,7 +70,18 @@
     "as923_3",
     "as923_4",
     "au915_0",
     "cn470_10",
+    "cn470_11",
     "cn779",
     "eu433",
     "eu868",

配置频段为CN470_10

diff --git a/docker-compose.yml b/docker-compose.yml
index f15a6f7..49a643d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -27,16 +27,16 @@ services:
     volumes:
       - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
     environment:
-      - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/event/{{ .EventType }}
-      - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/state/{{ .StateType }}
-      - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=eu868/gateway/{{ .GatewayID }}/command/#
+      - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/event/{{ .EventType }}
+      - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/state/{{ .StateType }}
+      - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/command/#
     depends_on:
       - mosquitto

   chirpstack-gateway-bridge-basicstation:
     image: chirpstack/chirpstack-gateway-bridge:4
     restart: unless-stopped
-    command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-eu868.toml
+    command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-cn470_10.toml
     ports:
       - 3001:3001
     volumes:

启动ChirpStack服务

$ docker-compose up -d

Chirpstack默认的用户名密码都是admin。

运行后,可以打开浏览器访问127.0.0.1:8080,使用用户名和密码来登录。

在 Device Profile 中除了 LoRaWAN 参数之外,还有一个 codec 模块。

这个模块默认是未启用的,它支持两种协议解析,我们在 AS 的 WEB 界面中可以看到。

Cayenne Low Power Payload。卡宴的这个协议要求传感器按其协议上报的话,它则会解析出相应的数据。不够灵活,一般做简单的DEMO应用。
Custom JavaScript codec functions。这就是我们今天重点介绍的 JS 编解码函数。可将设备的原始数据转换为可读性更强的 JSON 格式。

下面是一个温度示例,取第一字节来做温度。

function Decode(fPort, bytes) {
  var data = {
    "temperature": 0.0
  };
  data.temperature = bytes[0];
  return data;
}
作者:SteveChen  创建时间:2024-09-14 17:14
最后编辑:SteveChen  更新时间:2024-10-11 23:22