这个示例中,客户将瑞科慧联(RAK)的 LoRaWAN 网关接入 ThingsCloud,从而利用 ThingsCloud 的可视化看板的通用 App 等内置应用,快速搭建物联网应用。
LoRa是一种长距离无线通信技术,是NB-IoT以及LTE Cat M1的有效补充。对比传统的蜂窝技术,LoRa可以在牺牲数据速率的前提下达到极远的距离 100km+ LOS。 由于速率限制(< 50kbps)以及占空比的限制,LoRa更加适用于可以容忍大的延迟的非实时的应用。
该示例支持 RAK 的网关包括:
- RAK7249
- RAK7258
它们通过自组网可以建立更大的网络覆盖面积。
ThingsCloud 控制台设置
进入 ThingsCloud 控制台,完成一些准备工作。
创建网关设备和子设备
关于创建网关和子设备的详细介绍,请浏览 如何创建网关和子设备。
完成以上步骤后,进入网关设备的 连接 页面,获得以下信息,用于随后的设备 MQTT 接入。
- MQTT 地址、端口
AccessToken
: 作为 MQTT usernameProjectKey
: 作为 MQTT password
示例中使用了基于 LoRa 的智能电源面板作为子设备,在网关添加这些子设备后,需要编辑子设备地址,填写 LoRa 设备的 DevEUI
。
为网关设备添加自定义数据流
在 ThingsCloud 的设备类型里,通过添加自定义数据流,可以支持各种风格的 MQTT 主题,用于适配不同硬件的 MQTT 发布和订阅机制。
如需了解更多相关文档,请浏览:
根据 RAK LoRaWAN 网关的需要,我们在网关所属的设备类型中,添加相应的自定义数据流,如下:
为网关设备添加消息规则
接着我们需要给网关设备类型创建一个消息规则,将通过自定义数据流接收到的消息,转发到 LoRa 子设备。
使用自定义上报规则,添加操作 云网关解析函数,在云函数中,使用 JavaScript 代码来支持 ThingsCloud 网关协议。如下:
module.exports = function (identifier, data) {
/**
* 参数:
* identifier: 上报的自定义数据流标识符
* data: 上报的自定义数据,二进制 Buffer格式
* 返回值:
* attributes: 网关上报子设备属性
*/
var json = Cloud.jsonParse(data);
var attributes = {};
attributes[json.devEUI] = {
data: json.data
}
return attributes;
}
关于 ThingsCloud 网关协议的详细介绍,请浏览 网关 MQTT 接入。
RAK LoRaWAN 网关配置
进入 RAK LoRaWAN 网关的 Web 配置界面,进行以下设置:
配置 MQTT 参数
在 Global Integration 全局设置中,填写 MQTT 连接信息,如下:
- MQTT Broker Address: 填写设备 MQTT 地址。注意只填写域名,不需要
mqtt://
前缀。 - MQTT Broker Port: 1883
- Client ID: 可随意填写
- Username: 填写设备的
AccessToken
- Password: 填写设备的
ProjectKey
接下来配置 MQTT 发布和订阅主题,如下:
查看通信日志
重启网关设备后,在网关配置界面中可以看到通信日志,
大功告成
到此为止,完成了 RAK LoRaWAN 网关接入 ThingsCloud,我们创建一个项目通用应用,平台为我们生成了一个专属的设备管理后台。
查看所有设备列表。
查看其中的一个智能电源设备状态。
我们还可以利用 ThingsCloud 内置的可视化看板及零代码应用功能,创建更多属于您的物联网应用。