用物联网平台开发与调试编解码插件实战【玩转华为云】

举报
龙哥手记 发表于 2022/09/16 16:00:46 2022/09/16
【摘要】 物联网平台完成产品模型开发、编解码插件开发及在线调试快速体验
本文主要内容有:
  • 一 设备接入是个啥
  • 二 接入设备控制台
  • 三 创建并定义产品模型
  • 四 开发调试编解码插件
  • 五 删除完成实验资源

2.gif

一 💡 设备接入是个啥

是华为云的物联网平台,它能提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,简直非常强大,并可把设备数据灵活流转到华为云其他服务上面;

1.gif

这个物联网平台它有啥优势吗?

相比企业自建MQTT集群,使用华为云IoT服务低成本它能构建物联网解决方案,并在能力、成本、运维、安全、生态等很多方面具有突出明显优势哦!

1.png2.png

二 🥩 接入设备控制台

2.1 展开服务列表,选“IoT物联网 > 设备接入 IoTDA”进入设备接入控制台

2.2 设备接入控制台界面预览如下,默认开通基础版


三 😍 创建并定义产品模型

3.1 单击“产品 > 创建产品”

产品是什么?
在物联网平台中,某一类具有相同能力或特征的设备的合集被称为一款产品。您可为产品定义产品模型,产品模型用于描述设备具备的能力和特性,定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等这种信息;

3.2 以智慧农业场景为例填写参数,单击右下角“确定”

① 产品名称:自定义,如HCCDA-IoT

② 协议类型:MQTT

③ 数据格式:二进制码流

④ 厂商名称:自定义,如Huawei

⑤ 所属行业:无

⑥ 设备类型:自定义,如HCCDA-IoT

3.3 提示创建产品成功,然后单击“查看详情”

3.5 产品模型是什么?

产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息;

3.6 添加Agriculture服务

 单击“模型定义 > 自定义模型”;

智慧农业场景为例,输入“服务ID”、“服务类型”和“服务描述”,单击“确定”;

① 服务ID:Agriculture

② 服务类型:Agriculture

③ 服务描述:检测实时温湿度和光照强度

Tips:如果需要输入中文内容,请使用实验操作桌面右上角的剪贴板工具,将本地编辑好的中文拷贝粘贴到实验桌面内

3.7 添加属性

以智慧农业场景为例,属性设计

单击“添加属性”;

根据设计思路,添加“Temperature”属性,数据类型“int”,访问权限“可读、可写”,单击“确定”;

① 属性名称:Temperature

② 数据类型:int(整型)

③ 访问权限:可读、可写

④ 取值范围:默认值,0-65535

根据设计思路,添加“Humidity”属性,单击“确定”;

① 属性名称:Humidity

② 数据类型:int(整型)

③ 访问权限:可读、可写

④ 取值范围:默认值,0-65535

根据设计思路,添加“Luminance”属性,单击“确定”;

① 属性名称:Luminance

② 数据类型:int(整型)

③ 访问权限:可读、可写

④ 取值范围:默认值,0-65535

3.8 添加命令

以智慧农业场景为例,命令设计

单击“添加命令”;

根据设计思路,输入命令名称“Agriculture_Control_Light”,单击“新增输入参数”;

根据设计思路,新增“Light”参数,单击“确定”;

① 参数名称:Light

② 数据类型:string(字符串)

③ 长度:3

④ 枚举值:ON,OFF

Tips:为了方便理解与调测命令,推荐定义参数为string类型,并填写枚举值

单击“新增响应参数”;

根据设计思路,新增“Light_State”参数,单击“确定”;

① 参数名称:Light_State

② 数据类型:int(整型)

③ 取值范围:0-1(0表示命令执行成功,1表示命令执行失败)

“Agriculture_Control_Light”命令新增完成,单击“确定”;

单击“添加命令”;根据设计思路,输入命令名称“Agriculture_Control_Motor”,单击“新增输入参数”;根据设计思路,新增“Motor”参数,单击“确定”;

① 参数名称:Motor

② 数据类型:string(字符串)

③ 长度:3

④ 枚举值:ON,OFF

Tips:为了方便理解与调测命令,推荐定义参数为string类型,并填写枚举值

单击“新增响应参数”;根据设计思路,新增“Motor_State”参数,单击“确定”;

① 参数名称:Motor_State

② 数据类型:int(整型)

③ 取值范围:0-1(0表示命令执行成功,1表示命令执行失败)

“Agriculture_Control_Motor”命令新增完成,单击“确定”;

智慧农业服务Agriculture模型定义完成,如下图

四 🌈 开发调试编解码插件

以智慧农业场景为例,编解码插件消息字段必须与模型定义一致

编解码插件的作用是啥?

编解码插件是供物联网平台调用,完成二进制格式和JSON格式相互转换的。它将设备上报的二进制数据解码为JSON格式供应用服务器“阅读”,将应用服务器下行的JSON格式命令编码为二进制格式数据供终端设备“理解执行”。

什么场景下需要开发编解码插件?

编解码插件主要根据设备上报数据的格式来判断是否需要开发。如果设备上报的“数据格式”为“二进制码流”,则该产品下需要进行编解码插件开发;如果“数据格式”为“JSON”,则该产品下不需要进行编解码插件开发。

4.1 新增数据上报消息

上报消息字段规划

单击“插件开发 > 图形化开发 > 图形化开发”;

单击“新增消息”;

输入消息名“Agriculture”,消息类型选择“数据上报”,单击“添加字段”;

勾选“标记为地址域”,其他默认,单击“确认”;

单击“添加字段”;输入字段名字“Temperature”,单击“确认”;

① 字段名称:Temperature

② 数据类型(大端模式):int8u

单击“添加字段”;输入字段名字“Humidity”,单击“确认”;

① 字段名称:Humidity

② 数据类型(大端模式):int8u

单击“添加字段”;输入字段名字“Luminance”,数据类型“int16u”,长度“2”,单击“确认”;

① 字段名称:Luminance

② 数据类型(大端模式):int16u

属性字段添加完成,单击“确定”;

单击右侧产品模型“Agriculture > 属性”,将三个属性逐个拖动到左侧,与消息中的字段一一对应。

单击右上角“保存”,智慧农业数据上报消息新增成功

4.2 新增Light命令消息

Light控制命令字段规划

单击“新增消息”;输入消息名“Agriculture_Control_Light”,消息类型“命令下发”,勾选“添加响应字段”;

单击“添加字段”;勾选“标记为地址域”,单击“确认”;

单击“添加字段”;勾选“标记为响应标识字段”,其他默认,单击“确认”;

单击“添加字段”;输入字段名字“Light”,数据类型“string”,长度“3”,单击“确认”;

① 字段名称:Light

② 数据类型(大端模式):string

③ 长度:3

Tips:产品模型中定义的命令下发字段为string类型,长度为3,此处必须保持一致

单击“添加响应字段”;勾选“标记为地址域”,单击“确认”;

单击“添加响应字段”;勾选“标记为响应标识字段”,单击“确认”;

单击“添加响应字段”;勾选“标记为命令执行状态字段”,单击“确认”;

单击“添加响应字段”;输入字段名字“Light_State”,单击“确认”;

① 字段名称:Light_State

② 数据类型(大端模式):int8u

命令字段添加完成,单击“确定”;

单击右侧产品模型“Agriculture > 命令 > Agriculture_Control_Light”并展开,将命令下发字段Light和命令响应字段Light_State逐个拖动到左侧,与消息中的字段一一对应

单击右上角“保存”,智慧农业Light命令消息新增成功

4.3 新增Motor命令消息

Motor控制命令字段规划

单击“新增消息”;输入消息名“Agriculture_Control_Motor”,消息类型“命令下发”,勾选“添加响应字段”;

单击“添加字段”;勾选“标记为地址域”,单击“确认”;

单击“添加字段”;勾选“标记为响应标识字段”,其他默认,单击“确认”;

单击“添加字段”;输入字段名字“Motor”,数据类型“string”,长度“3”,单击“确认”;

① 字段名称:Motor

② 数据类型(大端模式):string

③ 长度:3

Tips:产品模型中定义的命令下发字段为string类型,长度为3,此处必须保持一致

单击“添加响应字段”;勾选“标记为地址域”,单击“确认”;

单击“添加响应字段”;勾选“标记为响应标识字段”,单击“确认”;

单击“添加响应字段”;勾选“标记为命令执行状态字段”,单击“确认”;

单击“添加响应字段”;输入字段名字“Motor_State”,单击“确认”;

① 字段名称:Motor_State

② 数据类型(大端模式):int8u

命令字段添加完成,单击“确定”;

单击右侧产品模型“Agriculture > 命令 > Agriculture_Control_ Motor”并展开,将命令下发字段Motor和命令响应字段Motor_State逐个拖动到左侧,与消息中的字段一一对应

单击右上角“保存”,智慧农业Motor命令消息新增成功。然后单击右上角“部署 > 确认”,等待提示在线插件部署成功。

4.5 新增虚拟设备

单击“HCCDA-IoT”,回到产品界面;

单击“在线调试 > 新增测试设备”;

设备类型选择“虚拟设备”,单击“确定”;

设备创建成功,单击“确定”;

单击设备右侧的“调试”,进入在线调试界面;

4.6 数据上报调试

1. 调测Agriculture消息,在文本框中输入“00193C0064”,单击“发送”;

其中,“00193C0064”为十六进制格式,我们按设备属性进行拆分理解,对应关系如下:

 00 - message_id - 整型(int8u),占1个字节;

 19 - Temperature - 整型(int8u),占1个字节 - 对应十进制数值为25;

 3C - Humidity - 整型(int8u),占1个字节 - 对应十进制数值为60;

 0064 - Luminance - 整型(int16u),占2个字节 - 对应十进制数值为100;

可以看到在应用模拟器中显示模拟数据接收“{ "Temperature": 25, "Humidity": 60, "Luminance": 100 }”;

4.7 Light命令调试

1. 服务选择“Agriculture”,命令选择“Agriculture_Control_Light”,Light选择“ON”,单击“发送”,应用模拟器窗口显示命令发送记录,设备模拟器窗口显示命令接收记录;

其中,设备模拟器接收到的命令为十六进制格式数据,如:0100014F4E

 01 - message_id - 整型(int8u),占1个字节;

 0001 - mid - 整型(int16u),占2个字节 - 从0001开始,每下发一条命令递增+1,回复响应时原样带回;

 4F4E - 即下发命令参数ON的Unicode编码 - string(字符串),占2个字节;

设备模拟器文本框中输入响应消息,如“0200010000”,单击“发送”,然后单击“IoT平台”打开消息跟踪,查看日志显示异步命令设备响应消息,即命令下发成功;

其中,“0200010000”为十六进制格式,各段含义如下:

 02 - message_id - 整型(int8u),占1个字节;

 0001 - mid - 整型(int16u),占2个字节 - 从0001开始,每下发一条命令递增+1,回复响应时原样带回;

 00 - errcode - 整型(int8u),占1个字节;

 00 - Light_State - 整型(int8u),占1个字节;

4.8 Motor命令调试

1. 服务选择“Agriculture”,命令选择“Agriculture_Control_Motor”,Motor选择“ON”,单击“发送”,应用模拟器窗口显示命令发送记录,设备模拟器窗口显示命令接收记录;

其中,设备模拟器接收到的命令为十六进制格式数据,如:0300024F4E

 03 - message_id - 整型(int8u),占1个字节;

 0002 - mid - 整型(int16u),占2个字节 - 从0001开始,每下发一条命令递增+1,回复响应时原样带回;

 4F4E - 即下发命令参数ON的Unicode编码 - string(字符串),占2个字节;

设备模拟器文本框中输入响应消息,如“0400020000”,单击“发送”,应用模拟器命令执行状态变为执行成功;

其中,“0400020000”为十六进制格式,各段含义如下:

 04 - message_id - 整型(int8u),占1个字节;

 0002 - mid - 整型(int16u),占2个字节 - 从0001开始,每下发一条命令递增+1,回复响应时原样带回;

 00 - errcode - 整型(int8u),占1个字节;

 00 - Motor_State - 整型(int8u),占1个字节;


五 😊 删除完成实验资源

5.1 删除设备

进入“设备 > 所有设备”,选择已注册的设备,单击“删除”,并在弹窗中单击“是”完成删除。

5.2 删除产品

进入产品页,选择已创建的产品,单击“删除”,并在弹窗中单击“确认”完成删除。

5.3 结束实验

1. 等待片刻,系统弹窗提示已完成实验,单击“确定”关闭窗口。

2. 单击界面右上角“结束实验”,完成并退出实验。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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

举报
请填写举报理由
0/200