建议使用以下浏览器,以获得最佳体验。 ie 9.0 以上版本 chrome 31 谷歌浏览器 firefox 30 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想
选择版块
iot物联网 主题:17818帖子:255165

【技术干货】

华为云iot应用侧开发思路-开发上位机与云端交互(桌面软件、小程序、手机app)

2022/2/21 3168
## 1. 前言 在设备上云之后,为了能方便管理设备,方便用户设备入网,都需要开发一款手机app或者微信小程序、桌面软件等,进行数据交互,设备管理。 华为云iot提供了应用侧开发的api对接接口,这里就介绍一下使用应用侧开发的流程。这个api接口里常用的接口包括:产品创建、设备创建、设备属性获取、设备删除、查询设备等管理接口,可以通过api主动获取产品下面某个设备的属性,要求设备上报最新的数据过来。整个开发过程,都是基于http协议的api接口进行交互,不依赖开发环境,不依赖开发语言。 不管是桌面软件,还是手机app、微信小程序、web网页等,核心代码基本都是一样,都是http协议交互。下面的例子里,我是采用c 编写的,采用qt框架库完成整个开发,了解了整个思路,你就可以采用自己熟悉的语言完成相同的功能。 我这里开发的demo软件主要功能是获取设备属性,得到设备的数据进行显示,获取设备列表等功能。 **下面是软件的运行效果图:** 软件获取设备端记录的心率、运动步数、体温等信息,点击更新设备属性,可以从设备获取最新数据进行显示。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414625698507577.png) **下面是联网设备硬件实物图** 联网的设备采用移远的nbiot模块-bc20。通过stm32控制bc20连接华为云物联网服务器。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414423200586465.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414445111751298.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414464907221723.png) ## 2. 应用侧软件开发demo ### 2.1 官方的帮助文档 官方帮助文档: https://support.huaweicloud.com/usermanual-iothub/iot_01_0045.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414809413229003.png) ### 2.2 查询设备属性接口 设备属性就是设备上传的传感器状态数据信息,应用侧提供了api接口,可以主动向设备端下发请求指令;设备端收到指令之后需要按照约定的数据格式上报数据;所以,要实现应用层与设备端的数据交互,需要应用层与设备端配合才能完成。 下面分别介绍应用测和设备测的实现流程。 **(1)应用层下发的指令** 帮助文档地址: https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html 接口的在线调试地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=iotda&api=listproperties 如果请求参数和返回值不清楚,写代码前,先使用在线调试接口体验一下,验证数据交互是否ok。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414926523485156.png) 请求参数里比较总要的两个必填参数,是设备id和服务id,在产品页面创建自定义属性时可以看到服务id。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414959885706632.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414987621137748.png) **请求接口总结:** ```json 请求方法 get uri地址 /v5/iot/{project_id}/devices/{device_id}/properties 传输协议 https 拼接好的地址: https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/0e5957be8a00f53c2fa7c0045e4d8fbf/devices/61df9a6bc7fb24029b0c160d_1126626497/properties?service_id=1126626497 其中的project_id和device_id需要根据自己的设备信息修改。 请求头: { "user-agent": "api explorer", "x-auth-token": "******", 这个是鉴权用的token "content-type": "application/json" } 响应体(设备上传的数据) { "response": { "services": [ { "service_id": "healthy", "properties": { "heartrate": 127 } }, { "service_id": "healthy", "properties": { "motion": 2000 } }, { "service_id": "healthy", "properties": { "temperature": 36.2 } } ] } } ``` **(2)设备上传数据** 应用层向设备端请求`查询设备属性`时,设备端会收到如下的消息: ```cpp $oc/devices/61df9a6bc7fb24029b0c160d_1126626497/sys/properties/get/request_id=336bcb57-0e0a-44d0-90f7-31386cb54a3c{"service_id":"1126626497"} ``` 这个消息里有一个主要参数`request_id`请求id,设备端需要解析出这个参数,给应用层响应数据时,需要带上这个id。 这个请求属性详细帮助文档看这里: https://support.huaweicloud.com/api-iothub/iot_06_v5_3011.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415083188544451.png) **设备响应的数据格式:** ```cpp 主题格式: $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id} 示 例: $oc/devices/61df9a6bc7fb24029b0c160d_1126626497/sys/properties/get/response/request_id=336bcb57-0e0a-44d0-90f7-31386cb54a3c 响应的数据格式: {"services": [{"service_id": "healthy","properties":{"heartrate":127}},{"service_id": "healthy","properties":{"motion":2000}},{"service_id": "healthy","properties":{"temperature":36.2}}]} ``` 响应的数据格式可以看这里的介绍: https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415106705327500.png) ## 2.3 在线api调试结合设备模拟 下面使用mqtt客户端与在线api接口联合模拟一下接口效果: **(1)先打开调试页面:** https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=iotda&api=listproperties **然后填好设备di和服务id:** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415160476822107.png) **(2)、打开mqtt客户端,登录华为云物联网平台(也就是模拟设备上线):** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415199320976624.png) **(3)、打开在线api调试页面,点击调试:** 点击后可以看到页面上已经在等待客户端的响应了。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415222536995258.png) **(4)、mqtt客户端响应详细** 按照前面说的响应格式,拼接好接口,数据。然后发布主题。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415241328652901.png) **(5)、应用层收到客户端响应,调试成功** 调试成功后,响应体里收到的就是设备端上传的设备属性数据。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415260759747404.png)

回复12

0 0
2022/2/21 12:22

感谢分享

0 0
2022/2/21 21:05

大神、膜拜膜拜

0 0
2022/2/21 21:50

感谢分享

0 0
2022/2/21 21:59

感谢分享

0 0
2022/2/21 22:14

感谢分享

0 0
2022/2/23 13:59

学习了

0 0
2022/2/23 20:13

学习了

0 0
2022/2/23 20:37

感谢分享

0 0
2022/2/24 00:10

学习了,感谢分享

上划加载中
直达楼层
全部回复
正序浏览
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 亚博平台下载的解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

华为云iot应用侧开发思路-yb体育官方

您已采纳当前回复为最佳回复

发帖: 70粉丝: 33

发表于2022年02月21日 11:48:44 3168 12
直达本楼层的链接
楼主
[技术干货] 华为云iot应用侧开发思路-开发上位机与云端交互(桌面软件、小程序、手机app)
## 1. 前言 在设备上云之后,为了能方便管理设备,方便用户设备入网,都需要开发一款手机app或者微信小程序、桌面软件等,进行数据交互,设备管理。 华为云iot提供了应用侧开发的api对接接口,这里就介绍一下使用应用侧开发的流程。这个api接口里常用的接口包括:产品创建、设备创建、设备属性获取、设备删除、查询设备等管理接口,可以通过api主动获取产品下面某个设备的属性,要求设备上报最新的数据过来。整个开发过程,都是基于http协议的api接口进行交互,不依赖开发环境,不依赖开发语言。 不管是桌面软件,还是手机app、微信小程序、web网页等,核心代码基本都是一样,都是http协议交互。下面的例子里,我是采用c 编写的,采用qt框架库完成整个开发,了解了整个思路,你就可以采用自己熟悉的语言完成相同的功能。 我这里开发的demo软件主要功能是获取设备属性,得到设备的数据进行显示,获取设备列表等功能。 **下面是软件的运行效果图:** 软件获取设备端记录的心率、运动步数、体温等信息,点击更新设备属性,可以从设备获取最新数据进行显示。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414625698507577.png) **下面是联网设备硬件实物图** 联网的设备采用移远的nbiot模块-bc20。通过stm32控制bc20连接华为云物联网服务器。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414423200586465.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414445111751298.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414464907221723.png) ## 2. 应用侧软件开发demo ### 2.1 官方的帮助文档 官方帮助文档: https://support.huaweicloud.com/usermanual-iothub/iot_01_0045.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414809413229003.png) ### 2.2 查询设备属性接口 设备属性就是设备上传的传感器状态数据信息,应用侧提供了api接口,可以主动向设备端下发请求指令;设备端收到指令之后需要按照约定的数据格式上报数据;所以,要实现应用层与设备端的数据交互,需要应用层与设备端配合才能完成。 下面分别介绍应用测和设备测的实现流程。 **(1)应用层下发的指令** 帮助文档地址: https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html 接口的在线调试地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=iotda&api=listproperties 如果请求参数和返回值不清楚,写代码前,先使用在线调试接口体验一下,验证数据交互是否ok。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414926523485156.png) 请求参数里比较总要的两个必填参数,是设备id和服务id,在产品页面创建自定义属性时可以看到服务id。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414959885706632.png) ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645414987621137748.png) **请求接口总结:** ```json 请求方法 get uri地址 /v5/iot/{project_id}/devices/{device_id}/properties 传输协议 https 拼接好的地址: https://iotda.cn-north-4.myhuaweicloud.com/v5/iot/0e5957be8a00f53c2fa7c0045e4d8fbf/devices/61df9a6bc7fb24029b0c160d_1126626497/properties?service_id=1126626497 其中的project_id和device_id需要根据自己的设备信息修改。 请求头: { "user-agent": "api explorer", "x-auth-token": "******", 这个是鉴权用的token "content-type": "application/json" } 响应体(设备上传的数据) { "response": { "services": [ { "service_id": "healthy", "properties": { "heartrate": 127 } }, { "service_id": "healthy", "properties": { "motion": 2000 } }, { "service_id": "healthy", "properties": { "temperature": 36.2 } } ] } } ``` **(2)设备上传数据** 应用层向设备端请求`查询设备属性`时,设备端会收到如下的消息: ```cpp $oc/devices/61df9a6bc7fb24029b0c160d_1126626497/sys/properties/get/request_id=336bcb57-0e0a-44d0-90f7-31386cb54a3c{"service_id":"1126626497"} ``` 这个消息里有一个主要参数`request_id`请求id,设备端需要解析出这个参数,给应用层响应数据时,需要带上这个id。 这个请求属性详细帮助文档看这里: https://support.huaweicloud.com/api-iothub/iot_06_v5_3011.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415083188544451.png) **设备响应的数据格式:** ```cpp 主题格式: $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id} 示 例: $oc/devices/61df9a6bc7fb24029b0c160d_1126626497/sys/properties/get/response/request_id=336bcb57-0e0a-44d0-90f7-31386cb54a3c 响应的数据格式: {"services": [{"service_id": "healthy","properties":{"heartrate":127}},{"service_id": "healthy","properties":{"motion":2000}},{"service_id": "healthy","properties":{"temperature":36.2}}]} ``` 响应的数据格式可以看这里的介绍: https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415106705327500.png) ## 2.3 在线api调试结合设备模拟 下面使用mqtt客户端与在线api接口联合模拟一下接口效果: **(1)先打开调试页面:** https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=iotda&api=listproperties **然后填好设备di和服务id:** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415160476822107.png) **(2)、打开mqtt客户端,登录华为云物联网平台(也就是模拟设备上线):** ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415199320976624.png) **(3)、打开在线api调试页面,点击调试:** 点击后可以看到页面上已经在等待客户端的响应了。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415222536995258.png) **(4)、mqtt客户端响应详细** 按照前面说的响应格式,拼接好接口,数据。然后发布主题。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415241328652901.png) **(5)、应用层收到客户端响应,调试成功** 调试成功后,响应体里收到的就是设备端上传的设备属性数据。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/21/1645415260759747404.png)

分享文章到朋友圈

分享文章到微博
您已采纳当前回复为最佳回复

发帖: 8粉丝: 0

发表于2022年02月21日 12:22:31

感谢分享

您已采纳当前回复为最佳回复

发帖: 901粉丝: 58

发表于2022年02月21日 21:05:21

大神、膜拜膜拜

您已采纳当前回复为最佳回复

慕雪

发帖: 2粉丝: 2

发表于2022年02月21日 21:50:36

感谢分享

您已采纳当前回复为最佳回复

红鲤鱼与绿鲤鱼

发帖: 2粉丝: 2

发表于2022年02月21日 21:59:51

感谢分享

您已采纳当前回复为最佳回复

zdnyyh

发帖: 2粉丝: 2

发表于2022年02月21日 22:14:39

感谢分享

您已采纳当前回复为最佳回复

发帖: 179粉丝: 15

发表于2022年02月23日 13:59:42

学习了

您已采纳当前回复为最佳回复

发帖: 298粉丝: 5

发表于2022年02月23日 20:13:04

学习了

您已采纳当前回复为最佳回复

发帖: 320粉丝: 25

发表于2022年02月23日 20:37:33

感谢分享

您已采纳当前回复为最佳回复

kswil

发帖: 380粉丝: 2

发表于2022年02月24日 00:10:01

学习了,感谢分享

您需要登录后才可以回帖 | 立即注册

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200
网站地图