华为云IoT物联网平台快速入门 —— 设备接入【零代码零硬件玩转华为云IoT】

举报
林欣 发表于 2024/04/14 20:10:49 2024/04/14
【摘要】 本文将 以 **设备接入模拟器** 为例,本文将使用MQTT原生协议设备接入华为云IoT物联网平台,并通过MQTT客户端模拟器,快速验证是否可以与华为云IoT物联网平台服务交互、发布和订阅消息。

一、导读

听说华为云IoT物联网平台很好用,今天带大家一起来体验一下。

设备接入模拟器 为例,本文将使用MQTT原生协议设备接入华为云IoT物联网平台,并通过MQTT客户端模拟器,快速验证是否可以与华为云IoT物联网平台服务交互、发布和订阅消息。

image.png

二、设备接入

首先,访问华为云官网:https://www.huaweicloud.cn/

选择 产品 选项卡,切换到 IoT物联网 页面,点击 设备接入IoTDA(安全可靠接入海量设备) 服务模块

image.png

2.1 购买服务

设备接入服务的主页为:https://www.huaweicloud.cn/product/iothub.html

华为云的设备接入服务可以提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力

image.png

点击 价格计算器,可以看到华为云贴心的为 中小微企业 提供了 免费单元S0,它支持1000台设备同时在线,最大消息上下行10TPS,同时每日消息数上限为1万条

image.png

了解了产品价格后,我们回到产品主页,点击红色的 免费试用 按钮,免费试用S0单元。

image.png

填入以下信息

  • 实例名称(必填):实例的唯一ID
  • 标签:对于拥有大量云资源的用户,可以通过给云资源打标签,快速查找具有某标签的云资源
  • 示例描述:用来描述你这个实例的具体功能

image.png

填写完成后,点击 立即创建 按钮,即可完成实例的创建,并会自动跳转到 IoTDA 实例页面。

可以看到当前实例是 基础版(原共享实例)

实例描述如下:针对小型企业客户场景,设备并发性能要求较低

image.png

image.png

2.2 创建产品

在设备接入页面左侧,点击 产品 按钮,来到产品功能页面。

可以看到华为云对产品的定义是:在物联网平台中,某一类具有相同能力或特征的设备的合集被称为一款产品。

image.png

点击红色的 创建产品 按钮,填写以下内容

  1. 产品名称:设备接入测试
  2. 协议类型: mqtt(默认)
  3. 数据格式: json(默认)
  4. 设备类型: 标准类型(默认)
  5. 设备类型:电热水器(设备类型选好后,会自动为你填写行业和其子行业)

image.png

如果你觉得这些类型都不符合你的产品,还可以切换到 自定义类型,来创建更为符合您应用场景的产品

image.png

点击 确定 后,产品创建成功。它会弹出一个产品创建成功的提示对话框,同时 底部的产品列表 中也会出现该条产品的记录

image.png

在对话框中点击 查看详情,可以看到这个产品的模型定义、插件开发、在线调试、Topic 管理 等功能

image.png

image.png

2.3 自定义模型

2.3.1 添加服务

产品页面往下拉,可以看到 模型定义 的二级页面

image.png

华为云有对产品模型做出定义,具体解释如下

产品模型用于描述设备具备的能力和特性,平台提供多种方式定义产品模型; 如果没有定义产品模型,设备上报数据时平台仅直接转发,不做解析

因此,我们需要点击“自定义模型”按钮,添加服务。填入如下信息即可

  • 服务ID
  • 服务类型
  • 服务描述

image.png

点击确定后,服务创建成功

image.png

2.3.2 新增属性

下面为该服务添加一个属性。点击中央的 新增属性 按钮,输入如下信息

  • 属性名称
  • 属性描述
  • 数据类型
  • 访问权限
  • 取值范围
  • 步长
  • 单位

image.png

至此,服务已创建成功

image.png

2.3.3 添加命令

点击添加命令 按钮,给命令起一个名字

image.png

新增请求参数,和前面填写的温度一样即可

image.png

响应参数设置为布尔值,来标识修改是否成功

image.png

2.4 注册设备

在设备接入页面,展开 设备 选项卡,点击 所有设备,默认展示的就是如下设备列表

image.png

按实际情况天下如下信息 (注意:不能使用中文标点符号)

image.png

输入密码,点击确定后,就会为你创建一个出一个新设备了

注意:这里显示的设备ID,是产品ID + 下划线 + 设备ID

image.png

可以看到这里设备已经创建好了,但是还未激活

image.png

点击 详情 按钮,可以看到设备具体的描述信息

image.png

未激活旁边有个问号,点它,可以看到未激活的具体定义(这点做的还是很不错的),如下

未激活:已在平台上完成设备注册但真实设备还未接入平台。请根据设备初始化操作完成设备的接入

image.png

点击 复制 按钮,复制设备ID,后面需要用到

661bc67d7bdccc0126d132db_abcdefghijklmnopqrstuvwxyz

image.png

2.5 调试设备

2.5.1 创建虚拟设备用于调试

切换到产品选项卡,进入我们刚刚创建的产品。然后切换到在线调试页面

image.png

点击新增测试设备按钮,设备类型切换成虚拟设备

image.png

点击确定,虚拟设备创建成功

image.png

我这里创建了一台虚拟设备、一台真实设备,用于调试。在虚拟设备这行,点击操作列的调试按钮,进入在线调试页面。

image.png

在该页面设置:服务、命令、参数后,下拉页面到最下,点击发送。这里可以看到,应用模拟器 通过 IoT平台 将指令下发给了 设备模拟器,日志记录如图

image.png

点击IoT平台右上角的消息条数,可以展开消息跟踪面板,在这里可以看到平台收发的整个消息流

image.png

也可以在左侧切换到监控运维选项卡,点击消息跟踪按钮,查看更详细的业务流转情况

image.png

2.5.2 真实设备需要用模拟器调试

回到设备列表页面,点击对应设备操作栏下面的 调试 按钮,进入在线调试页面

image.png

这里设备还是未激活状态,点击右上角的选择设备

image.png

选中前面创建的热水器设备(从旁边的黄色字来看,可以得知:这是一个真实设备),点击确定按钮

image.png

依次填写:服务命令参数,然后滚动条拉到底部,点击发送按钮。

可以看到报错了,错误如下

下发同步命令(修改温度)失败
设备不在线。您可以根据错误码进行问题定位及处理
展开错误码及错误信息
错误码:IOTDA.014016
错误信息:Operation not allowed. The device is not online.

image.png

这是因为,我们当前创建的设备是一个真实设备。因此,它必须在线才能访问(如果你要测试命令的收发,建议创建虚拟设备

2.5.2.1 下载模拟器

下面我们将以MQTT.fx为例,介绍以MQTT原生协议接入物联网平台。MQTT.fx是目前主流的MQTT客户端,可以快速验证是否可以与物联网平台服务交互发布或订阅消息。

华为云提供了专门的帮助文档,指导您如何安装MQTT模拟器,地址为:https://support.huaweicloud.cn/bestpractice-iotedge/iotedge_bestpractice_0052.html

image.png

点击对应链接,下载模拟器即可。当前版本为:mqttfx-1.7.1-windows-x64.exe

image.png

点击后是一个安装界面,依次点击下一步即可

image.png

image.png

image.png

image.png

image.png

image.png

mqttfx 的默认安装位置在C盘:C:\Program Files\mqttfx,进入该目录

image.png

双击 mqttfx.exe 打开应用程序

image.png

切换到所有设备列表,选中我们的设备,在操作栏点击详情按钮

image.png

在详情页中,点击查看MQTT连接参数

image.png

具体参数如下

image.png

2.5.2.2 连接华为云IoT平台

在 MQTT.fx 软件中,点击设置按钮,如下图

image.png

点击左下角的加号,新增一个配置项

image.png

如图,填写地址和端口

image.png

在所有设备页面,找到我们创建的真实设备,将设备ID复制过去

image.png

点击进入设备详情页面,点击MQTT连接信息,将用户名、密码复制过去(注意:MQTT软件要切换到 User Credentials 选项卡),最后点击OK按钮确认

image.png

回到主页面,点击Connect按钮,连接到华为云IoT平台

image.png

如果有报错,可以切换到日志页面,查看详细问题

image.png

Connection lost 的解决办法是 —— 将我们之前填写的 8883 端口改为 1883

image.png

image.png

打印出onConnect,并且标志变为绿色就说明连接成功

image.png

连接成功后,回到设备页,就可以看到该设备在线的标识

image.png

2.5.2.3 订阅消息

点击操作栏的调试按钮,编辑并发送指令给设备。这里虽然模拟器会打印消息日志,但是IoT平台报错如下

命令请求超时,请确认设备是否收到平台的请求并订阅正确的topic且回复正确的响应给平台。您可以根据错误码进行问题定位及处理
展开错误码及错误信息
错误码:IOTDA.014111
错误信息:{{0}}

image.png

image.png

需要复制这个Topic (commands后面的内容用#号替代)

$oc/devices/661bc67d7bdccc0126d132db_abcdefghijklmnopqrstuvwxyz/sys/commands/#

image.png

这个Topic也可以在产品页面Topic管理选项卡中找到

image.png

贴入 Substribe 页面,点击订阅。然后回到在线调试页面,点击发送,即可收到日志了

image.png

2.5.2.4 发布消息

切换到Publish页面,topic的前面都跟我们之前复制的订阅的事件是一样的,只不过sys后面改为properties/report

$oc/devices/661bc67d7bdccc0126d132db_abcdefghijklmnopqrstuvwxyz/sys/properties/report

Topic的定义,可以查阅华为云官方文档:https://support.huaweicloud.cn/api-iothub/iot_06_v5_3004.html

本例用的是设备上报属性,这个Topic

image.png

填入以下信息。注意:service_id要改为你的服务名称,properties也要改为你的属性列表,event_time表示上报时间

{
    "services" : [{
            "service_id" : "测试服务001",
            "properties" : {
                "温度" : 15
            },
            "event_time" : "20240415T200433Z"
        }
    ]
}

点击发布按钮

image.png

切换到消息跟踪选项卡,可以看到已经成功接收到消息了。这里提示失败,是因为中文解析乱码,它不认得导致的

image.png

image.png

回到产品页面,将模型ID修改为英文,同时也将属性和命令修改为英文

image.png

image.png

在消息跟踪这里,可以看到上报属性成功了

image.png

image.png

MQTT模拟器日志如下

image.png

更详细的教程可以查看华为云官方帮助文档:https://support.huaweicloud.cn/bestpractice-iotedge/iotedge_bestpractice_0056.html

image.png

image.png

三、总结

万物互联可谓是未来的趋势,鸿蒙系统就是在这个背景下被打造出来的。而华为的IoT平台,非常适合新手入门和老手快速对接设备、协议。

通过本文对华为云IoT平台由浅入深的讲解,你应该能大体上了解华为云的IoT平台了吧。俗话说一图胜千言,送上一个我对设备接入华为云IoT平台的脑图

image.png

我正在参加【有奖征文 第29期】零代码零硬件玩转华为云IoT物联网平台多场景
链接:https://bbs.huaweicloud.cn/blogs/423245

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。