技术服务中心

概述

本文档主要介绍如何将星纵物联网关通过MQTT方式对接到阿里云的物联网平台,并且通过MQTT主题将传感器数据发布到平台。在进行本文档操作之前,需要先参考用户手册将LoRaWAN®节点添加至网关内置网络服务器中并成功令节点设备上线及数据正常上报。

准备

  • 星纵物联LoRaWAN®网关
  • 星纵物联LoRaWAN®终端节点
  • 阿里云企业物联网平台

步骤

1. 阿里云物联网平台配置

阿里云企业物联网平台地址:https://iot.console.aliyun.com/

  • 登录物联网平台控制台
  • 在实例概览页面,找到对应的实例,单击实例进入实例详情页面。

1.1 创建产品

在左侧导航栏,选择“设备管理 > 产品”,单击创建产品。所属品类、节点类型、数据格式参照下图设置,其他根据实际需求填写。

1.2 创建设备

设备归属于某个产品下的具体设备。阿里云物联网平台为设备颁发产品内唯一的证书 DeviceName。

  1. 在左侧导航栏,选择“设备管理设备”。
  2. 单击添加设备,在添加设备对话框中,选择刚刚创建的产品,DeviceName需要绑定上传的LoRaWAN®传感器设备EUI,备注名称自定义,填写完成后单击确认完成设备添加。
  3. 例如:下图是网关上目前添加的设备信息,添加设备时DeviceName填写对应设备EUI

  1. 创建设备成功后,将自动弹出添加完成对话框。可以点击查看对创建的产品信息进行查看。
  2. 设备创建完成后为未激活,需要将设备接入物联网平台,使其激活。

1.3 获取连接信息

网关MQTT接入物联网平台前需要提前获取MQTT接入信息(MQTT服务器地址MQTT服务端口客户端ID用户名/密码)。

选择“设备管理 > 设备”,查看对应设备,点击MQTT连接参数,即可获取接入信息。

2. 网关配置

  1. 确定传感器所属的应用,在网关配置页面选择“Network Server>应用”,选择对应应用点击进入应用编辑界面。

  1. 点击进行数据传输添加。

  1. 应用创建完成之后,重新点击编辑选择数据传输类型为MQTT。根据阿里云物联网平台要求配置MQTT连接信息。点击保存后,重新进入可以看到状态为已连接。

注意:阿里云平台采用一机一密制度,如果网关上需要添加新的传感器设备,需要先创建新的应用及MQTT连接,并使新添加的设备绑定新创建的应用,该应用使用阿里云上新的设备MQTT连接信息进行连接。

  1. 物联网平台查看设备状态为在线。

注意:若未连接成功MQTT至阿里云,请先确认网关的网络状态及连接信息是否填写正确。

3. 数据上行

网关作为MQTT客户端接入物联网平台,可以发布和订阅Topic,如下介绍网关如何通过发布Topic将传感器数据上报到物联网平台。

  1. 在网关Network Server添加并激活一个传感器设备。在“Network Server >数据流”确认传感器数据能够正常上报。
  2. 物联网平台配置:在对应的产品页,单击“Topic类列表自定义Topic”。阿里云物联网平台Topic的前三个类目已经固定好,只需定义后面的类目,即可拼接成一个完整的Topic,操作权限为发布,本示例:

//gp5olLRZ1dO/24E124983C521736/user/update

  1. 网关配置:在对应的MQTT应用中将/gp5olLRZ1dO/24E124983C521736/user/uplink配置在Uplink data对应的主题上,点击保存。

  1. 回到物联网平台,点击“监控运维>日志服务”,查看设备到云消息。点击查看可以看到网关发布的信息,其中“data”为传感器数据。此时的传感器数据是未解析过的。可以选择以下方式进行解码。

 

在网关的内置NS解析

点击“Network Srever>载荷编码器”,填写对应的解码函数后点击保存。

在对应的的传感器中选择上一步创建的载荷解码器。

解析后数据上报如下

 

4. 数据下行

如下介绍网关如何通过在物联网平台上推送MQTT至设备终端。

  1. 在物联网平台产品Topic列表中可以看到多组类型,可以选择其中的自定义topic来进行服务调用下发。本示例下行自定义topic:/gp5olLRZ1dO/${deviceName}/user/get

  1. 网关配置:在对应的MQTT应用中先将对应Topic配置在downlink data对应的主题上后,点击保存。本示例:/gp5olLRZ1dO/24E124983C521736/user/get

  1. 物联网平台配置:进行上一步操作后,在对应设备的Topic列表中会出现对应topic。

  1. 返回到网关应用中,在对应的MQTT应用中将downlink data的主题改为以下内容保存。

/gp5olLRZ1dO/$deveui/user/get

其中$deveui字段代替原有的设备名称字段

  1. 下发操作:回到物联网平台设备的topic界面,点击发布消息

消息内容示例

{“confirmed”: true,”fport”: 85,”data”: “CQEA/w==”}

内容解析:下发端口为 85,内容为 CQEA/w==,启用确认包

注意:下发内容只能使用 Base 64 格式,可以通过 Hex 转 Base64 进行数据转换。

  1. 网关数据流中观察是否有对应下行包

5. 阿里云物模型示例

如下介绍如何通在物联网平台快速创建物模型并完成物模型测试。

  1. 物联网平台配置:在物联网平台产品功能定义列表中可以通过点击“编辑草稿>添加自定义功能”,创建一个物模型。

示例:如图创建一个距离物模型,其中标识符为distance。确认完成后点击左下角的发布上线并确定,完成自定义功能的物模型添加。

  1. 发布成功后,“设备>物模型数据”中会有上一步添加的物模型模块

  1. 如需使用物模型,则需要将MQTT消息推送至物模型的对应topic中。

示例topic为:/sys/gp5olLRZ1dO/24E124983C521736/thing/event/property/post

  1. 网关配置:确定网关中Uplink data的主题是否为对应物模型主题。

  1. 物模型匹配数据需要有特定的数据格式,具体参考阿里云物联网平台协议格式

  1. 在网关Network Server>载荷编码器”中将该设备绑定的decodec修改成特定格式数据上报。

注意:上报格式中参数的标识需要与阿里云平台创建物模型时的标识符一致。

  1. 等待设备上报成功后,平台端物模型也会显示对应数据。

  1. 参考网关端配置decodec解析代码,如需其他开发可参考阿里云物联网平台帮助中心开发
function Decode(fPort, bytes) {
var decoded = {};
for (var i = 0; i < bytes.length; ) {
var channel_id = bytes[i++];
var channel_type = bytes[i++];
// BATTERY
if (channel_id === 0x01 && channel_type === 0x75) {
decoded.battery = bytes[i];
i += 1;
}
// DISTANCE
else if (channel_id === 0x03 && channel_type === 0x82) {
decoded.distance = readUInt16LE(bytes.slice(i, i + 2));
i += 2;
}
// REMAINING AMOUNT
else if (channel_id === 0x04 && channel_type === 0xd6) {
decoded.remaining = bytes[i];
i += 1;
} else {
break;
}
}
var result = {
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"params": {
"distance": {
"value": decoded.distance,
}
},
"method": "thing.event.property.post"
};
return result;
}
/* ******************************************
* bytes to number
********************************************/
function readUInt16LE(bytes) {
var value = (bytes[1] << 8) + bytes[0];
return value & 0xffff;
}

 

返回目录

样机试用

微信客服 wechat code

在线客服

工业路由器 Lorawan®网关 LoRaWAN®传感器 数传终端DTU 智能安防产品 更多产品咨询

电话咨询

phone icon 给我回电!