littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于 Chirpstack v3 和 FIWARE 的 LoRaWAN 多租户物联网网络系统

项目简介

本项目致力于在 ElGhazala 技术园区部署一个 LoRaWAN 多租户物联网网络。项目包含安装 3 个连接到 ChirpStack 网络服务器的网关,用户可向管理员申请创建租户并成为管理员,进而创建应用程序和添加相关终端设备。该项目面向 Sup'Com 的所有学生、博士生、教师以及合作专业人员。

项目的主要特性和功能

  1. 多租户支持:允许不同用户创建和管理自己的租户,实现网络资源的隔离和共享。
  2. 完整的 LoRaWAN 架构:涵盖 LoRaWAN 终端节点、网关、网络服务器、应用服务器等组件,实现端到端的物联网数据传输。
  3. 数据集成与处理:借助 FIWARE IoT 代理将 LoRaWAN 应用服务器的数据摄入 NGSI 上下文代理,完成数据的解码和转换。
  4. 数据存储与分析:FIWARE Quantum Leap 订阅上下文代理的新数据通知,以时间序列格式存储历史信息,便于后续分析。
  5. 可视化展示:通过 Grafana 提供直观的可视化界面,方便用户查看和探索数据。

安装使用步骤(假设用户已经下载了本项目的源码文件)

前提条件

  1. 一台运行 Linux 操作系统的机器。
  2. 一台运行 Windows 操作系统的机器用于监控和管理。
  3. 安装 Docker 版本 23.0.5 和 Docker Compose 版本 2.17.3,详细安装说明见此处
  4. 安装 Arduino IDE,详细安装说明见此处
  5. 安装 Postman,详细安装说明见此处
  6. 安装 Git: bash sudo apt-get install git

Chirpstack v3 安装

bash cd chirpstack-docker git checkout v3 docker compose up 安装成功后,可通过服务器 IP 地址的 8080 端口进行验证。

硬件准备

  1. 一个 Seeeduino LoRaWana 网关套件,详情见此维基页面
  2. 一个 DHT11 温度和湿度传感器。

网关配置

  1. 进行硬件连接。
  2. 打开网关终端(通过串口或 SSH),参考Seeeduino 入门部分
  3. 配置网关将 LoRaWAN 数据包转发到 ChirpStack 服务器: bash nano /home/rxhf/risinghf/pktfwd/local_conf.jsonserver_address 改为 ChirpStack 服务器的 IP 地址,serv_port_upserver_port_down 改为 1700,保留 gateway_IDjson { "gateway_conf": { "gateway_ID": "b827ebfffe0e1174", "autoquit_threshold": 5, "server_address": "SERVER_ADDRESS", "serv_port_up": 1700, "serv_port_down": 1700 } }
  4. 重启网关以应用更改: bash sudo reboot

将网关添加到 Chirpstack

  1. 访问 Chirpstack 的 Web UI:http://192.168.33.69:8080,使用用户名和密码“admin”登录。
  2. 添加网络服务器。
  3. 添加新的服务配置文件。
  4. 添加新的网关。
  5. 在仪表盘上验证网关是否处于活动状态。

添加应用程序和设备

  1. 添加新的设备配置文件,确保勾选 OTAA 模式支持并选择 CayenneLPP 作为编解码器。
  2. 添加应用程序。
  3. 使用设备配置文件向创建的应用程序添加设备,生成 Appkey 并获取 DEV EUI。

终端节点设置

  1. 打开位于 seeeduino_lorawana_end_device/end_node_cayenneLPP_payload_OTAA 的终端节点设备草图。
  2. 安装所需库和 Seeeduino LoRaWAN 开发板,参考此教程
  3. 更改上一步生成的 Appkey。
  4. 将代码上传到开发板并进行接线。

部署 FIWARE 堆栈

bash docker compose -f docker/fiware/docker-compose.yml 使用 Portainer Web UI 进行容器管理和可视化,通过 https://192.168.33.69:9443 访问(需创建账户)。导入位于 postman/fiware1.postman_collection.json 的 Postman 工作区。

验证和配置

  1. 检查 Orion 版本bash http://192.168.33.69:1026/version
  2. 检查 IOT 代理信息bash http://192.168.33.69:4041/iot/about
  3. 向 IOT 代理添加设备bash http://192.168.33.69:4041/iot/devices 添加相应的请求头和请求体,确保响应状态码为 201。
  4. 查看添加的设备bash http://192.168.33.69:4041/iot/devices 添加相应的请求头。
  5. 查看 Orion 上下文代理中的 DHT11 实体bash http://192.168.33.69:1026/v2/entities/DHT_001 添加相应的请求头。
  6. 检查 Quantumleap 版本bash http://192.168.33.69:8668/version
  7. 向 Orion 上下文代理添加订阅bash http://192.168.33.69:1026/v2/subscriptions 添加相应的请求头和请求体,确保响应状态码为 201。
  8. 查看创建的订阅bash http://192.168.33.69:1026/v2/subscriptions 添加相应的请求头。
  9. 查看 Quantumleap 中的记录历史bash http://192.168.33.69:8668/v2/entities/DHT_001 添加相应的请求头。

Grafana 可视化

  1. 访问 http://192.168.33.69:3000,使用默认凭据 admin / admin 登录。
  2. 添加新的数据源。
  3. 导入位于 grafana_dashboard 文件夹中的仪表盘。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】