华为云IoT物联网平台快速入门 —— 设备接入【零代码零硬件玩转华为云IoT】
一、导读
听说华为云IoT物联网平台很好用,今天带大家一起来体验一下。
以 设备接入模拟器 为例,本文将使用MQTT原生协议设备接入华为云IoT物联网平台,并通过MQTT客户端模拟器,快速验证是否可以与华为云IoT物联网平台服务交互、发布和订阅消息。
二、设备接入
首先,访问华为云官网:https://www.huaweicloud.cn/
选择 产品 选项卡,切换到 IoT物联网 页面,点击 设备接入IoTDA(安全可靠接入海量设备) 服务模块
2.1 购买服务
设备接入服务的主页为:https://www.huaweicloud.cn/product/iothub.html
华为云的设备接入服务可以提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力
点击 价格计算器,可以看到华为云贴心的为 中小微企业 提供了 免费单元S0,它支持1000台设备同时在线,最大消息上下行10TPS,同时每日消息数上限为1万条
了解了产品价格后,我们回到产品主页,点击红色的 免费试用 按钮,免费试用S0单元。
填入以下信息
- 实例名称(必填):实例的唯一ID
- 标签:对于拥有大量云资源的用户,可以通过给云资源打标签,快速查找具有某标签的云资源
- 示例描述:用来描述你这个实例的具体功能
填写完成后,点击 立即创建 按钮,即可完成实例的创建,并会自动跳转到 IoTDA 实例页面。
可以看到当前实例是 基础版(原共享实例)
实例描述如下:针对小型企业客户场景,设备并发性能要求较低
2.2 创建产品
在设备接入页面左侧,点击 产品 按钮,来到产品功能页面。
可以看到华为云对产品的定义是:在物联网平台中,某一类具有相同能力或特征的设备的合集被称为一款产品。
点击红色的 创建产品 按钮,填写以下内容
- 产品名称:设备接入测试
- 协议类型: mqtt(默认)
- 数据格式: json(默认)
- 设备类型: 标准类型(默认)
- 设备类型:电热水器(设备类型选好后,会自动为你填写行业和其子行业)
如果你觉得这些类型都不符合你的产品,还可以切换到 自定义类型,来创建更为符合您应用场景的产品
点击 确定 后,产品创建成功。它会弹出一个产品创建成功的提示对话框,同时 底部的产品列表 中也会出现该条产品的记录
在对话框中点击 查看详情,可以看到这个产品的模型定义、插件开发、在线调试、Topic 管理 等功能
2.3 自定义模型
2.3.1 添加服务
产品页面往下拉,可以看到 模型定义 的二级页面
华为云有对产品模型做出定义,具体解释如下
产品模型用于描述设备具备的能力和特性,平台提供多种方式定义产品模型; 如果没有定义产品模型,设备上报数据时平台仅直接转发,不做解析
因此,我们需要点击“自定义模型”按钮,添加服务。填入如下信息即可
- 服务ID
- 服务类型
- 服务描述
点击确定后,服务创建成功
2.3.2 新增属性
下面为该服务添加一个属性。点击中央的 新增属性 按钮,输入如下信息
- 属性名称
- 属性描述
- 数据类型
- 访问权限
- 取值范围
- 步长
- 单位
至此,服务已创建成功
2.3.3 添加命令
点击添加命令 按钮,给命令起一个名字
新增请求参数,和前面填写的温度一样即可
响应参数设置为布尔值,来标识修改是否成功
2.4 注册设备
在设备接入页面,展开 设备 选项卡,点击 所有设备,默认展示的就是如下设备列表
按实际情况天下如下信息 (注意:不能使用中文标点符号)
输入密码,点击确定后,就会为你创建一个出一个新设备了
注意:这里显示的设备ID,是产品ID + 下划线 + 设备ID
可以看到这里设备已经创建好了,但是还未激活
点击 详情 按钮,可以看到设备具体的描述信息
未激活旁边有个问号,点它,可以看到未激活的具体定义(这点做的还是很不错的),如下
未激活:已在平台上完成设备注册但真实设备还未接入平台。请根据设备初始化操作完成设备的接入
点击 复制 按钮,复制设备ID,后面需要用到
661bc67d7bdccc0126d132db_abcdefghijklmnopqrstuvwxyz
2.5 调试设备
2.5.1 创建虚拟设备用于调试
切换到产品选项卡,进入我们刚刚创建的产品。然后切换到在线调试页面
点击新增测试设备按钮,设备类型切换成虚拟设备
点击确定,虚拟设备创建成功
我这里创建了一台虚拟设备、一台真实设备,用于调试。在虚拟设备这行,点击操作列的调试按钮,进入在线调试页面。
在该页面设置:服务、命令、参数后,下拉页面到最下,点击发送。这里可以看到,应用模拟器 通过 IoT平台 将指令下发给了 设备模拟器,日志记录如图
点击IoT平台右上角的消息条数,可以展开消息跟踪面板,在这里可以看到平台收发的整个消息流
也可以在左侧切换到监控运维选项卡,点击消息跟踪按钮,查看更详细的业务流转情况
2.5.2 真实设备需要用模拟器调试
回到设备列表页面,点击对应设备操作栏下面的 调试 按钮,进入在线调试页面
这里设备还是未激活状态,点击右上角的选择设备
选中前面创建的热水器设备(从旁边的黄色字来看,可以得知:这是一个真实设备),点击确定按钮
依次填写:服务、命令 和 参数,然后滚动条拉到底部,点击发送按钮。
可以看到报错了,错误如下
下发同步命令(修改温度)失败
设备不在线。您可以根据错误码进行问题定位及处理
展开错误码及错误信息
错误码:IOTDA.014016
错误信息:Operation not allowed. The device is not online.
这是因为,我们当前创建的设备是一个真实设备。因此,它必须在线才能访问(如果你要测试命令的收发,建议创建虚拟设备)
2.5.2.1 下载模拟器
下面我们将以MQTT.fx为例,介绍以MQTT原生协议接入物联网平台。MQTT.fx是目前主流的MQTT客户端,可以快速验证是否可以与物联网平台服务交互发布或订阅消息。
华为云提供了专门的帮助文档,指导您如何安装MQTT模拟器,地址为:https://support.huaweicloud.cn/bestpractice-iotedge/iotedge_bestpractice_0052.html
点击对应链接,下载模拟器即可。当前版本为:mqttfx-1.7.1-windows-x64.exe
点击后是一个安装界面,依次点击下一步即可
mqttfx 的默认安装位置在C盘:C:\Program Files\mqttfx,进入该目录
双击 mqttfx.exe 打开应用程序
切换到所有设备列表,选中我们的设备,在操作栏点击详情按钮
在详情页中,点击查看MQTT连接参数
具体参数如下
2.5.2.2 连接华为云IoT平台
在 MQTT.fx 软件中,点击设置按钮,如下图
点击左下角的加号,新增一个配置项
如图,填写地址和端口
在所有设备页面,找到我们创建的真实设备,将设备ID复制过去
点击进入设备详情页面,点击MQTT连接信息,将用户名、密码复制过去(注意:MQTT软件要切换到 User Credentials 选项卡),最后点击OK按钮确认
回到主页面,点击Connect按钮,连接到华为云IoT平台
如果有报错,可以切换到日志页面,查看详细问题
Connection lost
的解决办法是 —— 将我们之前填写的 8883
端口改为 1883
打印出onConnect
,并且标志变为绿色就说明连接成功
连接成功后,回到设备页,就可以看到该设备在线的标识了
2.5.2.3 订阅消息
点击操作栏的调试按钮,编辑并发送指令给设备。这里虽然模拟器会打印消息日志,但是IoT平台报错如下
命令请求超时,请确认设备是否收到平台的请求并订阅正确的topic且回复正确的响应给平台。您可以根据错误码进行问题定位及处理
展开错误码及错误信息
错误码:IOTDA.014111
错误信息:{{0}}
需要复制这个Topic (commands后面的内容用#号替代)
$oc/devices/661bc67d7bdccc0126d132db_abcdefghijklmnopqrstuvwxyz/sys/commands/#
这个Topic也可以在产品页面的Topic管理选项卡中找到
贴入 Substribe 页面,点击订阅。然后回到在线调试页面,点击发送,即可收到日志了
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
填入以下信息。注意:service_id要改为你的服务名称,properties也要改为你的属性列表,event_time表示上报时间
{
"services" : [{
"service_id" : "测试服务001",
"properties" : {
"温度" : 15
},
"event_time" : "20240415T200433Z"
}
]
}
点击发布按钮
切换到消息跟踪选项卡,可以看到已经成功接收到消息了。这里提示失败,是因为中文解析乱码,它不认得导致的
回到产品页面,将模型ID修改为英文,同时也将属性和命令修改为英文
在消息跟踪这里,可以看到上报属性成功了
MQTT模拟器日志如下
更详细的教程可以查看华为云官方帮助文档:https://support.huaweicloud.cn/bestpractice-iotedge/iotedge_bestpractice_0056.html
三、总结
万物互联可谓是未来的趋势,鸿蒙系统就是在这个背景下被打造出来的。而华为的IoT平台,非常适合新手入门和老手快速对接设备、协议。
通过本文对华为云IoT平台由浅入深的讲解,你应该能大体上了解华为云的IoT平台了吧。俗话说一图胜千言,送上一个我对设备接入华为云IoT平台的脑图
我正在参加【有奖征文 第29期】零代码零硬件玩转华为云IoT物联网平台多场景
链接:https://bbs.huaweicloud.cn/blogs/423245
- 点赞
- 收藏
- 关注作者
评论(0)