1.开通华为IoT设备接入服务

华为IoT设备接入云产品开通:

https://www.huaweicloud.com/product/iothub.html

IOT接入符号图 iot设备接入_物联网

开通后,接入的是物联网平台的控制台,需要点击右上角设备管理服务,进入IoT Platform控制台。参考下图:

IOT接入符号图 iot设备接入_输入设备_02

2.华为IoT Platform控制台

华为IoT Platform控制台的设备管理页面,可以查看全部设备,当前设备的状态。参考下图:

IOT接入符号图 iot设备接入_输入设备_03

2.1 创建设备

进入到设备管理的 设备注册页面,点击右上角的 创建 按钮。

IOT接入符号图 iot设备接入_IOT接入符号图_04

在弹出框里选择产品模型,输入设备识别码,点击确定按钮。参考下图

IOT接入符号图 iot设备接入_物联网_05

创建成功,系统会自动生成秘钥。如下图:

IOT接入符号图 iot设备接入_设备管理_06

接下来,我们查看全量设备,会看到刚刚创建的设备,状态为 未激活。下参考下图:

IOT接入符号图 iot设备接入_设备管理_07

然后我们点击设备识别码,接入设备详情,开启设备消息跟踪服务。华为IoT默认不启动消息跟踪日志,需要手动开启。而且每次最多跟踪3天消息日志,过期后需要再次开启。这里开发联调过程比较痛苦。

IOT接入符号图 iot设备接入_IOT接入符号图_08

2.2 Nodejs设备接入

我们在Nodejs设备上采用Eclipse的paho mqtt库来接入华为IoT平台。

通过阅读华为文档,我们知道Connect的参数如下:

IOT接入符号图 iot设备接入_输入设备_09

华为IoT平台消息通信的Topic不允许自定义,只能使用默认的上行(/data/),下行(/command/)2个Topic。

IOT接入符号图 iot设备接入_输入设备_10

核心Connect代码:

const path = require('path');
const huaweiIoT = require('huaweicloud-iot-device-sdk');

const options = {
    deviceId: "设备deviceId",
    deviceSecret: "设备Secret",
    caFilePath: path.join(__dirname, 'hw-iot-root.pem'),
    host:'iot-acc.cn-north-4.myhuaweicloud.com'
}

//建立连接
var client = huaweiIoT.getHuaweiIoTClient(options);

上报数据代码:

 /huawei/v1/devices/{deviceId}/data/json

var topic = `/huawei/v1/devices/${options.deviceId}/data/json`
var postJson = {
    msgType: "deviceReq",
    data: [{
            serviceId: "pubData",
            serviceData: {
                model: 'Ruff',
                sdk: '0.02',
                Node_Version: 8
            }
        }

    ]
}
client.publish(topic, JSON.stringify(postJson))
var topic = `/huawei/v1/devices/${options.deviceId}/data/json`
var postJson = {
    msgType: "deviceReq",
    data: [{
            serviceId: "pubData",
            serviceData: {
                model: 'Ruff',
                sdk: '0.02',
                Node_Version: 8
            }
        }

    ]
}
client.publish(topic, JSON.stringify(postJson))




3.设备运行

3.1 建立连接

输入设备DeviceId和Secret,启动hw.js脚本,如下图

IOT接入符号图 iot设备接入_IOT接入符号图_11

3.2 上报数据

延迟5s后,主动上报设备的型号,sdk以及OS信息到云端。在设备详情信息里展示出来。如下图

IOT接入符号图 iot设备接入_设备管理_12

3.3 断开连接

点击断开连接,设备主动下线。控制台设备状态会显示为离线。如下图

IOT接入符号图 iot设备接入_设备管理_13

3.4 设备行为跟踪日志

设备整个行为记录,也完整的展示在设备详情的消息跟踪里面。如下图

IOT接入符号图 iot设备接入_IOT接入符号图_14