华为云平台 mqtt profile 文件_Nodejs原生MQTT接入华为IoT物联网平台

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

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

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

3daafafe7a37d3f2995de5c09be7d630.png

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

6f09fc331a1ff742206deaf4a3487ed3.png

2.华为IoT Platform控制台

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

a57b6edb60cc5adabe9ad8f1c8bd6296.png

2.1 创建设备

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

8f3e96db30303b1441d5992271fad195.png

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

33354eb514234be2b8df33f1be8920a0.png

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

86acda1ae0f245ea334ceacef13b22e8.png

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

2a4e9ade193cb76e7a42387cb1cef318.png

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

10ea97fa128f9ffc3f7ce514d0db0d5e.png

2.2 Nodejs设备接入

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

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

a5290a275e26f97715badc645c6395f7.png

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

f49295825c03320af482a9c1a8239e74.png

核心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))

3.设备运行

3.1 建立连接

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

d67417fe23b18d40788078bfcb5919ac.png

3.2 上报数据

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

e458169c7f16cfc8e143e6a8befbe250.png

3.3 断开连接

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

35d492751884fe1f013dc77f384921e0.png

3.4 设备行为跟踪日志

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

bed05f382bc40db398c638fae81c7f99.png

1.[视频]IoT物联网设备上云详解

2.IoT物联网平台离线设备消息触达方案

c959e1f285d2dd349b6ed68558dec936.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!以下是一个使用C语言编写的示例代码,用于将Hi3861开发板通过MQTT协议接入华为云平台并上传数据。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <MQTTClient.h> #define MQTT_BROKER_URL "ssl://iot-mqtts.cn-north-4.myhuaweicloud.com:8883" #define MQTT_CLIENT_ID "your_client_id" #define MQTT_USERNAME "your_username" #define MQTT_PASSWORD "your_password" #define MQTT_TOPIC "your_topic" void messageArrived(MessageData *data) { printf("Message arrived: %.*s\n", data->message->payloadlen, (char *)data->message->payload); } int main() { Network network; MQTTClient client; MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; int rc; // 初始化网络连接 NetworkInit(&network); // 初始化MQTT客户端 MQTTClientInit(&client, &network, 30000, NULL, 0); // 设置MQTT客户端连接选项 conn_opts.username = MQTT_USERNAME; conn_opts.password = MQTT_PASSWORD; conn_opts.keepAliveInterval = 60; conn_opts.cleansession = 1; // 连接到MQTT代理服务器 if ((rc = MQTTClientConnect(&client, &conn_opts)) != 0) { printf("Failed to connect to MQTT broker, return code: %d\n", rc); exit(EXIT_FAILURE); } // 订阅指定主题 if ((rc = MQTTClientSubscribe(&client, MQTT_TOPIC, QOS0, messageArrived)) != 0) { printf("Failed to subscribe to MQTT topic, return code: %d\n", rc); exit(EXIT_FAILURE); } // 循环等待消息 while (1) { MQTTClient_yield(); sleep(1); } // 断开MQTT连接 MQTTClientDisconnect(&client); MQTTClientDestroy(&client); return 0; } ``` 请注意,您需要将代码中的 "your_client_id"、"your_username"、"your_password" 和 "your_topic" 替换为您在华为云平台上的实际信息。此外,您还需要在编译和运行代码之前安装MQTTClient库。 希望对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值