基于API Explorer调试IoT应用侧API【玩转华为云】

举报
龙哥手记 发表于 2022/10/06 20:37:56 2022/10/06
【摘要】 用API Explorer快速调用华为云IoT平台的应用侧API,完成创建产品、注册设备等操作,并掌握应用侧API的调用规范要求
本文主要内容有
  • 一 设备接入是怎么回事
  • 二 先创建并配置产品
  • 三 然后再注册下设备
  • 四 查询设备影子数据
  • 五 最后资源释放掉

4.gif


一  🌈 设备接入是怎么回事

1.1 先搞清楚定义

设备接入是华为云的物联网平台,能供海量设备连接上云、设备和云端进行双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,这样能把设备数据灵活流转到华为云其他服务上面处理;

5.gif

1.2 优势体现在哪里

随着业务的发展,越来越多的企业选择结合物联网技术来实现自身效益增长,相比企业自建MQTT集群,使用华为云IoT服务低成本构建物联网解决方案,在能力、成本、运维、安全、生态等诸多方面具有突出优势;

1.png

使用物联网平台建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备

  • 物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。
  • 设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。
  • 业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景


1.3 邀你共同体验平台

本章节介绍如何将设备连接到物联网平台及与平台之间进行基本的通信

  • 向导式极速体验

    如果您没有IoT设备,但想快速体验设备数据采集和接收控制命令,可以用Windows或者Linux个人计算机作为虚拟设备,体验设备与云端的双向通信。

  • 虚拟设备实现端云双向通信

    如果您想体验平台的基本功能及开发流程,通过虚拟设备实现端云双向通信不用下载任何软件,用物联网平台的虚拟设备即可完成与云端的双向交互,并与平台之间进行交互。如果想进一步体验平台的功能,请参考示例代码实现端云双向通信

  • 示例代码实现端云双向通信

    该章节适合开发人员,您可以下载样例代码或者自行开发,将代码放在您的真实设备或者在Windows/Linux个人计算机上模拟真实设备进行运行,完成设备接入的基本流程,同时能了解规则引擎、AMQP推送等高阶功能;

二  💡 先创建并配置产品

2.1 先创建好

1 为了方便后续多窗口同步操作,请新建浏览器标签页,访问API Explorer首页,链接:https://apiexplorer.developer.huaweicloud.cn/apiexplorer/overview,搜索“iotda”打开“设备接入”产品

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

https://apiexplorer.developer.huaweicloud.cn/apiexplorer/overview

2 选择“产品管理 > CreateProduct”,填写相关参数,创建名称为“MQTT_Smoke”的产品

Tips:为了方便填写参数,可以勾选“只看必填项”,或将body切换为文本输入

请求体示例如下

其中,服务ID为sensor,两个属性alarm、smokeValue为整型值

{
 "name": "MQTT_Smoke",
 "device_type": "MQTT_Smoke",
 "protocol_type": "MQTT",
 "data_format": "json",
 "service_capabilities": [
  {
   "service_id": "sensor",
   "service_type": "sensor",
   "properties": [
    {
     "property_name": "alarm",
     "data_type": "int",
     "method": "RW"
    },
    {
     "property_name": "smokeValue",
     "data_type": "int",
     "method": "RW"
    }
   ]
  }
 ]
}

参数填写完成,单击“调试”发起请求

3. 请求成功,浏览器切换到控制台标签页,选择“服务列表”->“IoT物联网”->“设备接入IoTDA”,进入设备接入服务控制台,在左侧菜单栏选择“产品”,查看已创建的产品

Tips:如果请求失败,请根据错误码排查修改请求参数后重试

4 请记录产品ID,用于后续注册设备时使用

三  👍 然后再注册下设备

1 注册设备,浏览器切换到API Explorer标签页,然后选择“设备管理 > AddDevice”,填写相关参数,创建一个设备

Tips:为了方便填写参数,可勾选“只看必填项”,或将body切换为文本输入

请求体示例如下

其中,“product_id”从创建产品成功返回的响应结果中获取,“node_id”为设备标识码,可以自定义填写一串字符串

{
 "node_id": "ABC123456789",
 "product_id": "617660421d40a6027ebe06fa"
}

参数填写完成,单击“调试”发起请求

3 请求成功,浏览器切换到控制台标签页,进入设备接入服务控制台,在左侧菜单栏选择“设备 > 所有设备”,查看已注册成功的设备

Tips:如果请求失败,请根据错误码排查修改请求参数后重试

设备为“未激活”状态,如下

4. 请记录设备ID和设备密钥,用于后续设备上报数据配置连接参数时使用



四  🎨查询设备影子数据

1 下载设备模拟器

回到桌面双击“Xfce终端”打开Terminal,输入以下命令下载保存MQTT设备模拟器至本地桌面。

cd Desktop/
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar

2 模拟器与平台建立连接

1. 执行以下命令打开设备接入模拟器(HubSimulator.jar),然后切换到MQTT设备模拟器页签。

/usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar

2. 在MQTT设备模拟器页签下,填写参数如下

① 服务IP:进入“服务列表”-> “物联网”->“设备接入IoTDA”,在左侧栏选择“总览”,点击“平台接入地址”

复制使用MQTT/MQTTS接入信息的域名

② 服务端口:使用MQTTS接入协议对应的端口,即 8883

③ 设备ID和设备密钥:注册设备成功后返回的"device_id"和"secret",也可以从设备详情页获取

配置好以上参数后,单击“建立连接”按钮

连接成功,日志区域会打印连接成功的信息;在设备接入服务控制台可以看到设备处于在线状态

3 浏览器切换到控制台标签页,进入设备接入服务控制台,在左侧菜单栏选择“设备 > 所有设备”,查看设备显示为“在线”状态。

4 模拟器设备属性上报

1. 返回设备模拟器,在发送消息页签下,填写Topic及JSON消息体,单击“发送消息”完成上报

① Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替换成实际设备ID

② JSON消息体示例如

{
    "services" : [{
            "service_id" : "sensor",
            "properties" : {
                "alarm" : 1,
                "smokeValue" : 1
            },
            "event_time" : null
        }
    ]
}

Tips:发送消息成功,右侧日志区域会打印“Message Delivery Complete, xxx”日志信息

2. 浏览器切换到控制台标签页,进入设备接入服务控制台,在左侧菜单栏选择“设备 > 所有设备”,查看设备详情,最新上报数据显示如下


5 查询设备影子数据

1 浏览器切换到API Explorer标签页,选择“设备影子 > ShowDeviceShadow”,填写相关参数,查询设备属性

Tips:为了方便填写参数,可以勾选“只看必填项”

请求体为空,“device_id”填写为待查询设备的设备ID

参数填写完成,单击“调试”发起请求

2. 请求成功,查看请求结果,响应体示例如

Tips:如果请求失败,请根据错误码排查修改请求参数后重试

{
 "device_id": "617660421d40a6027ebe06fa_ABC123456789",
 "shadow": [
  {
   "service_id": "sensor",
   "desired": {
    "properties": null,
    "event_time": null
   },
   "reported": {
    "properties": {
     "alarm": 1,
     "smokeValue": 1
    },
    "event_time": "20221024T100117Z"
   },
   "version": 0
  }
 ]
}

五  🥩 最后资源释放掉

5.1 删除设备

1. 浏览器切换到API Explorer标签页,选择“设备管理 > DeleteDevice”,填写设备ID,删除设备

2. 浏览器切换到控制台标签页,在设备接入控制台,刷新设备列表,确认设备已删除

5.2 删除产品

1. 浏览器切换到API Explorer标签页,选择“产品管理 > DeleteProduct”,填写产品ID,删除产品。

2. 浏览器切换到控制台标签页,在设备接入控制台,刷新产品列表,确认产品已删除。

6.3 结束实验

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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