了解设备连网方式后,我们接下来关心的是,设备和云平台如何交换数据,这就涉及到设备和云平台的接入通信协议。
这一节,我们将简要介绍云平台支持的设备接入协议,帮您对这些方式有一个总体的了解,并大概知道如何选择它们。每一种接入方式的具体原理和操作方式,我们将在后续的相关章节中详细说明。
MQTT #
MQTT 协议基于 TCP/IP 协议,是一种基于消息队列机制的应用层协议,通常用于物联网消息通信场景。
在 MQTT 接入方式中,设备需要和云平台建立 TCP 长连接,并通过 MQTT 协议特有的方式完成身份认证。当设备成功连接到云平台后,通过 发布 和 订阅 相应的 主题(Topic),来完成和云平台的消息通信。
如果采用 MQTT 方式进行数据上报,设备首先要和云平台建立MQTT连接,我们同样在设备详情页的【连接】页面可以找到 MQTT 接入点地址,比如:
提示
请先进入 控制台 ,创建设备,获取设备 MQTT 接入点地址。
在硬件开发中,根据不同硬件平台,有相应的 MQTT 实现方式。这里我们以第三方 MQTT 客户端工具 MQTT.fxopen 为例,来模拟设备和云平台建立 MQTT 连接。
建立 MQTT 连接时,除了接入点地址外,还需要身份验证,设置如下:
参数 | 值 |
客户端ID | 设备号SN |
用户名 | 用户账号 |
密码 | 用户密码 |
客户端 -> 服务器 #
客户端发布到下方主题数据
发布主题:/dev/coo/设备号SN
数据格式:
{ "sensor_device_id": 1, "port_id": 1, "sdata": 33 }
备注:sensor_device_id 地址号,port_id 寄存器号,Sdata 数据数值
服务器 -> 客户端 #
客户端关注下方主题,服务器推送数据
订阅主题:/server/coo/设备号SN
数据格式:
{ "sensor_device_id": 1, "port_id": 2, "sdata": 100.0 }
备注:sensor_device_id 地址号,port_id 寄存器号,Sdata 传感器数值
如果是继电器开关的话,则 0 关闭,1 打开;
TCP #
除此之外,Modbus物联网平台 还支持无所不能的 TCP 接入协议,在控制台可以设置基于 TCP 的Modbus RTU和Modbus TCP协议。
前边提到的 DTU,通常都支持 TCP 透传方式接入云平台。
Modbus RTU 协议(标准) #
- 系统兼容标准的 modbus RTU 协议。
- DTU 配置时,需要配置成透传模式,并且设置自定义注册包,注册包为设备号 SN ;
- DTU 配置时,需要配置成透传模式,并且设置自定义心跳包,心跳包为设备号 SN;
- 连接地址: iot.modbus.cn
- 端口:50001
Modbus TCP 协议(标准) #
- 系统兼容标准的 modbus TCP 协议。
- DTU 配置时,需要配置成透传模式,并且设置自定义注册包,注册包为设备号 SN ;
- DTU 配置时,需要配置成透传模式,并且设置自定义心跳包,心跳包为设备号 SN;
- DTU 需设置 modbus 模式
- 连接地址: iot.modbus.cn
- 端口:50001