本文介如绍何使用MQTT协议,将设备直连到平台内置的MQTT服务。
操作步骤
创建产品
物联网->设备管理->选择产品,填写产品基础信息。
参数 | 对应设备侧参数 |
| 产品唯一标识,若不填写,系统将自动生成唯一ID |
设备类型 | 直连设备:直接连接平台的设备 |
网关设备:物理网关设备 | |
网关子设备:无法直接入网的设备需要依靠网关子设备携带报文的设备。 |
配置设备接入方式
- 进入产品详情->选择设备接入Tab页
- 点击选择快速配置接入网关
配置网络组件
- 首次接入新增网络组件,此处以MQTT直连接入作为示例。
本文网络组件公网地址使用本机IP地址。
连接参数说明:
参数 | 对应设备侧参数 |
本地地址 | 绑定到服务器上的网卡地址,此处固定为0.0.0.0,表示接收所有请求。 |
本地端口 | 监听指定端口的请求 |
公网地址 | 对外提供访问的地址,内网环境时填写服务器的内网IPv4地址。仅用于展示,给运维人员做公网端口和本地地址绑定关系展示使用。 |
公网端口 | 对外提供访问的端口。 |
最大消息长度 | 单次收发消息的最大长度,单位:字节; |
上传消息协议
- 创建完成网络组件后,创建协议。
配置网关信息
- 填写网关基础信息。
配置MQTT认证信息
- 产品详情->设备接入->MQTT认证配置,填写
secureId
和secureKey
, 本文使用的secureId
为admin
,secureKey
为admin
- 启用产品。
产品需要启用后才可以创建设备。
配置物模型
- 点击上一步创建的产品查看详情,选择物模型Tab。
- 配置两个物模型属性
temperature
、wet
,如下图所示。
创建设备
- 物联网->设备管理->选择设备->新增,填写设备基础信息并确定保存。
- 设备列表->启用设备。
使用MQTT X模拟设备接入
MQTT X 是一款开源的 MQTT 桌面测试客户端,支持Windows、Mac和Linux操作系统,可用于验证设备是否可与物联网平台正常连接,并通过Topic订阅和发布消息。本文以Windows系统下MQTT.X为例,介绍设备使用MQTT协议模拟接入物联网平台。
配置MQTT X接入参数
- 下载并安装MQTT X软件。
- 打开MQTT X选择新建连接。
- 填写连接相关参数,复制平台设备ID填入
Client ID
内。
参数名 | 含义 | 值 |
名称 | 连接名称 | 随便填写 |
Client ID | 客户端ID | 与平台设备ID保持一致 |
服务器地址 | 连接服务器地址 | JetLinks部署IPv4地址 |
端口 | 服务器端口 | 网络组件内配置端口 |
- 进入产品详情页->设备接入,填写MQTT认证配置。
- 使用官方协议在线加密算法生成用户名和密码,将生成的
username
和password
填入模拟器连接信息内。
- 点击连接,弹出连接成功即完成连接,设备同时在平台内显示在线。
使用MQTT X模拟设备上报属性
Topic
:/{productId}/{deviceId}/properties/report
方向
:设备->平台
消息正文:
{
"deviceId": "1642736581599657984",
"properties": {
"temperature": 38.5
}
}
平台向模拟设备发送获取属性指令
若用户需要主动获取设备的某个属性值时,需要在定义物模型属性时添加读写类型“读”。进入设备详情页->运行状态->属性卡片->右上角刷新按钮
图标即可主动获取设备属性.
Topic
:/{productId}/{deviceId}/properties/read
方向
:平台->设备
消息正文:
{
"messageId": "1643159641045745665",
"deviceId": "1642736581599657984",
"timestamp": 1680594761512,
"properties": ["wet"],
"messageType": "READ_PROPERTY"
}
Topic
:/{productId}/{deviceId}/properties/read/reply
方向
:设备->平台
消息正文:
{
"deviceId": "1642736581599657984",
"messageId":"1643159641045745665",
"properties": {
"wet": 24.1
}
}
平台向模拟设备发送属性设置指令
图标即可在线设置设备属性.
Topic
:/{productId}/{deviceId}/properties/write
方向
:平台->设备
消息正文:
{
"messageId": "1643175147668652033",
"deviceId": "1642828139301576704",
"timestamp": 1680598458579,
"properties": {
"wet": 342.0
},
"messageType": "WRITE_PROPERTY"
}
Topic
:/{productId}/{deviceId}/properties/write/reply
方向
:设备->平台
消息正文:
{
"deviceId": "1642828139301576704",
"messageId":"1643175147668652033",
"properties":{
"wet":12
}
}