目录

准备工作

第一步:创建产品

第二步:启动MQTT组件

第三步:准备MQTT连接参数

第四步:使用mqtt客户端模拟设备

第五步:设备数据上报

第六步:指令下发到设备

第七步:使用真实设备接入


准备工作

1、启动iotkit-parent后台项目

2、启动iot-console-web前端项目

第一步:创建产品

先确定待接入的设备是属于哪个产品:

mqtt java 能获取设备下线吗 mqtt设备接入_数据

如果没有需要的产品就新建,这里以插座为例。

为插座这个产品定义功能,比如信号强度、开关:

mqtt java 能获取设备下线吗 mqtt设备接入_客户端_02

第二步:启动MQTT组件

mqtt java 能获取设备下线吗 mqtt设备接入_java_03

查看MQTT端口:

mqtt java 能获取设备下线吗 mqtt设备接入_mqtt java 能获取设备下线吗_04

第三步:准备MQTT连接参数

参考《输入密码 · 奇特物联》的”网关连接和注册“节,准备好连接参数:

MQTT地址:后台程序运行的IP,比如程序和设备都跑在本机就可以用 127.0.0.1

MQTT端口:”MQTT标准协议组件“中配置的端口号,如:1883

MQTT clientId:

格式:productKey_deviceName_model

其中productKey来自”第一步“中的productKey字段:cGCrkK7Ex4FESAwe

deviceName为设备唯一标识符,需要确保在同一个产品保持唯一,可以用设备的SN号、IMEI、MAC、或手动指定(如:TEST01)

model为设备的型号,没要求直接指定(如:m1)

组成的clientId:cGCrkK7Ex4FESAwe_TEST01_m1

MQTT userName:使用上面的deviceName,即:TEST01

MQTT password:使用”产品密钥“和clientId组合后的md5值,产品密钥固定为:xdkKUymrEGSCYWswqCvSPyRSFvH5j7CU

md5生成工具:http://www.jsons.cn/md5/s/

mqtt java 能获取设备下线吗 mqtt设备接入_客户端_05

生成的password为: 9ce07cf69b2a7b05504c25d8d435e767

第四步:使用mqtt客户端模拟设备

下载MQTT X:跨平台 MQTT 5.0 桌面客户端工具

新建连接:

mqtt java 能获取设备下线吗 mqtt设备接入_java_06

连接:

mqtt java 能获取设备下线吗 mqtt设备接入_客户端_07

刷新设备列表:

可以看到自动创建了一个叫"TEST01"的设备

mqtt java 能获取设备下线吗 mqtt设备接入_mqtt java 能获取设备下线吗_08

订阅主题:

订阅topic:/sys/cGCrkK7Ex4FESAwe/TEST01/c/#

topic组成格式:/sys/productKey/deviceName/c/#

mqtt java 能获取设备下线吗 mqtt设备接入_客户端_09

刷新设备列表:

设备变成在线

mqtt java 能获取设备下线吗 mqtt设备接入_mqtt java 能获取设备下线吗_10

第五步:设备数据上报

属性上报:

按《MQTT协议》填写topic和payload:

现在用”第一步“产品中的信号强度和开关上报

mqtt java 能获取设备下线吗 mqtt设备接入_java_11

填写并发送:

payload可以填一个属性也可以同时填多个属性


topic: /sys/cGCrkK7Ex4FESAwe/TEST01/s/event/property/post payload: { "id":"1", "method":"thing.event.property.post", "params":{ "rssi":20, "powerstate":0 } }


mqtt java 能获取设备下线吗 mqtt设备接入_java_12

打开设备详细->日志

可以看到上报的记录

mqtt java 能获取设备下线吗 mqtt设备接入_mqtt java 能获取设备下线吗_13

多上报到几次数据查看历史数据:

mqtt java 能获取设备下线吗 mqtt设备接入_开发语言_14

除了属性上报,类似还可以做事件上报等,具体参考物模型和协议文档。

第六步:指令下发到设备

在可写属性上点击”可写“

mqtt java 能获取设备下线吗 mqtt设备接入_客户端_15

设置需要下发的属性值:

mqtt java 能获取设备下线吗 mqtt设备接入_java_16

mqtt客户端收到设置的值:

mqtt java 能获取设备下线吗 mqtt设备接入_java_17

除了属性设置,类似还可以做服务调用、配置下发、属性获取等,具体参考物模型和协议文档。

第七步:使用真实设备接入

第一次接入需要严格按照上述步骤完成模拟接入验证,再使用真实设备进行开发。

若出现问题时可以用模拟设备作为参考进行排查。