技术服务中心

概述

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

准备

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

步骤

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

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

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

1.1 创建产品

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

1.2 创建设备

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

1.在左侧导航栏,选择“设备管理>设备”。

2. 单击添加设备,在添加设备对话框中,选择刚刚创建的产品,自定义DeviceName,填写完成后单击确认完成设备添加。

3. 创建设备成功后,将自动弹出添加完成对话框。

4. 设备创建完成后为未激活,需要将设备接入物联网平台,使其激活。

1.3 获取连接信息

  1. 网关MQTT接入物联网平台前需要提前获取MQTT接入信息(MQTT服务器地址MQTT服务端口客户端ID用户名/密码)。
  2. 选择“设备管理>设备”,查看对应设备,点击MQTT连接参数,即可获取接入信息。

2. 网关配置

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

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

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

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

3. 数据上行

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

  1. 在网关Network Server添加并激活一个传感器设备。在“Network Server>数据流”确认传感器数据能够正常上报。
  2. 物联网平台配置:单击“产品>Topic类列表>自定义Topic”查看Topic。采用平台默认Topic即可。

上行主题:/gaf7GkfPt6P/${deviceName}/user/update (其中${deviceName}要匹配对应的设备名称,本示例设备名称为ug65)

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

  1. 回到物联网平台,点击“监控运维>日志服务”,查看设备到云消息。点击查看可以看到网关发布上来的信息,

4. 数据下行

以下介绍如何在物联网平台下发指令到设备终端。

  1. 选择对应的下行主题进行调用。本示例下行采用默认自定义Topic。

下行主题:/gaf7GkfPt6P/${deviceName}/user/get (其中${deviceName}要匹配对应的设备名称,本示例设备名称为ug65)

  1. 网关配置:在对应的MQTT应用中将/gaf7GkfPt6P/ug65/user/get配置在downlink data的主题上后,点击保存。

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

4. 下发操作:在物联网平台设备的topic界面,点击发布消息。

消息内容示例{"devEUI":"24E124136D151028","confirmed":true,"fport":85,"data":"/wM8AA=="} 内容解析:指令下发给deveui为24E124136D151028的传感器终端,启用确认包模式,下发端口为 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 智能安防产品 更多产品咨询

电话咨询

验证码
Baidu
map